mirror of
https://github.com/runyanjake/olomana.git
synced 2025-10-04 13:27:28 -07:00
Update olomana containers
This commit is contained in:
parent
da72f8fcc7
commit
b3598dbe7e
5
games/minecraft/.gitignore
vendored
5
games/minecraft/.gitignore
vendored
@ -1,5 +0,0 @@
|
|||||||
config/
|
|
||||||
maps/
|
|
||||||
plugins/
|
|
||||||
docker-compose.yml
|
|
||||||
|
|
@ -2,14 +2,24 @@
|
|||||||
|
|
||||||
Self-host one or multiple servers.
|
Self-host one or multiple servers.
|
||||||
|
|
||||||
## Instructions
|
## Setup
|
||||||
|
|
||||||
### Minecraft Setup
|
### Whitelist
|
||||||
|
|
||||||
#### Whitelist
|
#### Method 1: Docker
|
||||||
After first time start go into `server.properties` and set `white-list=true`.
|
In the `itzg/minecraft-server` env vars in docker, add the following to enable and configure whitelist.
|
||||||
Add users via server commands (`whitelist add NAME`).
|
```
|
||||||
OR add users to `whitelist.json` in server directory.
|
ENABLE_WHITELIST: "TRUE"
|
||||||
|
WHITELIST: "player1,player2,player3"
|
||||||
|
```
|
||||||
|
Note: The whitelist is additive, so if you set it to `[player1]` and later `[player2,player3]`, you'll end up with a whiltelist accepting all 3 players.
|
||||||
|
|
||||||
|
Edit the whitelist in `whitelist.json` in the server directory.
|
||||||
|
|
||||||
|
#### Method 2: Manual
|
||||||
|
After first time startup set `enforce-whitelist=true` in `server.properties`.
|
||||||
|
|
||||||
|
Then, create `whitelist.properties` in the server directory with the following contents:
|
||||||
```
|
```
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -19,18 +29,39 @@ OR add users to `whitelist.json` in server directory.
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Method 3: In Game
|
||||||
|
After first time start go into `server.properties` and set `enforce-whitelist=true`.
|
||||||
|
Add users via server commands (`whitelist add NAME`).
|
||||||
|
|
||||||
#### Plugins/Mods
|
#### Plugins/Mods
|
||||||
|
|
||||||
##### Plugins
|
### Plugins
|
||||||
SinglePlayerSleep: `https://www.spigotmc.org/resources/singleplayersleep.68139/`
|
SinglePlayerSleep: `https://www.spigotmc.org/resources/singleplayersleep.68139/`
|
||||||
Dynmap: `https://www.spigotmc.org/resources/dynmap%C2%AE.274/`
|
Dynmap: `https://www.spigotmc.org/resources/dynmap%C2%AE.274/`
|
||||||
NoEndermanGrief: `https://www.spigotmc.org/resources/no-enderman-grief2.71236/`
|
NoEndermanGrief: `https://www.spigotmc.org/resources/no-enderman-grief2.71236/`
|
||||||
ajLeaderboards: `https://www.spigotmc.org/threads/ajleaderboards.471179/`
|
ajLeaderboards: `https://www.spigotmc.org/threads/ajleaderboards.471179/`
|
||||||
|
|
||||||
##### Mods
|
#### Updating Plugins
|
||||||
|
It's very easy, just obtain the new jar file for the updated plugin, stop server and swap old jar in `plugins/`.
|
||||||
|
|
||||||
### Maintenance
|
Most plugins should not need to regenerate their data, so you can leave it as is.
|
||||||
Configure scheduled restarts by configuring `crontab` to periodically restart the container.
|
|
||||||
|
## Maintenance
|
||||||
|
|
||||||
|
### Backups
|
||||||
|
Take backups periodically, we got griefed once and only survived because of a backup.
|
||||||
|
|
||||||
|
Create Tar archive:
|
||||||
|
```
|
||||||
|
cd location_of_mc_files
|
||||||
|
tar -czvf ~/1970.01.01-world-backup.tar.gz world world_nether world_the_end server.properties whitelist.json spigot.yml
|
||||||
|
```
|
||||||
|
And move to a safe place.
|
||||||
|
|
||||||
|
### Periodic Restarts
|
||||||
|
You might want this because the JVM might start hitting memory limits if too much is going on.
|
||||||
|
|
||||||
|
You can configure scheduled restarts by configuring `crontab` to periodically restart the container.
|
||||||
Edit crontab: `sudo crontab -e`
|
Edit crontab: `sudo crontab -e`
|
||||||
Add: `0 2 * * * docker restart minecraft-2023 minecraft-creative`
|
Add: `0 2 * * * docker restart minecraft-2023 minecraft-creative`
|
||||||
|
|
||||||
|
@ -18,19 +18,21 @@ services:
|
|||||||
- grafana
|
- grafana
|
||||||
- minecraft
|
- minecraft
|
||||||
ports:
|
ports:
|
||||||
- "[SERVER_PORT_1]:25565"
|
- "25566:25565"
|
||||||
- "[PROMETHEUS_PORT_1]:9225"
|
- "9226:9225"
|
||||||
volumes:
|
volumes:
|
||||||
- /pwspool/games/minecraft/minecraft_creative:/data
|
- /pwspool/games/minecraft/minecraft_creative:/data
|
||||||
environment:
|
environment:
|
||||||
- TYPE=PAPER
|
- TYPE=PAPER
|
||||||
- MEMORY=2G
|
- MEMORY=2G
|
||||||
- VERSION=1.21.1
|
- VERSION=1.21.4
|
||||||
- EULA=TRUE
|
- EULA=TRUE
|
||||||
- SERVER_NAME=minecraft_creative
|
- SERVER_NAME=minecraft_creative
|
||||||
- MODE=creative
|
- MODE=creative
|
||||||
- DIFFICULTY=peaceful
|
- DIFFICULTY=peaceful
|
||||||
- OPS=RicecakeSMS,pZ_aeriaL
|
- OPS=RicecakeSMS,pZ_aeriaL
|
||||||
|
- ENABLE_WHITELIST=true
|
||||||
|
- WHITELIST=RicecakeSMS,pZ_aeriaL
|
||||||
- ICON=https://i.imgur.com/sqjZGql.png
|
- ICON=https://i.imgur.com/sqjZGql.png
|
||||||
- ENABLE_COMMAND_BLOCK=true
|
- ENABLE_COMMAND_BLOCK=true
|
||||||
- GENERATE_STRUCTURES=false
|
- GENERATE_STRUCTURES=false
|
||||||
@ -49,27 +51,28 @@ services:
|
|||||||
- grafana
|
- grafana
|
||||||
- minecraft
|
- minecraft
|
||||||
ports:
|
ports:
|
||||||
- "[SERVER_PORT_2]:25565"
|
- "25565:25565"
|
||||||
- "[PROMETHEUS_PORT_2]:9225"
|
- "9225:9225"
|
||||||
- "[DYNMAP_PORT_2]:8123"
|
|
||||||
volumes:
|
volumes:
|
||||||
- /pwspool/games/minecraft/minecraft_2023:/data
|
- /pwspool/games/minecraft/minecraft_2023:/data
|
||||||
environment:
|
environment:
|
||||||
- TYPE=PAPER
|
- TYPE=PAPER
|
||||||
- MEMORY=4G
|
- MEMORY=4G
|
||||||
- VERSION=1.21.1
|
- VERSION=1.21.4
|
||||||
- EULA=TRUE
|
- EULA=TRUE
|
||||||
- SERVER_NAME=minecraft_2023
|
- SERVER_NAME=minecraft_2023
|
||||||
- MODE=survival
|
- MODE=survival
|
||||||
- SPAWN_PROTECTION=0
|
- SPAWN_PROTECTION=0
|
||||||
- DIFFICULTY=hard
|
- DIFFICULTY=hard
|
||||||
- OPS=RicecakeSMS,pZ_aeriaL
|
- OPS=RicecakeSMS,pZ_aeriaL
|
||||||
|
- ENABLE_WHITELIST=true
|
||||||
|
- WHITELIST=RicecakeSMS,pZ_aeriaL
|
||||||
- ICON=https://i.imgur.com/sqjZGql.png
|
- ICON=https://i.imgur.com/sqjZGql.png
|
||||||
- SEED="itsgoochfor2023"
|
- SEED="itsgoochfor2023"
|
||||||
- MOTD="\u00A77Pinnerland, powered by \u00A75P\u00A79W\u00A75S\u00A77\!"
|
- MOTD="\u00A77Pinnerland, powered by \u00A75P\u00A79W\u00A75S\u00A77\!"
|
||||||
- ALLOW_FLIGHT=false
|
- ALLOW_FLIGHT=false
|
||||||
labels:
|
labels:
|
||||||
- traefik.http.routers.minemap.rule=Host(`[MINEMAP_SUBDOMAIN_URL]`)
|
- traefik.http.routers.minemap.rule=Host(`minemap.whitney.rip`)
|
||||||
- traefik.http.routers.minemap.tls=true
|
- traefik.http.routers.minemap.tls=true
|
||||||
- traefik.http.routers.minemap.tls.certresolver=lets-encrypt
|
- traefik.http.routers.minemap.tls.certresolver=lets-encrypt
|
||||||
- traefik.http.services.minemap.loadbalancer.server.port=8123
|
- traefik.http.services.minemap.loadbalancer.server.port=8123
|
||||||
@ -81,18 +84,20 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- minecraft
|
- minecraft
|
||||||
ports:
|
ports:
|
||||||
- "[SERVER_PORT_3]:25565"
|
- "25564:25565"
|
||||||
volumes:
|
volumes:
|
||||||
- /pwspool/games/minecraft/minecraft_skyblock:/data
|
- /pwspool/games/minecraft/minecraft_skyblock:/data
|
||||||
environment:
|
environment:
|
||||||
- TYPE=PAPER
|
- TYPE=PAPER
|
||||||
- MEMORY=4G
|
- MEMORY=4G
|
||||||
- VERSION=1.20.2
|
- VERSION=1.21.4
|
||||||
- EULA=TRUE
|
- EULA=TRUE
|
||||||
- SERVER_NAME=minecraft_skyblock
|
- SERVER_NAME=minecraft_skyblock
|
||||||
- MODE=survival
|
- MODE=survival
|
||||||
- DIFFICULTY=hard
|
- DIFFICULTY=hard
|
||||||
- OPS=RicecakeSMS,pZ_aeriaL
|
- OPS=RicecakeSMS,pZ_aeriaL
|
||||||
|
- ENABLE_WHITELIST=true
|
||||||
|
- WHITELIST=RicecakeSMS,pZ_aeriaL
|
||||||
- ICON=https://i.imgur.com/sqjZGql.png
|
- ICON=https://i.imgur.com/sqjZGql.png
|
||||||
- MOTD="\u00A77Skyblock, powered by \u00A75P\u00A79W\u00A75S\u00A77\!"
|
- MOTD="\u00A77Skyblock, powered by \u00A75P\u00A79W\u00A75S\u00A77\!"
|
||||||
labels:
|
labels:
|
||||||
@ -104,13 +109,13 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- minecraft
|
- minecraft
|
||||||
ports:
|
ports:
|
||||||
- [SEVER_PORT_4]:2565
|
- 2565:2565
|
||||||
volumes:
|
volumes:
|
||||||
- /pwspool/games/minecraft/minecraft_2023/world:/world
|
- /pwspool/games/minecraft/minecraft_2023/world:/world
|
||||||
environment:
|
environment:
|
||||||
- RCON_HOST=127.0.0.1
|
- RCON_HOST=127.0.0.1
|
||||||
- RCON_PORT=25565
|
- RCON_PORT=25565
|
||||||
- HTTP_PORT=[SERVER_PORT_4]
|
- HTTP_PORT=25565
|
||||||
- FORGE_SERVER="False"
|
- FORGE_SERVER="False"
|
||||||
- PAPER_SERVER="True"
|
- PAPER_SERVER="True"
|
||||||
- DYNMAP_ENABLED="True"
|
- DYNMAP_ENABLED="True"
|
2
home/homeassistant/.gitignore
vendored
2
home/homeassistant/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
configuration.yaml
|
|
||||||
docker-compose.yml
|
|
@ -10,15 +10,16 @@ frontend:
|
|||||||
http:
|
http:
|
||||||
use_x_forwarded_for: true
|
use_x_forwarded_for: true
|
||||||
trusted_proxies:
|
trusted_proxies:
|
||||||
- 192.168.x.xxx
|
- 192.168.96.2
|
||||||
|
- 172.18.0.2
|
||||||
|
|
||||||
# Configure logging
|
# Configure logging
|
||||||
logger:
|
logger:
|
||||||
default: info
|
default: info
|
||||||
logs:
|
logs:
|
||||||
homeassistant.core: debug
|
homeassistant.core: warning
|
||||||
homeassistant.components: info
|
homeassistant.components: info
|
||||||
homeassistant.components.mqtt: debug
|
homeassistant.components.mqtt: warning
|
||||||
|
|
||||||
automation: !include automations.yaml
|
automation: !include automations.yaml
|
||||||
script: !include scripts.yaml
|
script: !include scripts.yaml
|
@ -14,12 +14,10 @@ services:
|
|||||||
- PGID=1000
|
- PGID=1000
|
||||||
- TZ=Etc/UTC
|
- TZ=Etc/UTC
|
||||||
volumes:
|
volumes:
|
||||||
- /path/to/config:/config
|
- /pwspool/software/homeassistant/config:/config
|
||||||
- /path/to/config/configuration.yaml:/config/configuration.yaml
|
- /pwspool/software/homeassistant/config/configuration.yaml:/config/configuration.yaml
|
||||||
ports:
|
|
||||||
- 8123:8123
|
|
||||||
labels:
|
labels:
|
||||||
- traefik.http.routers.homeassistant.rule=Host(`SITE_URL`)
|
- traefik.http.routers.homeassistant.rule=Host(`iot.whitney.rip`)
|
||||||
- traefik.http.routers.homeassistant.tls=true
|
- traefik.http.routers.homeassistant.tls=true
|
||||||
- traefik.http.routers.homeassistant.tls.certresolver=lets-encrypt
|
- traefik.http.routers.homeassistant.tls.certresolver=lets-encrypt
|
||||||
- traefik.http.services.homeassistant.loadbalancer.server.port=8123
|
- traefik.http.services.homeassistant.loadbalancer.server.port=8123
|
2
media/metube/.gitignore
vendored
2
media/metube/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
docker-compose.yml
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
|||||||
version: "3"
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
traefik:
|
traefik:
|
||||||
external: true
|
external: true
|
||||||
@ -16,7 +14,8 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DEFAULT_THEME=dark
|
- DEFAULT_THEME=dark
|
||||||
labels:
|
labels:
|
||||||
- "traefik.http.routers.metube.rule=Host(`[[SITE_URL]]`)"
|
- "traefik.http.routers.metube.rule=Host(`yt.whitney.rip`)"
|
||||||
- "traefik.http.routers.metube.tls=true"
|
- "traefik.http.routers.metube.tls=true"
|
||||||
- "traefik.http.routers.metube.tls.certresolver=lets-encrypt"
|
- "traefik.http.routers.metube.tls.certresolver=lets-encrypt"
|
||||||
- "traefik.http.services.metube.loadbalancer.server.port=8081"
|
- "traefik.http.services.metube.loadbalancer.server.port=8081"
|
||||||
|
|
4
media/photoprism/.gitignore
vendored
4
media/photoprism/.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
docker-compose.yml
|
config-admin.env
|
||||||
|
config-public.env
|
||||||
|
16
media/photoprism/config-admin-blanked.env
Normal file
16
media/photoprism/config-admin-blanked.env
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# See what you should rename this file to in docker-compose.yml
|
||||||
|
PHOTOPRISM_ADMIN_USER=
|
||||||
|
PHOTOPRISM_ADMIN_PASSWORD=
|
||||||
|
PHOTOPRISM_LOG_LEVEL=info
|
||||||
|
PHOTOPRISM_SITE_URL=https://photos.whitney.rip
|
||||||
|
PHOTOPRISM_ORIGINALS_LIMIT=5000
|
||||||
|
PHOTOPRISM_HTTP_COMPRESSION=gzip
|
||||||
|
PHOTOPRISM_EXPERIMENTAL=false
|
||||||
|
PHOTOPRISM_DISABLE_FACES=true
|
||||||
|
PHOTOPRISM_DISABLE_RAW=false
|
||||||
|
PHOTOPRISM_JPEG_QUALITY=100
|
||||||
|
PHOTOPRISM_SITE_CAPTION=PWS Photos (Admin)
|
||||||
|
PHOTOPRISM_SITE_DESCRIPTION=Admin instance of PWS Photoprism.
|
||||||
|
PHOTOPRISM_SITE_AUTHOR=PWS
|
||||||
|
PHOTOPRISM_ADMIN_ROLE=admin
|
||||||
|
PHOTOPRISM_DEFAULT_ROLE=admin
|
13
media/photoprism/config-public-blanked.env
Normal file
13
media/photoprism/config-public-blanked.env
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
PHOTOPRISM_DEFAULT_ROLE=guest
|
||||||
|
PHOTOPRISM_PUBLIC=true
|
||||||
|
PHOTOPRISM_LOG_LEVEL=info
|
||||||
|
PHOTOPRISM_SITE_URL=https://gallery.whitney.rip
|
||||||
|
PHOTOPRISM_ORIGINALS_LIMIT=5000
|
||||||
|
PHOTOPRISM_HTTP_COMPRESSION=gzip
|
||||||
|
PHOTOPRISM_EXPERIMENTAL=false
|
||||||
|
PHOTOPRISM_DISABLE_FACES=true
|
||||||
|
PHOTOPRISM_DISABLE_RAW=false
|
||||||
|
PHOTOPRISM_JPEG_QUALITY=100
|
||||||
|
PHOTOPRISM_SITE_CAPTION=PWS Photos
|
||||||
|
PHOTOPRISM_SITE_DESCRIPTION=Photos, hosted on PWS!
|
||||||
|
PHOTOPRISM_SITE_AUTHOR=PWS
|
45
media/photoprism/docker-compose.yml
Normal file
45
media/photoprism/docker-compose.yml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
admin:
|
||||||
|
image: photoprism/photoprism
|
||||||
|
container_name: photoprism-admin
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
|
security_opt:
|
||||||
|
- seccomp:unconfined
|
||||||
|
- apparmor:unconfined
|
||||||
|
env_file:
|
||||||
|
- config-admin.env
|
||||||
|
volumes:
|
||||||
|
- /pwspool/software/photoprism/storage:/photoprism/storage
|
||||||
|
- /pwspool/software/photoprism/originals:/photoprism/originals
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.private-photos.rule=Host(`photos.whitney.rip`)
|
||||||
|
- traefik.http.routers.private-photos.tls=true
|
||||||
|
- traefik.http.routers.private-photos.tls.certresolver=lets-encrypt
|
||||||
|
- traefik.http.services.private-photos.loadbalancer.server.port=2342
|
||||||
|
|
||||||
|
public:
|
||||||
|
image: photoprism/photoprism
|
||||||
|
container_name: photoprism-public
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
|
security_opt:
|
||||||
|
- seccomp:unconfined
|
||||||
|
- apparmor:unconfined
|
||||||
|
env_file:
|
||||||
|
- config-public.env
|
||||||
|
volumes:
|
||||||
|
- /pwspool/software/photoprism/storage:/photoprism/storage
|
||||||
|
- /pwspool/software/photoprism/originals:/photoprism/originals
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.public-photos.rule=Host(`gallery.whitney.rip`)
|
||||||
|
- traefik.http.routers.public-photos.tls=true
|
||||||
|
- traefik.http.routers.public-photos.tls.certresolver=lets-encrypt
|
||||||
|
- traefik.http.services.public-photos.loadbalancer.server.port=2342
|
||||||
|
|
@ -1,73 +0,0 @@
|
|||||||
version: "3"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
[TRAEFIK_NETWORK]:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
photoprism-private:
|
|
||||||
image: photoprism/photoprism
|
|
||||||
container_name: photoprism-private
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- [TRAEFIK_NETWORK]
|
|
||||||
security_opt:
|
|
||||||
- seccomp:unconfined
|
|
||||||
- apparmor:unconfined
|
|
||||||
volumes:
|
|
||||||
- /pwspool/software/photoprism/storage:/photoprism/storage
|
|
||||||
- /pwspool/software/photoprism/originals:/photoprism/originals
|
|
||||||
environment:
|
|
||||||
- PHOTOPRISM_ADMIN_USER=[[ADMIN_USER]]
|
|
||||||
- PHOTOPRISM_ADMIN_PASSWORD=[[ADMIN_PASS]]
|
|
||||||
- PHOTOPRISM_LOG_LEVEL=info
|
|
||||||
- PHOTOPRISM_SITE_URL=[[SITE_URL_WITH_HTTPS]]
|
|
||||||
- PHOTOPRISM_ORIGINALS_LIMIT=5000
|
|
||||||
- PHOTOPRISM_HTTP_COMPRESSION=gzip
|
|
||||||
- PHOTOPRISM_EXPERIMENTAL=false
|
|
||||||
- PHOTOPRISM_DISABLE_FACES=true
|
|
||||||
- PHOTOPRISM_DISABLE_RAW=false
|
|
||||||
- PHOTOPRISM_JPEG_QUALITY=100
|
|
||||||
- PHOTOPRISM_SITE_CAPTION=[[SITE_CAPTION]]
|
|
||||||
- PHOTOPRISM_SITE_DESCRIPTION=[[SITE_DESCRIPTION]]
|
|
||||||
- PHOTOPRISM_SITE_AUTHOR=[[SITE_AUTHOR]]
|
|
||||||
labels:
|
|
||||||
- traefik.http.routers.private-photos.rule=Host(`[[SITE_URL_WITH_HTTPS]]`)
|
|
||||||
- traefik.http.routers.private-photos.tls=true
|
|
||||||
- traefik.http.routers.private-photos.tls.certresolver=lets-encrypt
|
|
||||||
- traefik.http.services.private-photos.loadbalancer.server.port=2342
|
|
||||||
|
|
||||||
photoprism-public:
|
|
||||||
image: photoprism/photoprism
|
|
||||||
container_name: photoprism-public
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- [TRAEFIK_NETWORK]
|
|
||||||
security_opt:
|
|
||||||
- seccomp:unconfined
|
|
||||||
- apparmor:unconfined
|
|
||||||
ports:
|
|
||||||
- "[[DIFFERENT_HOST_PORT]]:2342"
|
|
||||||
volumes:
|
|
||||||
- /pwspool/software/photoprism/storage:/photoprism/storage
|
|
||||||
- /pwspool/software/photoprism/originals:/photoprism/originals
|
|
||||||
environment:
|
|
||||||
- PHOTOPRISM_READONLY=true
|
|
||||||
- PHOTOPRISM_AUTH_MODE=public
|
|
||||||
- PHOTOPRISM_LOG_LEVEL=info
|
|
||||||
- PHOTOPRISM_SITE_URL=[[DIFFERENT_SITE_URL_WITH_HTTPS]]
|
|
||||||
- PHOTOPRISM_ORIGINALS_LIMIT=5000
|
|
||||||
- PHOTOPRISM_HTTP_COMPRESSION=gzip
|
|
||||||
- PHOTOPRISM_EXPERIMENTAL=false
|
|
||||||
- PHOTOPRISM_DISABLE_FACES=true
|
|
||||||
- PHOTOPRISM_DISABLE_RAW=false
|
|
||||||
- PHOTOPRISM_JPEG_QUALITY=100
|
|
||||||
- PHOTOPRISM_SITE_CAPTION=[[SITE_CAPTION]]
|
|
||||||
- PHOTOPRISM_SITE_DESCRIPTION=[[SITE_DESCRIPTION]]
|
|
||||||
- PHOTOPRISM_SITE_AUTHOR=[[SITE_AUTHOR]]
|
|
||||||
labels:
|
|
||||||
- traefik.http.routers.public-photos.rule=Host(`[[DIFFERENT_SITE_URL_WITH_HTTPS]]`)
|
|
||||||
- traefik.http.routers.public-photos.tls=true
|
|
||||||
- traefik.http.routers.public-photos.tls.certresolver=lets-encrypt
|
|
||||||
- traefik.http.services.public-photos.loadbalancer.server.port=2342
|
|
||||||
|
|
2
media/plex/.gitignore
vendored
2
media/plex/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
docker-compose.yml
|
|
||||||
|
|
@ -20,9 +20,8 @@ services:
|
|||||||
- /pwspool/archive/plex/photos:/photos
|
- /pwspool/archive/plex/photos:/photos
|
||||||
- /pwspool/archive/plex/homevideos:/homevideos
|
- /pwspool/archive/plex/homevideos:/homevideos
|
||||||
- /pwspool/archive/plex/transcode:/transcode
|
- /pwspool/archive/plex/transcode:/transcode
|
||||||
|
ports:
|
||||||
|
- "32400:32400"
|
||||||
labels:
|
labels:
|
||||||
- traefik.http.routers.plex.rule=Host(`SITE_URL`)
|
- traefik.enable=false
|
||||||
- traefik.http.routers.plex.tls=true
|
|
||||||
- traefik.http.routers.plex.tls.certresolver=lets-encrypt
|
|
||||||
- traefik.http.services.plex.loadbalancer.server.port=32400
|
|
||||||
|
|
3
software-development/gitea/.gitignore
vendored
3
software-development/gitea/.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
|
gitea.env
|
||||||
|
database.env
|
||||||
|
@ -7,6 +7,11 @@ Followed instructions on Gitea page: https://docs.gitea.com/next/installation/in
|
|||||||
```
|
```
|
||||||
sudo groupadd gitea && sudo useradd giteauser && sudo usermod -a -G gitea giteauser && chown -r gitea:giteauser .
|
sudo groupadd gitea && sudo useradd giteauser && sudo usermod -a -G gitea giteauser && chown -r gitea:giteauser .
|
||||||
```
|
```
|
||||||
|
2. Configure Environment
|
||||||
|
Create `gitea.env` and `database.env` from the examples, replacing with relevant env values.
|
||||||
|
|
||||||
|
See [Gitea Documentation](https://docs.gitea.com/administration/config-cheat-sheet) for examples/types.
|
||||||
|
|
||||||
2. Run via Docker Compose
|
2. Run via Docker Compose
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -23,8 +28,10 @@ Some things that were weird:
|
|||||||
- could not use any port that wasnt default postgresql (5432)
|
- could not use any port that wasnt default postgresql (5432)
|
||||||
- had to make sure to specify database container by the right name. Removed custom name and used just "database".
|
- had to make sure to specify database container by the right name. Removed custom name and used just "database".
|
||||||
Note that the first admin is set via env vars, by generating the password hash. Alternatively create your users by setting the env var that controls signups.
|
Note that the first admin is set via env vars, by generating the password hash. Alternatively create your users by setting the env var that controls signups.
|
||||||
|
|
||||||
5. Provision new users
|
5. Provision new users
|
||||||
You can do that from the "Site Administration" view from the first admin user.
|
You can do that from the "Site Administration" view from the first admin user.
|
||||||
|
|
||||||
6. Configure SSH
|
6. Configure SSH
|
||||||
|
|
||||||
**Note: This is probably not worth pursuing and I've given up on it. The following has only sort of worked for me.**
|
**Note: This is probably not worth pursuing and I've given up on it. The following has only sort of worked for me.**
|
||||||
|
3
software-development/gitea/database.env.BLANKED
Normal file
3
software-development/gitea/database.env.BLANKED
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
POSTGRES_USER=gitea
|
||||||
|
POSTGRES_PASSWORD=
|
||||||
|
POSTGRES_DB=gitea
|
@ -1,61 +0,0 @@
|
|||||||
networks:
|
|
||||||
gitea_network:
|
|
||||||
external: false
|
|
||||||
TRAEFIK_NETWORK:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
server:
|
|
||||||
image: gitea/gitea:latest
|
|
||||||
container_name: gitea
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- database
|
|
||||||
environment:
|
|
||||||
- USER_UID=GITEA_USER_ID
|
|
||||||
- USER_GID=GITEA_USER_GROUP_ID
|
|
||||||
- DOMAIN=SUBDOMAIN_URL
|
|
||||||
- PROTOCOL=http
|
|
||||||
- GITEA__database__DB_TYPE=postgres
|
|
||||||
- GITEA__database__HOST=database:5432
|
|
||||||
- GITEA__database__NAME=GITEA_DB_NAME
|
|
||||||
- GITEA__database__USER=GITEA_DB_USER
|
|
||||||
- GITEA__database__PASSWD=GITEA_DB_PASS
|
|
||||||
- GITEA__service__DISABLE_REGISTRATION=true
|
|
||||||
- GITEA__openid__ENABLE_OPENID_SIGNUP=DISABLE_REGISTRATION
|
|
||||||
- GITEA__openid__ENABLE_OPENID_SIGNIN=false
|
|
||||||
- GITEA__server__ROOT_URL=SUBDOMAIN_URL
|
|
||||||
- GITEA__server__LOCAL_ROOT_URL=HTTP_SUBDOMAIN_URL
|
|
||||||
- GITEA__server__SSH_DOMAIN=SUBDOMAIN_URL
|
|
||||||
- GITEA__server__SSH_PORT=HOST_SSH_PORT
|
|
||||||
- GITEA__server__SSH_LISTEN_PORT=HOST_SSH_PORT
|
|
||||||
- GITEA__server__START_SSH_SERVER=true
|
|
||||||
networks:
|
|
||||||
- gitea_network
|
|
||||||
- TRAEFIK_NETWORK
|
|
||||||
ports:
|
|
||||||
- "HOST_SSH_PORT:22"
|
|
||||||
volumes:
|
|
||||||
- /pwspool/software/gitea/gitea:/data
|
|
||||||
- /etc/timezone:/etc/timezone:ro
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
labels:
|
|
||||||
- traefik.http.routers.gitea.rule=Host(`SUBDOMAIN_URL`)
|
|
||||||
- traefik.http.routers.gitea.tls=true
|
|
||||||
- traefik.http.routers.gitea.tls.certresolver=lets-encrypt
|
|
||||||
- traefik.http.services.gitea.loadbalancer.server.port=3000
|
|
||||||
|
|
||||||
database:
|
|
||||||
image: postgres:14
|
|
||||||
networks:
|
|
||||||
- gitea_network
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- POSTGRES_USER=GITEA_DB_USER
|
|
||||||
- POSTGRES_PASSWORD=GITEA_DB_PASS
|
|
||||||
- POSTGRES_DB=GITEA_DB_NAME
|
|
||||||
volumes:
|
|
||||||
- /pwspool/software/gitea/database:/var/lib/postgresql/data
|
|
||||||
labels:
|
|
||||||
- traefik.enable=false
|
|
||||||
|
|
11
software-development/gitea/gitea.env.BLANKED
Normal file
11
software-development/gitea/gitea.env.BLANKED
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
USER_UID=1005
|
||||||
|
USER_GID=1007
|
||||||
|
GITEA__server__PROTOCOL=http
|
||||||
|
GITEA__server__ROOT_URL=https://git.example.com
|
||||||
|
GITEA__database__DB_TYPE=postgres
|
||||||
|
GITEA__database__HOST=database:5432
|
||||||
|
GITEA__database__NAME=gitea
|
||||||
|
GITEA__database__USER=gitea
|
||||||
|
GITEA__database__PASSWD=
|
||||||
|
GITEA__openid__ENABLE_OPENID_SIGNIN=false
|
||||||
|
GITEA__service__DISABLE_REGISTRATION=true
|
Loading…
x
Reference in New Issue
Block a user