diff --git a/.github/workflows/deploy-homelab.yml b/.github/workflows/deploy-homelab.yml index d449f25..333c3af 100644 --- a/.github/workflows/deploy-homelab.yml +++ b/.github/workflows/deploy-homelab.yml @@ -1,4 +1,4 @@ -name: "Deploy to Homelab" +name: "Deploy to birb co. production" on: push: @@ -23,23 +23,21 @@ jobs: - name: Remove directory from server run: | - ssh -i ~/.ssh/id_ed25519 github@${{ vars.HOST }} << 'EOF' + ssh -i ~/.ssh/id_ed25519 ${{ vars.USERNAME }}@${{ vars.HOST }} << 'EOF' rm -rf ~/homelab-dsa-tutoring EOF # Avoid needing to set up SSH access to GitHub for this user - name: Transfer repository files to server run: | - scp -i ~/.ssh/id_ed25519 -r ./* github@${{ vars.HOST }}:~/homelab-dsa-tutoring + scp -i ~/.ssh/id_ed25519 -r ./* ${{ vars.USERNAME }}@${{ vars.HOST }}:~/homelab-dsa-tutoring - name: Deploy on server with Docker run: | - ssh -i ~/.ssh/id_ed25519 github@${{ vars.HOST }} << 'EOF' + ssh -i ~/.ssh/id_ed25519 ${{ vars.USERNAME }}@${{ vars.HOST }} << 'EOF' cd ~/homelab-dsa-tutoring - export TS_AUTHKEY=${{ secrets.TS_CONTAINER_AUTHKEY }} + export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock docker compose -f docker-compose.yml down docker compose -f docker-compose.yml up -d --build EOF - - diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..97ddf6d --- /dev/null +++ b/Caddyfile @@ -0,0 +1,13 @@ +# DSA Tutoring microsite +# +# For local use, serves on port 80. +# Replace :80 with your domain (e.g. dsa-tutoring.example.com) for +# automatic HTTPS via Let's Encrypt. +# +# Run `python build.py` first to generate the public/ directory. + +dsa-tutoring.bchen.dev { + root * /srv/public + encode gzip + file_server +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..34d337c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,27 @@ +services: + builder: + image: python:3-alpine + command: python /app/build.py + volumes: + - .:/app + + caddy: + image: caddy:2-alpine + restart: unless-stopped + depends_on: + builder: + condition: service_completed_successfully + ports: + - "80:80" + - "443:443" + - "8080:8080" # test port + - "443:443/udp" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - ./public:/srv/public:ro + - caddy_data:/data + - caddy_config:/config + +volumes: + caddy_data: + caddy_config: