This repository holds the source code for the PacMacro event typically run during Frosh Week. Originally forked from https://github.com/micahdbak/pacmacro
This version of PacMacro consists of a Go API accessed under /api and two frontend implementations. htdocs contains the legacy JavaScript frontend; frontend contains the Angular 22 static-site replacement.
The backend requires ADMIN_PASSWORD. For local development, add it to the ignored .env file in the repository root (see .env.example):
ADMIN_PASSWORD=replace-with-a-long-random-passwordThe binary loads .env from its working directory when present. For the production systemd service, put the same setting in /etc/pacmacro/pacmacro.env and retain this service setting:
EnvironmentFile=/etc/pacmacro/pacmacro.env
Restrict that file to root and the deployment group because it contains the administrator secret. Then reload and start the service:
sudo systemctl daemon-reload
sudo systemctl enable --now pacmacroInstall the GoLang toolchain and run go build -o pacmacro.
To build the PacMacro server, run go build -o pacmacro . from the root directory.
The backend refuses to start when ADMIN_PASSWORD is missing.
Use Node 26.5.1, then build the Angular frontend:
cd frontend
npm ci
npm test -- --watch=false
npm run buildServe frontend/dist/frontend/browser as the site's document root. See frontend/README.md for development and Nginx configuration.