Add Caddyfile and public hosting support
Some checks failed
Deploy to birb co. production / deploy (push) Failing after 10s
Some checks failed
Deploy to birb co. production / deploy (push) Failing after 10s
This commit is contained in:
12
.github/workflows/deploy-homelab.yml
vendored
12
.github/workflows/deploy-homelab.yml
vendored
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
13
Caddyfile
Normal file
13
Caddyfile
Normal file
@@ -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
|
||||
}
|
||||
27
docker-compose.yml
Normal file
27
docker-compose.yml
Normal file
@@ -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:
|
||||
Reference in New Issue
Block a user