Infrastructure Deployment Repository for LN Foot Project
This repository automates the deployment of the entire LN Foot platform, including:
- π API backend
- π‘ Keycloak (Identity provider)
- βοΈ MinIO (Object storage)
- π Caddy (Reverse proxy + HTTPS)
- Vercel Fontends (lnfoot.vercel.app, admin-ln-foot.vercel.app)
docker/
βββ Caddyfile # Reverse proxy config (Caddy)
βββ compose.yml # Main Docker Compose file
βββ keycloak/
β βββ config/
β βββ realm.theme.ln-foot-01.json
βββ .env # environment variables
Deployment is automated via GitHub Actions and triggered when version tags are pushed from the following service repositories:
| Service | Example Repo Name | Tag Format | Example Tag |
|---|---|---|---|
| API | lnfoot-api |
api-vX.Y.Z |
api-v0.9.5 |
Upon receiving a tag:
- The corresponding Docker image is pulled from GHCR.
- Docker Compose is restarted with the new image tag.
- Other infrastructure services (Keycloak, MinIO, Caddy) remain unchanged unless manually updated.
Make sure your VPS or bare-metal server has:
- Docker
- Docker Compose
- Open ports: 80/443, 5432 (Postgres), 9000 (MinIO), 8080/8443 (Keycloak)
- Domain configured (if using Caddy with HTTPS)
Set the following secrets in your infra-deploy repo β Settings β Secrets and Variables β Actions:
| Secret Name | Description |
|---|---|
VPS_HOST |
IP or domain of the VPS |
VPS_USER |
SSH username (e.g. ubuntu) |
VPS_SSH_PRIVATE_KEY |
Private SSH key to connect to the VPS |
GHCR_TOKEN |
Personal access token to pull GHCR images |
- Keycloak uses its own
docker/.envfile:.env
You can test the infrastructure locally with:
cd docker
docker compose --env-file keycloak/config.env --env-file minio/config.env up -dMake sure to:
- Configure your
/etc/hostsfile for local domains used by Caddy. - Provide valid
.envvalues for each service.
To add a new service to the infra:
- Update
docker/compose.yml - Add any necessary
.envfiles underdocker/.env - Update GitHub Actions workflows (if needed)
MIT License β maintained by LN Foot team