Checkout CONTRIBUTING.md
.
Access the frontend repo for eventloop: eventloop-frontend
Run locally or within a docker container.
If running locally, set ELOOP_DEV=1
environment variable to expose some additional routes for testing.
- Ensure docker is installed: https://docs.docker.com/get-started/get-docker/
- The container operates on a shared volume at
${PWD}/data
, ensure thatconfig.json
and.env
is present in the volume. - The
events.db
SQLite database will be present in the same shared volume, so run themake clean_db
target to work with a fresh database instance before running the container.
make build-container-image
# this runs the container in DEV mode to expose additional
# routes for testing
make run-container
# eventloop listens on port 8080
go run -v .
The eventloop back-end uses a HTTPS connection.
You can either generate your own localhost certificates or use a proxy server like mitmproxy.
When running locally:
# eventloop listens on port 8000
# the proxy server proxies requests from port 8080 to 8000
ELOOP_LOCAL=1 go run -v .
- Run the proxy server
mitmproxy --mode reverse:http://localhost:8000@8080 --set ssl_insecure=true
When running within a docker container:
mitmproxy --mode reverse:http://localhost:8080@<port-number> --set ssl_insecure=true
You will have to update the frontend with the new port-number
.
- Generate certificates
openssl req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
# pfx file for browsers
openssl pkcs12 -export -out localhost.pfx -inkey localhost.key -in localhost.crt
- Change the
r.Run()
function inmain.go
to
if err := r.RunTLS(":8080", "localhost.crt", "localhost.key"); err != nil {
log.Fatal(err)
}
QR codes for all participants are automatically generated when an event is created. QRs are stored in the ../test-data/qr-png/
directory. To regenerate them, just hit the admin/create
endpoint with participant data again.
eventloop has a mailer cli tool which will automatically send emails to all participating teams with their generated QR codes. Checkout README.md
- Run
docker compose up
in the directory containingcompose.yml
, with the application configuration(config.json
) and environment variables(.env
) in the./data
directory. - Move nginx.conf to
/etc/nginx/nginx.conf
- Point domain to server and run certbot to generate SSL certificates