parent
710d9d5476
commit
87e9c7ff84
@ -0,0 +1,20 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
caddy:
|
||||
build: ./caddy
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "443:443/udp"
|
||||
volumes:
|
||||
- $PWD/Caddyfile:/etc/caddy/Caddyfile
|
||||
- $PWD/site:/srv
|
||||
- caddy_data:/data
|
||||
- caddy_config:/config
|
||||
|
||||
volumes:
|
||||
caddy_data:
|
||||
external: true
|
||||
caddy_config:
|
@ -0,0 +1,8 @@
|
||||
FROM caddy:latest-builder AS builder
|
||||
|
||||
RUN xcaddy build \
|
||||
--with github.com/mholt/caddy-webdav
|
||||
|
||||
FROM caddy:latest
|
||||
|
||||
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
|
@ -1,4 +0,0 @@
|
||||
redo-ifchange xcaddy
|
||||
|
||||
./xcaddy build --output $3 \
|
||||
--with github.com/mholt/caddy-webdav
|
@ -1,17 +0,0 @@
|
||||
ARCH=arm64
|
||||
OS=mac
|
||||
|
||||
# get the latest version
|
||||
curl --silent https://api.github.com/repos/caddyserver/xcaddy/releases/latest \
|
||||
| grep browser_download_url \
|
||||
| cut -d : -f 2,3 \
|
||||
| tr -d \" \
|
||||
| grep $ARCH \
|
||||
| grep $OS \
|
||||
> .latest_download
|
||||
|
||||
redo-ifchange .latest_download
|
||||
curl --location --silent $(cat .latest_download) \
|
||||
| tar xf - -O xcaddy > $3
|
||||
|
||||
chmod +x $3
|
@ -0,0 +1,42 @@
|
||||
## Services
|
||||
|
||||
Each of these yaml files define a service to be run via docker/podman compose.
|
||||
|
||||
Any supporting files are in the corresponding folder.
|
||||
|
||||
Each service should be self-contained, and optional.
|
||||
|
||||
### Required Services
|
||||
|
||||
#### Backup
|
||||
|
||||
we have a backup script that uses duplicity, this should be moved into a container, and set to run periodically
|
||||
|
||||
#### Caddy
|
||||
|
||||
caddy is the web server, and handles https certificates, and proxying to all the services.
|
||||
|
||||
#### Zitadel
|
||||
|
||||
zitadel lets you have a single username and password to sign on to all your services.
|
||||
|
||||
### Optional Services
|
||||
|
||||
#### Web
|
||||
|
||||
Optional - static web hosting + webDAV. WebDAV is the easiest way for people to edit websites,
|
||||
without having to sync anything.
|
||||
|
||||
### Adding a new service
|
||||
|
||||
There are three things to think about when adding a service:
|
||||
|
||||
1. How to enable sign-in with zitadel?
|
||||
|
||||
Generally, zitadel has some cli commands that we have put in scripts in the zitadel folder.
|
||||
|
||||
2. How to expose as a subdomain in caddy?
|
||||
|
||||
You will want to make a Caddyfile, which will get mounted by the Caddy compose file.
|
||||
|
||||
|
@ -0,0 +1 @@
|
||||
This is the web service - it hosts static files, and a webDAV server that can make it easy to edit
|
@ -1,7 +0,0 @@
|
||||
DIRNAME="$(dirname $0)"
|
||||
cd "$DIRNAME"
|
||||
|
||||
redo-ifchange ../caddy/caddy
|
||||
touch $3
|
||||
|
||||
../caddy/caddy run
|
@ -0,0 +1,36 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
zitadel:
|
||||
restart: 'always'
|
||||
networks:
|
||||
- 'zitadel'
|
||||
image: 'ghcr.io/zitadel/zitadel:latest'
|
||||
command: 'start-from-init --masterkey "6cd52ccbc4da912319f0fdc016d68575dd391bd932ebdc045c89b2dce9e90315" --tlsMode disabled'
|
||||
environment:
|
||||
- 'ZITADEL_DATABASE_COCKROACH_HOST=crdb'
|
||||
- 'ZITADEL_EXTERNALSECURE=false'
|
||||
depends_on:
|
||||
crdb:
|
||||
condition: 'service_healthy'
|
||||
ports:
|
||||
- '8123:8080'
|
||||
|
||||
crdb:
|
||||
restart: 'always'
|
||||
networks:
|
||||
- 'zitadel'
|
||||
image: 'cockroachdb/cockroach:v22.2.2'
|
||||
command: 'start-single-node --insecure'
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"]
|
||||
interval: '10s'
|
||||
timeout: '30s'
|
||||
retries: 5
|
||||
start_period: '20s'
|
||||
ports:
|
||||
- '9090:8080'
|
||||
- '26257:26257'
|
||||
|
||||
networks:
|
||||
zitadel:
|
Loading…
Reference in new issue