Compare commits

..

8 Commits

Author SHA1 Message Date
43b4cbda62 this is the default & temporary config file 2024-08-15 15:39:31 -06:00
6241b70632 add tempo (tracing) to the stack 2024-08-15 15:39:11 -06:00
285b437bde updates from new deployment 2024-08-14 05:41:06 +00:00
server
028cc0e8d5 merge 2024-08-14 04:52:59 +00:00
server
385c342087 uptime kuma 2024-08-14 04:51:49 +00:00
server
4d9d6830d4 open web ui 2024-08-14 04:51:20 +00:00
server
5dcb90377d realtive path 2024-08-14 04:48:58 +00:00
server
dcb95c63a9 vaultwarden init 2024-08-14 04:48:25 +00:00
13 changed files with 154 additions and 33 deletions

21
.gitignore vendored
View File

@@ -1,7 +1,14 @@
Revolt/data
FileBrowser/database.db
Jellyfin/cache/
Jellyfin/config/
Pacoloco/cache/
qBittorrent/config/
qBittorrent/qbit-config/
/Revolt/data
/OpenWebUI/open-webui
/uptime-kuma/data
/FileBrowser/database.db
/Pacoloco/cache/
/Jellyfin/cache/
/Jellyfin/config/
/qBittorrent/config/
/qBittorrent/qbit-config/
/Caddy/tempo-storage
/Caddy/grafana-storage

View File

@@ -6,7 +6,7 @@
metrics
}
servers :80 {
servers :3000 {
name grafana
metrics
}

View File

@@ -4,26 +4,34 @@ services:
image: caddy:latest
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- 80:80
- 443:443
- '443:443/udp'
volumes:
- './Caddyfile:/etc/caddy/Caddyfile'
- ./Caddyfile:/etc/caddy/Caddyfile
# log collector
prometheus:
image: prom/prometheus:latest
volumes:
- './prometheus.yaml:/etc/prometheus/prometheus.yml'
- ./prometheus.yaml:/etc/prometheus/prometheus.yml
depends_on:
- caddy
# trace collector
tempo:
image: grafana/tempo:latest
command: [ "-config.file=/opt/tempo.yaml" ]
volumes:
- ./tempo.yaml:/opt/tempo.yaml
- ./tempo-storage/:/var/tempo
# log viewer
grafana:
image: grafana/grafana:latest
volumes:
- './grafana.yaml:/etc/grafana/provisioning/datasources/datasources.yaml'
- './grafana-storage/:/var/lib/grafana'
- ./grafana.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
- ./grafana-storage/:/var/lib/grafana
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
@@ -31,6 +39,5 @@ services:
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor
depends_on:
- prometheus
- tempo
volumes:
grafana-storage: {}

View File

@@ -13,3 +13,17 @@ datasources:
editable: false
jsonData:
httpMethod: GET
- name: Tempo
type: tempo
uid: tempo
access: proxy
orgId: 1
url: http://tempo:3200
basicAuth: false
isDefault: false
version: 1
editable: false
jsonData:
httpMethod: GET
serviceMap:
datasourceUid: 'prometheus'

60
Caddy/tempo.yaml Normal file
View File

@@ -0,0 +1,60 @@
stream_over_http_enabled: true
server:
http_listen_port: 3200
log_level: info
query_frontend:
search:
duration_slo: 5s
throughput_bytes_slo: 1.073741824e+09
trace_by_id:
duration_slo: 5s
distributor:
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
thrift_http: #
grpc: # for a production deployment you should only enable the receivers you need!
thrift_binary:
thrift_compact:
zipkin:
otlp:
protocols:
http:
grpc:
opencensus:
ingester:
max_block_duration: 5m # cut the headblock when this much time passes. this is being set for demo purposes and should probably be left alone normally
compactor:
compaction:
block_retention: 1h # overall Tempo trace retention. set for demo purposes
metrics_generator:
registry:
external_labels:
source: tempo
cluster: docker-compose
storage:
path: /var/tempo/generator/wal
remote_write:
- url: http://prometheus:9090/api/v1/write
send_exemplars: true
traces_storage:
path: /var/tempo/generator/traces
storage:
trace:
backend: local # backend configuration to use
wal:
path: /var/tempo/wal # where to store the wal locally
local:
path: /var/tempo/blocks
overrides:
defaults:
metrics_generator:
processors: [service-graphs, span-metrics, local-blocks] # enables metrics generator
generate_native_histograms: both

4
FileBrowser/README.md Normal file
View File

@@ -0,0 +1,4 @@
# Filebrowser
Browser-based file browser. Default creds will be `admin` `admin`. Obviously change this asap

View File

@@ -1,5 +1,3 @@
---
version: '3'
services:
file-browser:
image: filebrowser/filebrowser
@@ -9,7 +7,7 @@ services:
ports:
- 8080:80
volumes:
- ../../documents/:/srv/
- ${ZFS_POOL}/:/srv/
- ./database.db:/database.db
security_opt:
- no-new-privileges:true

View File

@@ -1,16 +1,14 @@
---
version: '3'
services:
jellyfin:
user: 1000:1000
# GID might need to be manuall set (id -g)
user: ${UID}:${GID}
restart: unless-stopped
image: jellyfin/jellyfin:latest
container_name: jellyfin
volumes:
- ./config:/config
- ./cache:/cache
- ../../documents/media:/media
network_mode: 'host'
- ${ZFS_POOL}/media:/media
ports:
- 8096:9096
# Requires packages:

4
OpenWebUI/README.md Normal file
View File

@@ -0,0 +1,4 @@
# Open Web UI
Currently this config expects ollama to be running on a different device, the compose.yml has the ip for you to change in it.

13
OpenWebUI/compose.yml Normal file
View File

@@ -0,0 +1,13 @@
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
environment:
- WEBUI_AUTH=False
- OLLAMA_BASE_URL=http://10.0.0.21:11434
ports:
- 4000:8080
volumes:
- './open-webui:/app/backend/data'

View File

@@ -0,0 +1,9 @@
services:
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
ports:
- 1025:80
volumes:
- ./vw-data/:/data/

View File

@@ -1,5 +1,3 @@
---
version: '3'
services:
qbittorrent:
image: qbittorrentofficial/qbittorrent-nox:latest
@@ -11,10 +9,11 @@ services:
- QBT_EULA=true
volumes:
- ./qbit-config:/config
- ../../documents/downloads:/downloads
network_mode: host
- ${ZFS_POOL}/downloads:/downloads
depends_on:
- vpn
ports:
- 6882:6882
vpn:
image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard
@@ -22,13 +21,12 @@ services:
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- PUID=${UID}
- PGID=${GID}
- TZ=America/Denver
- SERVERPORT=51820 #optional
- LOG_CONFS=true #optional
volumes:
- ./config:/config
network_mode: host
# sysctls:
# - net.ipv4.conf.all.src_valid_mark=1
sysctls:
- net.ipv4.conf.all.src_valid_mark=1

9
uptime-kuma/compose.yaml Normal file
View File

@@ -0,0 +1,9 @@
services:
uptime-kuma:
image: louislam/uptime-kuma:1
volumes:
- ./data:/app/data
ports:
# <Host Port>:<Container Port>
- 3001:3001
restart: unless-stopped