Reorganize into by-container and monolith folders.
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 5.5 MiB After Width: | Height: | Size: 5.5 MiB |
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 293 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 5.4 MiB After Width: | Height: | Size: 5.4 MiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 262 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
38
containers/nordvpn/docker-compose.yml.NORDLYNX
Normal file
@ -0,0 +1,38 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
nordlynx:
|
||||
image: ghcr.io/bubuntux/nordlynx:latest
|
||||
container_name: nordlynx
|
||||
restart: unless-stopped
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
environment:
|
||||
- TOKEN=e9f2ab4999032b61f29845afdc0067aa389827546411b4891ff0ec4368ab6cc1
|
||||
- PRIVATE_KEY=mDnVa4EMbnlSF8Sg/i657hf+NRyWQxQjKTwkImD/HWE=
|
||||
- NET_LOCAL=192.168.1.0/24
|
||||
- TZ=America/Los_Angeles
|
||||
- QUERY=filters\[country_id\]=202
|
||||
ports:
|
||||
- "8888:8888"
|
||||
labels:
|
||||
- traefik.enable=false
|
||||
|
||||
qb:
|
||||
image: ghcr.io/linuxserver/qbittorrent:latest
|
||||
container_name: qb
|
||||
restart: unless-stopped
|
||||
network_mode: service:nordlynx
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- WEBUI_PORT=8888
|
||||
volumes:
|
||||
- /data/write/qb/appdata/config:/config
|
||||
- /data/write/qb/downloads:/downloads
|
||||
- ./plugins:/plugins
|
||||
depends_on:
|
||||
- nordlynx
|
||||
labels:
|
||||
- traefik.enable=false
|
||||
|
46
monolith/README.md
Normal file
@ -0,0 +1,46 @@
|
||||
# Olomana - All in One
|
||||
This is the one-dockerfile version of olomana containing the stable "production" containers.
|
||||
Better than going module by module but don't let that stop you.
|
||||
Run everything with a simple `docker-compose down && docker system prune && docker-compose up -d`
|
||||
Run one thing with a simple `docker-compose up serviceName`
|
||||
|
||||
## Setup
|
||||
|
||||
### Traefik
|
||||
|
||||
#### Instructions
|
||||
|
||||
##### Files
|
||||
Create/Fill in the following files in a `traefik/` directory under this one using the provided templates:
|
||||
- `traefik.toml`
|
||||
- `traefik-dynamic.toml`.
|
||||
|
||||
The file `traefik/acme.json` will be generated on first run. Make sure it eventually gets permission code 600. You might need to create a blank file before the first run.
|
||||
|
||||
##### Volumes
|
||||
Mount each of these files into the container, including the docker socket:
|
||||
- `/var/run/docker.sock:/var/run/docker.sock:ro`
|
||||
- `./traefik/traefik.toml:/etc/traefik/traefik.toml`
|
||||
- `./traefik/traefik-dynamic.toml:/etc/traefik/dynamic/traefik-dynamic.toml`
|
||||
- `./traefik/acme.json:/etc/acme.json`
|
||||
|
||||
#### References
|
||||
https://doc.traefik.io/traefik/getting-started/quick-start/
|
||||
https://doc.traefik.io/traefik/user-guides/docker-compose/basic-example/
|
||||
|
||||
### Code-Server
|
||||
|
||||
#### Instructions
|
||||
|
||||
##### Volumes
|
||||
Mount the persistant storage somewhere.
|
||||
- `/pwspool/software/code-server/config:/config`
|
||||
|
||||
##### Metadata
|
||||
Re-roll hashed passwords.
|
||||
|
||||
#### References
|
||||
https://docs.linuxserver.io/images/docker-code-server/
|
||||
https://coder.com/docs/code-server/latest/install#docker
|
||||
https://hub.docker.com/r/linuxserver/code-server
|
||||
https://github.com/coder/code-server/blob/main/docs/FAQ.md#can-i-store-my-password-hashed
|
46
monolith/docker-compose.yml
Normal file
@ -0,0 +1,46 @@
|
||||
version: "3"
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
driver: bridge
|
||||
name: traefik
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- traefik
|
||||
ports:
|
||||
- "80:80"
|
||||
- "8080:8080"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ./traefik.toml:/etc/traefik/traefik.toml
|
||||
- ./traefik-dynamic.toml:/etc/traefik/dynamic/traefik-dynamic.toml
|
||||
- ./acme.json:/etc/acme.json
|
||||
|
||||
code-server:
|
||||
image: lscr.io/linuxserver/code-server:latest
|
||||
container_name: code-server
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- traefik
|
||||
volumes:
|
||||
- /pwspool/software/code-server/config:/config
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Etc/UTC
|
||||
- HASHED_PASSWORD=$$argon2i$$v=19$$m=4096,t=3,p=1$$o70PqzdDrUvzijIN+Nd+uw$$8wsBelBomYLsaKFelBAf+v8KqpS7TMsfFvmouarbehg
|
||||
- SUDO_PASSWORD_HASH=$$argon2i$$v=19$$m=4096,t=3,p=1$$o70PqzdDrUvzijIN+Nd+uw$$8wsBelBomYLsaKFelBAf+v8KqpS7TMsfFvmouarbehg
|
||||
- PROXY_DOMAIN=code.whitney.rip
|
||||
- DEFAULT_WORKSPACE=/config/workspace
|
||||
labels:
|
||||
- traefik.http.routers.code.rule=Host(`code.whitney.rip`)
|
||||
- traefik.http.routers.code.tls=true
|
||||
- traefik.http.routers.code.tls.certresolver=lets-encrypt
|
||||
- traefik.http.services.code.loadbalancer.server.port=8443
|
||||
|
3
monolith/traefik/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
acme.json
|
||||
traefik.toml
|
||||
traefik-dynamic.toml
|
18
monolith/traefik/traefik-dynamic.toml.BLANKED
Normal file
@ -0,0 +1,18 @@
|
||||
# Whitney Traefik Dynamic Config
|
||||
|
||||
[http.middlewares]
|
||||
[http.middlewares.redirect-to-www.redirectRegex]
|
||||
regex = "^https?://example.com(.*)"
|
||||
replacement = "http://www.example.com$${1}"
|
||||
permanent = true
|
||||
[http.middlewares.simpleAuth.basicAuth]
|
||||
users = ["olomana:HASHED_PASSWORD_HERE"]
|
||||
|
||||
[http.routers.api]
|
||||
rule = "Host(`monitor.example.rip`)"
|
||||
entrypoints = "websecure"
|
||||
middlewares = ["simpleAuth"]
|
||||
service = "api@internal"
|
||||
[http.routers.api.tls]
|
||||
certResolver = "lets-encrypt"
|
||||
|
41
monolith/traefik/traefik.toml.BLANKED
Normal file
@ -0,0 +1,41 @@
|
||||
# Whitney Traefik Static Config
|
||||
[global]
|
||||
checkNewVersion = true
|
||||
sendAnonymousUsage = false
|
||||
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
[entryPoints.web.http.redirections.entryPoint]
|
||||
to = "websecure"
|
||||
scheme = "https"
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[api]
|
||||
dashboard = true
|
||||
|
||||
[file]
|
||||
watch = true
|
||||
|
||||
[certificatesResolvers.lets-encrypt.acme]
|
||||
email = "your-email@example.com"
|
||||
storage = "/etc/acme.json"
|
||||
# Use LetsEncrypt Staging Server
|
||||
# caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
# Use LetsEncrypt Prod Server
|
||||
caServer = "https://acme-v02.api.letsencrypt.org/directory"
|
||||
[certificatesResolvers.lets-encrypt.acme.tlsChallenge]
|
||||
|
||||
[providers]
|
||||
[providers.docker]
|
||||
watch = true
|
||||
network = "traefik"
|
||||
[providers.file]
|
||||
directory = "/etc/traefik/dynamic/"
|
||||
filename = "traefik-dynamic.toml"
|
||||
watch = true
|
||||
|
||||
[log]
|
||||
level = "info"
|
||||
|
@ -1,22 +0,0 @@
|
||||
version: "3"
|
||||
|
||||
networks:
|
||||
traefik-network:
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- traefik-network
|
||||
ports:
|
||||
- "80:80"
|
||||
- "8080:8080"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ./traefik.toml:/etc/traefik/traefik.toml
|
||||
- ./traefik-dynamic.toml:/etc/traefik/dynamic/traefik-dynamic.toml
|
||||
- ./acme.json:/etc/acme.json
|
||||
|