Hide & Seek - Fort Collins
  • Elixir 67.4%
  • TypeScript 25.3%
  • JavaScript 2.6%
  • CSS 1.8%
  • Shell 1.4%
  • Other 1.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-03 22:38:37 -06:00
.githooks Initial commit. 2024-03-24 10:36:30 -06:00
assets Migrate from nix to a container. 2026-09-03 22:17:56 -06:00
config Migrate from nix to a container. 2026-09-03 22:17:56 -06:00
entrypoints Migrate from nix to a container. 2026-09-03 22:17:56 -06:00
lib Migrate from nix to a container. 2026-09-03 22:17:56 -06:00
priv Add eye in speech bubble favicon. 2024-05-14 10:36:19 -06:00
test Add new user creation endpoint. 2024-05-23 17:21:27 -06:00
.dockerignore Migrate from nix to a container. 2026-09-03 22:17:56 -06:00
.formatter.exs Initial commit. 2024-03-24 10:36:30 -06:00
.gitignore Migrate from nix to a container. 2026-09-03 22:17:56 -06:00
Dockerfile Add quantlet. 2026-09-03 22:38:37 -06:00
mix.exs Bypass CORS with relative base URL. 2024-05-18 12:37:48 -06:00
mix.lock Install corsica. 2024-05-18 12:33:45 -06:00
README.md Add quantlet. 2026-09-03 22:38:37 -06:00
reconn.container Add quantlet. 2026-09-03 22:38:37 -06:00

Reconn(ect)

This is the backend and web application for hide and seek. We use Elixir (version 1.15.7, Erlang/OTP 25) with the Phoenix (version 1.7.10) framework. The Dockerfile builds a self-contained production image running the entire stack in a single container.

Local

Build and run the container like so:

$ podman build -t reconn .
$ podman run -p 4000:4000 -v reconn-data:/var/lib/reconn reconn

Quadlet

The reconn.container file is a Quadlet. After building the container image, you can install the systemd unit onto the host:

$ podman build -t reconn .
$ podman quadlet install reconn.container

NGINX

Use Let's Encrypt to get a TLS certificate:

$ certbot certonly --standalone -d fc.jrpotter.com

You can then expose the container by including the following stanza within an NGINX config:

server {
    server_name fc.jrpotter.com;

    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;

    ssl_certificate     /etc/letsencrypt/live/fc.jrpotter.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/fc.jrpotter.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:4000;
        proxy_set_header Connection $http_connection;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}