diff --git a/README.md b/README.md
index 5763e82..7583add 100644
--- a/README.md
+++ b/README.md
@@ -3,12 +3,6 @@
-
-
-
-
-
-
@@ -53,25 +47,24 @@ You'll find my setup below.
-| | Device | Image/Where to Buy (Click the Image) |
-| --- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
-| | | |
-| | Used NUCs | [![nucs]](https://www.ebay.com/itm/285116201597?var=586979484256) |
-| | Intel NUC | [![ha-nuc]](https://www.amazon.com/gp/product/B09DCZQFF2/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | UniFi Dream Machine Pro | [![udm-pro]](https://store.ui.com/us/en/pro/category/all-unifi-cloud-gateways/products/udm-pro) |
-| | UniFi Flex HD AP | [![unifi-flex-hd]](https://www.amazon.com/gp/product/B07YQ87QBF) |
-| | TP-Link (T1600G-18TS) 16 Port Managed Switch | [![tp-link-T1600G-18TS-switch]](https://www.amazon.com/gp/product/B0797KPRPK/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Echogear Server Rack | [![rack]](https://www.amazon.com/gp/product/B07YYJMCNV/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Generic NUC 1U Rack | [![nuc-rack]](https://www.amazon.com/gp/product/B09BJ5WBHB/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Cyberpower power strip 12 outlets | [![cyberpower-strip-12]](https://www.amazon.com/gp/product/B00077INZU/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Cyberpower power strip 18 outlets | [![cyberpower-strip-18]](https://www.amazon.com/gp/product/B004K1YG1Y/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Synology DS920+ NAS | [![synology-9120]](https://www.amazon.com/gp/product/B087Z34F3R/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Deco X55 Router | [![deco-x55]](https://www.amazon.com/gp/product/B09PRB1MZM/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Navepoint 12U Closet Rack | [![navepoint-12u-closet-rack]](https://www.amazon.com/gp/product/B072BXSTY8/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Beelink NUC | [![beelink-nuc]](https://www.amazon.com/gp/product/B0BVLPCDVW/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | CyberPower LCD UPS System 2U Rack/Tower | [![cyber-power-ups]](https://www.amazon.com/gp/product/B00HDODQYS?th=1) |
-| | Raspberry Pi 4 B 8gb RAM | [![raspberry-pi-4]](https://www.amazon.com/gp/product/B08R87H4RR/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
-| | Beelink S12 Pro Mini PC, Intel 12th Gen Alder Lake- N100 | [![beelink-s12-pro-nucs]](https://www.amazon.com/dp/B0CRKD4YQL?th=1) |
+| | Device | Image/Where to Buy (Click the Image) |
+| --- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| | | |
+| | Used NUCs | [![nucs]](https://www.ebay.com/itm/285116201597?var=586979484256) |
+| | Intel NUC | [![ha-nuc]](https://www.amazon.com/gp/product/B09DCZQFF2/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | UniFi Dream Machine Pro | [![udm-pro]](https://store.ui.com/us/en/pro/category/all-unifi-cloud-gateways/products/udm-pro) |
+| | UniFi Flex HD AP | [![unifi-flex-hd]](https://www.amazon.com/gp/product/B07YQ87QBF) |
+| | TP-Link (T1600G-18TS) 16 Port Managed Switch | [![tp-link-T1600G-18TS-switch]](https://www.amazon.com/gp/product/B0797KPRPK/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | Echogear Server Rack | [![rack]](https://www.amazon.com/gp/product/B07YYJMCNV/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | Generic NUC 1U Rack | [![nuc-rack]](https://www.amazon.com/gp/product/B09BJ5WBHB/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | Cyberpower power strip 12 outlets | [![cyberpower-strip-12]](https://www.amazon.com/gp/product/B00077INZU/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | Cyberpower power strip 18 outlets | [![cyberpower-strip-18]](https://www.amazon.com/gp/product/B004K1YG1Y/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | Synology DS920+ NAS | [![synology-9120]](https://www.amazon.com/gp/product/B087Z34F3R/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | Deco X55 Router | [![deco-x55]](https://www.amazon.com/gp/product/B09PRB1MZM/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | Navepoint 12U Closet Rack | [![navepoint-12u-closet-rack]](https://www.amazon.com/gp/product/B072BXSTY8/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | Beelink NUC | [![beelink-nuc]](https://www.amazon.com/gp/product/B0BVLPCDVW/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
+| | CyberPower LCD UPS System 2U Rack/Tower | [![cyber-power-ups]](https://www.amazon.com/gp/product/B00HDODQYS?th=1) |
+| | Raspberry Pi 4 B 8gb RAM | [![raspberry-pi-4]](https://www.amazon.com/gp/product/B08R87H4RR/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) |
[☝️ Top](#table-of-contents)
@@ -96,5 +89,4 @@ Some of the software running on the servers in my home lab.
[raspberry-pi-3B+]: assets/rpi-3bp.png
[raspberry-pi-2]: assets/rpi-2.png
[beelink-nuc]: assets/beelink.png
- [beelink-s12-pro-nucs]: assets/beelink-pros.png
[cyber-power-ups]: assets/ups.png
\ No newline at end of file
diff --git a/assets/Friday, 26 Jul 2024 19:06:55.png b/assets/Friday, 26 Jul 2024 19:06:55.png
deleted file mode 100644
index 4caa8b1..0000000
Binary files a/assets/Friday, 26 Jul 2024 19:06:55.png and /dev/null differ
diff --git a/assets/Saturday, 27 Jul 2024 16:05:06.png b/assets/Saturday, 27 Jul 2024 16:05:06.png
deleted file mode 100644
index 8d1f79d..0000000
Binary files a/assets/Saturday, 27 Jul 2024 16:05:06.png and /dev/null differ
diff --git a/assets/Wednesday, 24 Jul 2024 19:03:21.png b/assets/Wednesday, 24 Jul 2024 19:03:21.png
deleted file mode 100644
index 295842a..0000000
Binary files a/assets/Wednesday, 24 Jul 2024 19:03:21.png and /dev/null differ
diff --git a/assets/Wednesday, 24 Jul 2024 19:03:36.png b/assets/Wednesday, 24 Jul 2024 19:03:36.png
deleted file mode 100644
index c21b7d1..0000000
Binary files a/assets/Wednesday, 24 Jul 2024 19:03:36.png and /dev/null differ
diff --git a/assets/Wednesday, 24 Jul 2024 19:03:52.png b/assets/Wednesday, 24 Jul 2024 19:03:52.png
deleted file mode 100644
index ac6dab0..0000000
Binary files a/assets/Wednesday, 24 Jul 2024 19:03:52.png and /dev/null differ
diff --git a/assets/Wednesday, 24 Jul 2024 19:04:06.png b/assets/Wednesday, 24 Jul 2024 19:04:06.png
deleted file mode 100644
index b5bb551..0000000
Binary files a/assets/Wednesday, 24 Jul 2024 19:04:06.png and /dev/null differ
diff --git a/assets/audobookshelf.png b/assets/audobookshelf.png
deleted file mode 100644
index c193884..0000000
Binary files a/assets/audobookshelf.png and /dev/null differ
diff --git a/assets/beelink-pros.png b/assets/beelink-pros.png
deleted file mode 100644
index 0ea1569..0000000
Binary files a/assets/beelink-pros.png and /dev/null differ
diff --git a/assets/beelink-s12-pro-nucs.png b/assets/beelink-s12-pro-nucs.png
deleted file mode 100644
index fb7f7be..0000000
Binary files a/assets/beelink-s12-pro-nucs.png and /dev/null differ
diff --git a/assets/bookstack.png b/assets/bookstack.png
deleted file mode 100644
index 976a928..0000000
Binary files a/assets/bookstack.png and /dev/null differ
diff --git a/assets/freshrss.png b/assets/freshrss.png
deleted file mode 100644
index 723e023..0000000
Binary files a/assets/freshrss.png and /dev/null differ
diff --git a/assets/grafana.png b/assets/grafana.png
deleted file mode 100644
index e0905e9..0000000
Binary files a/assets/grafana.png and /dev/null differ
diff --git a/assets/n100-beelinks.png b/assets/n100-beelinks.png
deleted file mode 100644
index c3ae781..0000000
Binary files a/assets/n100-beelinks.png and /dev/null differ
diff --git a/assets/pihole.png b/assets/pihole.png
deleted file mode 100644
index d8bd859..0000000
Binary files a/assets/pihole.png and /dev/null differ
diff --git a/docker/audiobookshelf/docker-compose.yml b/docker/audiobookshelf/docker-compose.yml
deleted file mode 100644
index 72920b2..0000000
--- a/docker/audiobookshelf/docker-compose.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-
----
-services:
- audiobookshelf:
- image: ghcr.io/advplyr/audiobookshelf:latest
- ports:
- - 13378:80
- volumes:
- - /audiobooks:/audiobooks
- - /podcasts:/podcasts
- - /config:/config
- - /metadata>:/metadata
- environment:
- - TZ=America/New_York
diff --git a/docker/immich/docker-compose.yml b/docker/immich/docker-compose.yml
deleted file mode 100644
index 0362d5b..0000000
--- a/docker/immich/docker-compose.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-name: immich
-
-services:
- immich-server:
- container_name: immich_server
- image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- command: ['start.sh', 'immich']
- volumes:
- - ${UPLOAD_LOCATION}:/usr/src/app/upload
- - /etc/localtime:/etc/localtime:ro
- env_file:
- - .env
- ports:
- - 2283:3001
- depends_on:
- - redis
- - database
- restart: always
-
- immich-microservices:
- container_name: immich_microservices
- image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
- # file: hwaccel.transcoding.yml
- # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
- command: ['start.sh', 'microservices']
- volumes:
- - ${UPLOAD_LOCATION}:/usr/src/app/upload
- - /etc/localtime:/etc/localtime:ro
- env_file:
- - .env
- depends_on:
- - redis
- - database
- restart: always
-
- immich-machine-learning:
- container_name: immich_machine_learning
- # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
- # Example tag: ${IMMICH_VERSION:-release}-cuda
- image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
- # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
- # file: hwaccel.ml.yml
- # service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
- volumes:
- - model-cache:/cache
- env_file:
- - .env
- restart: always
-
- redis:
- container_name: immich_redis
- image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
- restart: always
-
- database:
- container_name: immich_postgres
- image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
- environment:
- POSTGRES_PASSWORD: ${DB_PASSWORD}
- POSTGRES_USER: ${DB_USERNAME}
- POSTGRES_DB: ${DB_DATABASE_NAME}
- volumes:
- - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
- restart: always
-
-volumes:
- model-cache:
\ No newline at end of file
diff --git a/docker/piped/docker-compose.yml b/docker/piped/docker-compose.yml
deleted file mode 100644
index d73f991..0000000
--- a/docker/piped/docker-compose.yml
+++ /dev/null
@@ -1,71 +0,0 @@
----
-services:
- piped-frontend:
- image: 1337kavin/piped-frontend:latest
- restart: unless-stopped
- depends_on:
- - piped
- environment:
- BACKEND_HOSTNAME: pipedapi.tifflabs.cfd
- container_name: piped-frontend
- piped-proxy:
- image: 1337kavin/piped-proxy:latest
- restart: unless-stopped
- environment:
- - UDS=1
- volumes:
- - piped-proxy:/app/socket
- container_name: piped-proxy
- piped:
- image: 1337kavin/piped:latest
- restart: unless-stopped
- volumes:
- - ./config/config.properties:/app/config.properties:ro
- depends_on:
- - postgres
- container_name: piped-backend
- nginx:
- image: nginx:mainline-alpine
- restart: unless-stopped
- ports:
- - "8080:80"
- volumes:
- - ./config/nginx.conf:/etc/nginx/nginx.conf:ro
- - ./config/pipedapi.conf:/etc/nginx/conf.d/pipedapi.conf:ro
- - ./config/pipedproxy.conf:/etc/nginx/conf.d/pipedproxy.conf:ro
- - ./config/pipedfrontend.conf:/etc/nginx/conf.d/pipedfrontend.conf:ro
- - ./config/ytproxy.conf:/etc/nginx/snippets/ytproxy.conf:ro
- - piped-proxy:/var/run/ytproxy
- container_name: nginx
- depends_on:
- - piped
- - piped-proxy
- - pipedfrontend
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.piped.rule=Host(`FRONTEND_HOSTNAME`, `BACKEND_HOSTNAME`, `PROXY_HOSTNAME`)"
- - "traefik.http.routers.piped.entrypoints=websecure"
- - "traefik.http.services.piped.loadbalancer.server.port=8080"
- postgres:
- image: postgres:15
- restart: unless-stopped
- volumes:
- - ./data/db:/var/lib/postgresql/data
- environment:
- - POSTGRES_DB=piped
- - POSTGRES_USER=piped
- - POSTGRES_PASSWORD=changeme
- container_name: postgres
- watchtower:
- image: containrrr/watchtower
- restart: always
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- - /etc/timezone:/etc/timezone:ro
- environment:
- - WATCHTOWER_CLEANUP=true
- - WATCHTOWER_INCLUDE_RESTARTING=true
- container_name: watchtower
- command: piped-frontend piped-backend piped-proxy varnish nginx postgres watchtower
-volumes:
- piped-proxy: null
\ No newline at end of file
diff --git a/docker/traefik/docker-compose.yml b/docker/traefik/docker-compose.yml
deleted file mode 100644
index 4b24a5e..0000000
--- a/docker/traefik/docker-compose.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-version: '3'
-
-services:
- reverse-proxy:
- # The official v3 Traefik docker image
- image: traefik:v3.0
- # Enables the web UI and tells Traefik to listen to docker
- command: --api.insecure=true --providers.docker
- ports:
- # The HTTP port
- - "80:80"
- # The Web UI (enabled by --api.insecure=true)
- - "8080:8080"
- volumes:
- # So that Traefik can listen to the Docker events
- - /var/run/docker.sock:/var/run/docker.sock
\ No newline at end of file
diff --git a/kubernetes/prometheus/README.md b/kubernetes/prometheus/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/pikapods/audiobookshelf/docker-compose.yaml b/pikapods/audiobookshelf/docker-compose.yaml
deleted file mode 100644
index e84a662..0000000
--- a/pikapods/audiobookshelf/docker-compose.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-services:
- audiobookshelf:
- image: ghcr.io/advplyr/audiobookshelf:latest
- ports:
- - 13378:80
- volumes:
- - ./audiobooks:/audiobooks
- - ./podcasts:/podcasts
- - ./config:/config
- - ./metadata:/metadata
- environment:
- - TZ=America/New_York
\ No newline at end of file
diff --git a/portainer/README.md b/portainer/README.md
index 5c0c257..67fdcfb 100644
--- a/portainer/README.md
+++ b/portainer/README.md
@@ -3,8 +3,4 @@
> [!NOTE]\
> This is a work in progress. I will be placing configs and yaml files and docker compose files, etc in here once I get a better feel for Portainer and how it works.
-
-> [!WARNING]\
-> **I AM NO LONGER USING PORTAINER**
->
-> Portainer, while easy to use, is not a good option once you get your feet wet. Learn how to use Docker Compose and the command line. Trust me, it will be beneficial to you in the long run.
\ No newline at end of file
+
diff --git a/proxmox/actualbudget/README.md b/proxmox/actualbudget/README.md
deleted file mode 100644
index d8d0c6c..0000000
--- a/proxmox/actualbudget/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# ActualBudget lxc
-
diff --git a/proxmox/cloudflared/README.md b/proxmox/cloudflared/README.md
index 72b9cea..e69de29 100644
--- a/proxmox/cloudflared/README.md
+++ b/proxmox/cloudflared/README.md
@@ -1 +0,0 @@
-# Cloudflared lxcs
\ No newline at end of file
diff --git a/proxmox/flaresolverr/README.md b/proxmox/flaresolverr/README.md
deleted file mode 100644
index 84f8403..0000000
--- a/proxmox/flaresolverr/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Flaresolverr lxc
\ No newline at end of file
diff --git a/proxmox/forgejo/README.md b/proxmox/forgejo/README.md
deleted file mode 100644
index 8c78f2c..0000000
--- a/proxmox/forgejo/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Forgejo lxc
\ No newline at end of file
diff --git a/docker/immich/README.md b/proxmox/homepage/README.md
similarity index 100%
rename from docker/immich/README.md
rename to proxmox/homepage/README.md
diff --git a/ubuntu/docker/homepage/homepage.sh b/proxmox/homepage/homepage.sh
similarity index 100%
rename from ubuntu/docker/homepage/homepage.sh
rename to proxmox/homepage/homepage.sh
diff --git a/proxmox/influxdb/README.md b/proxmox/influxdb/README.md
deleted file mode 100644
index 8df731c..0000000
--- a/proxmox/influxdb/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# InfluxDB lxc
\ No newline at end of file
diff --git a/proxmox/pihole/README.md b/proxmox/pihole/README.md
deleted file mode 100644
index 44308e1..0000000
--- a/proxmox/pihole/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Pi-hole lxc
\ No newline at end of file
diff --git a/proxmox/prometheus/README.md b/proxmox/prometheus/README.md
deleted file mode 100644
index fb4fd07..0000000
--- a/proxmox/prometheus/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Prometheus lxc
\ No newline at end of file
diff --git a/docker/portainer/README.md b/proxmox/qbittorrent/README.md
similarity index 100%
rename from docker/portainer/README.md
rename to proxmox/qbittorrent/README.md
diff --git a/ubuntu/docker/qbittorrent/qbittorrent.sh b/proxmox/qbittorrent/qbittorrent.sh
similarity index 100%
rename from ubuntu/docker/qbittorrent/qbittorrent.sh
rename to proxmox/qbittorrent/qbittorrent.sh
diff --git a/docker/traefik/README.md b/proxmox/ubuntu/README.md
similarity index 100%
rename from docker/traefik/README.md
rename to proxmox/ubuntu/README.md
diff --git a/ubuntu/docker/README.md b/proxmox/ubuntu/docker/README.md
similarity index 100%
rename from ubuntu/docker/README.md
rename to proxmox/ubuntu/docker/README.md
diff --git a/ubuntu/docker/haproxy/Dockerfile b/proxmox/ubuntu/docker/haproxy/Dockerfile
similarity index 100%
rename from ubuntu/docker/haproxy/Dockerfile
rename to proxmox/ubuntu/docker/haproxy/Dockerfile
diff --git a/ubuntu/docker/haproxy/README.md b/proxmox/ubuntu/docker/haproxy/README.md
similarity index 100%
rename from ubuntu/docker/haproxy/README.md
rename to proxmox/ubuntu/docker/haproxy/README.md
diff --git a/kubernetes/README.md b/proxmox/ubuntu/docker/portainer/README.md
similarity index 100%
rename from kubernetes/README.md
rename to proxmox/ubuntu/docker/portainer/README.md
diff --git a/docker/portainer/docker-compose.yml b/proxmox/ubuntu/docker/portainer/docker-compose.yml
similarity index 100%
rename from docker/portainer/docker-compose.yml
rename to proxmox/ubuntu/docker/portainer/docker-compose.yml
diff --git a/ubuntu/ubuntu.sh b/proxmox/ubuntu/ubuntu.sh
similarity index 100%
rename from ubuntu/ubuntu.sh
rename to proxmox/ubuntu/ubuntu.sh
diff --git a/proxmox/umami/README.md b/proxmox/umami/README.md
deleted file mode 100644
index 0e2bc1a..0000000
--- a/proxmox/umami/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Umami lxc
\ No newline at end of file
diff --git a/proxmox/wastebin/README.md b/proxmox/wastebin/README.md
deleted file mode 100644
index 097566a..0000000
--- a/proxmox/wastebin/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Wastebin lxc
\ No newline at end of file
diff --git a/proxmox/whoogle/README.md b/proxmox/whoogle/README.md
deleted file mode 100644
index a5bfbe3..0000000
--- a/proxmox/whoogle/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Whoogle lxc
diff --git a/proxmox/wikijs/README.md b/proxmox/wikijs/README.md
new file mode 100644
index 0000000..532e8fa
--- /dev/null
+++ b/proxmox/wikijs/README.md
@@ -0,0 +1,8 @@
+# Wiki.js Script
+
+> [!WARNING]\
+> Always make sure you vet the scripts you install from anywhere on the internet!
+
+You can install the script directly from this link:
+
+- [Proxmox VE Helper Scripts](https://tteck.github.io/Proxmox/)
\ No newline at end of file
diff --git a/proxmox/wikijs/wiki-js.sh b/proxmox/wikijs/wiki-js.sh
new file mode 100644
index 0000000..48a10ee
--- /dev/null
+++ b/proxmox/wikijs/wiki-js.sh
@@ -0,0 +1,83 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2021-2024 tteck
+# Author: tteck (tteckster)
+# License: MIT
+# https://github.com/tteck/Proxmox/raw/main/LICENSE
+
+source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
+color
+verb_ip6
+catch_errors
+setting_up_container
+network_check
+update_os
+
+msg_info "Installing Dependencies"
+$STD apt-get install -y curl
+$STD apt-get install -y sudo
+$STD apt-get install -y mc
+$STD apt-get install -y git
+$STD apt-get install -y ca-certificates
+$STD apt-get install -y gnupg
+msg_ok "Installed Dependencies"
+
+msg_info "Setting up Node.js Repository"
+mkdir -p /etc/apt/keyrings
+curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
+echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
+msg_ok "Set up Node.js Repository"
+
+msg_info "Installing Node.js"
+$STD apt-get update
+$STD apt-get install -y nodejs
+msg_ok "Installed Node.js"
+
+msg_info "Installing Wiki.js"
+mkdir -p /opt/wikijs
+cd /opt/wikijs
+$STD wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
+tar xzf wiki-js.tar.gz
+rm wiki-js.tar.gz
+
+cat </opt/wikijs/config.yml
+bindIP: 0.0.0.0
+port: 3000
+db:
+ type: sqlite
+ storage: /opt/wikijs/db.sqlite
+logLevel: info
+logFormat: default
+dataPath: /opt/wikijs/data
+bodyParserLimit: 5mb
+EOF
+$STD npm rebuild sqlite3
+msg_ok "Installed Wiki.js"
+
+msg_info "Creating Service"
+service_path="/etc/systemd/system/wikijs.service"
+
+echo "[Unit]
+Description=Wiki.js
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/node server
+Restart=always
+User=root
+Environment=NODE_ENV=production
+WorkingDirectory=/opt/wikijs
+
+[Install]
+WantedBy=multi-user.target" >$service_path
+$STD systemctl enable --now wikijs
+msg_ok "Created Service"
+
+motd_ssh
+customize
+
+msg_info "Cleaning up"
+$STD apt-get autoremove
+$STD apt-get autoclean
+msg_ok "Cleaned"
\ No newline at end of file
diff --git a/ubuntu/README.md b/ubuntu/README.md
deleted file mode 100644
index eca6821..0000000
--- a/ubuntu/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Ubuntu VMs Inside of Proxmox
-
-These days, I have figured out that if I need privileged access to a container, an LXC is not the best choice. For instance, if I want to add storage to a container, it is almost impossible to do so with an LXC without making the container a privleged container which comes with security implications that I don't want to manage.
-
-So now I run mission-critical services in Ubuntu VMs on Proxmox. I do not use the tteck's scripts for this; I download an ISO file and upload it to storage on Proxmox and create the VM from scratch.
-
-## Difficult to manage publically shared services
-
-For services I want to share publicly that are a real pita to setup and run on my home server, I use [PikaPods](https://pikapods.com). Yes, it costs money, but I've been running Audiobookshelf for a month now on an initial $5 top up. It's a pittance for such a wonderful service, and each "Pod" has a different price for usage. They don't keep your data and the funds go directly to the open source developers apps you are using.
\ No newline at end of file
diff --git a/ubuntu/docker/authentik/.env.example b/ubuntu/docker/authentik/.env.example
deleted file mode 100644
index 763c07e..0000000
--- a/ubuntu/docker/authentik/.env.example
+++ /dev/null
@@ -1 +0,0 @@
-# You environment variables go here
\ No newline at end of file
diff --git a/ubuntu/docker/authentik/docker-compose.yml b/ubuntu/docker/authentik/docker-compose.yml
deleted file mode 100644
index 572be32..0000000
--- a/ubuntu/docker/authentik/docker-compose.yml
+++ /dev/null
@@ -1,86 +0,0 @@
----
-version: "3.4"
-
-services:
- postgresql:
- image: docker.io/library/postgres:12-alpine
- restart: unless-stopped
- healthcheck:
- test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
- start_period: 20s
- interval: 30s
- retries: 5
- timeout: 5s
- volumes:
- - database:/var/lib/postgresql/data
- environment:
- POSTGRES_PASSWORD: ${PG_PASS:?database password required}
- POSTGRES_USER: ${PG_USER:-authentik}
- POSTGRES_DB: ${PG_DB:-authentik}
- env_file:
- - .env
- redis:
- image: docker.io/library/redis:alpine
- command: --save 60 1 --loglevel warning
- restart: unless-stopped
- healthcheck:
- test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
- start_period: 20s
- interval: 30s
- retries: 5
- timeout: 3s
- volumes:
- - redis:/data
- server:
- image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.2.2}
- restart: unless-stopped
- command: server
- environment:
- AUTHENTIK_REDIS__HOST: redis
- AUTHENTIK_POSTGRESQL__HOST: postgresql
- AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
- AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
- AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
- volumes:
- - ./media:/media
- - ./custom-templates:/templates
- env_file:
- - .env
- ports:
- - "${COMPOSE_PORT_HTTP:-9000}:9000"
- - "${COMPOSE_PORT_HTTPS:-9443}:9443"
- depends_on:
- - postgresql
- - redis
- worker:
- image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.2.2}
- restart: unless-stopped
- command: worker
- environment:
- AUTHENTIK_REDIS__HOST: redis
- AUTHENTIK_POSTGRESQL__HOST: postgresql
- AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
- AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
- AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
- # `user: root` and the docker socket volume are optional.
- # See more for the docker socket integration here:
- # https://goauthentik.io/docs/outposts/integrations/docker
- # Removing `user: root` also prevents the worker from fixing the permissions
- # on the mounted folders, so when removing this make sure the folders have the correct UID/GID
- # (1000:1000 by default)
- user: root
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- - ./media:/media
- - ./certs:/certs
- - ./custom-templates:/templates
- env_file:
- - .env
- depends_on:
- - postgresql
- - redis
-volumes:
- database:
- driver: local
- redis:
- driver: local
diff --git a/ubuntu/docker/homepage/README.md b/ubuntu/docker/homepage/README.md
deleted file mode 100644
index 88191c0..0000000
--- a/ubuntu/docker/homepage/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Homepage
\ No newline at end of file
diff --git a/ubuntu/docker/homepage/config/bookmarks.yaml b/ubuntu/docker/homepage/config/bookmarks.yaml
deleted file mode 100644
index bc68588..0000000
--- a/ubuntu/docker/homepage/config/bookmarks.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
----
-- Repositories:
- - Homelab:
- - icon: si-github-#FFFFFF
- href: https://github.com/twhite96/homelab-config
- description: Homelab config
- - Homelab Docs:
- - icon: si-github-#FFFFFF
- href: https://github.com/twhite96/tifflabs
- description: Homelab repo
-
-- Selfhosted Projects:
- - tiff labs:
- - icon: /icons/tifflabsgit.png
- href: https://tifflabs-software.org
- description: Labs software hosting
- - cyber:
- - icon: /icons/htbavatar.png
- href: https://projects.0x8c.run
- description: '0x8c project hosting'
-
-- Cloud Platforms:
- - Linode:
- - icon: /icons/linode.png
- href: https://cloud.linode.com/linodes
- description: Linode
- - Hetzner:
- - icon: si-hetzner-#D50C2D
- href: https://accounts.hetzner.com/login
- description: Hetzner
-
-- Hosting Platforms:
- - Vercel:
- - icon: si-vercel-#000000
- href: https://vercel.com/dashboard
- description: Vercel
- - Cloudron:
- - icon: si-cloudron-#03A9F4
- href: https://console.cloudron.io/
- description: Cloudron
-
-- Documentation:
- - Docs site:
- - icon: si-materialformkdocs-#ff0000
- href: https://docs.tifflabs.org
- description: Smart home docs
- - labs.network:
- - icon: si-bookstack-#B91C1C
- href: https://presto-horn.tifflabs.org
- description: Network wiki
-
-- Public Projects:
- - Homelab Config:
- - icon: /icons/tifflabs.svg
- href: https://homelab.tiff.tools
- description: Homelab Config
- - Forgejo Homelab Projects:
- - icon: si-forgejo-#FB923C
- href: https://tifflabs-software.org/explore
- description: Public personal projects
-
-- Cyber Learning:
- - Hack The Box:
- - icon: si-hackthebox-#9FEF00
- href: https://academy.hackthebox.com
- description: HTB Academy
- - TryHackMe:
- - icon: si-tryhackme-#88CC15
- href: https://tryhackme.com/
- description: TryHackMe
-
-- Productivity:
- - Email:
- - icon: si-protonmail-#6D4AFF
- href: https://mail.proton.me/
- description: Email
- - Calendar:
- - icon: si-protoncalendar-#50B0E9
- href: https://calendar.proton.me
- description: Calendar
-
-- Public Notes and Writeups:
- - Notes:
- - icon: si-obsidian-#7C3AED
- href: https://notes.0x8c.org
- description: Public Notes
- - Wiki:
- icon: si-gitbook-#BBDDE5
- href: https://app.gitbook.com/?source=pwa
- description: Write-ups
-
-
diff --git a/ubuntu/docker/homepage/config/custom.css b/ubuntu/docker/homepage/config/custom.css
deleted file mode 100644
index e69de29..0000000
diff --git a/ubuntu/docker/homepage/config/custom.js b/ubuntu/docker/homepage/config/custom.js
deleted file mode 100644
index e69de29..0000000
diff --git a/ubuntu/docker/homepage/config/docker.yaml b/ubuntu/docker/homepage/config/docker.yaml
deleted file mode 100644
index e69de29..0000000
diff --git a/ubuntu/docker/homepage/config/kubernetes.yaml b/ubuntu/docker/homepage/config/kubernetes.yaml
deleted file mode 100644
index e69de29..0000000
diff --git a/ubuntu/docker/homepage/config/services.yaml b/ubuntu/docker/homepage/config/services.yaml
deleted file mode 100644
index c3ccff1..0000000
--- a/ubuntu/docker/homepage/config/services.yaml
+++ /dev/null
@@ -1,107 +0,0 @@
----
-- Infrastructure and Data:
- - Proxmox:
- href: {{proxmox-url}}
- icon: proxmox.svg
- description: prx-prod-2
- siteMonitor: {{proxmox-url}}
- widget:
- type: proxmox
- url: {{proxmox-url}}
- username: {{HOMEPAGE_VAR_PROXMOX_USERNAME}}
- password: {{HOMEPAGE_VAR_PROXMOX_PASSWORD}}
-
- - Authentik:
- icon: authentik.png
- showStats: true
- href: {{url}}
- widget:
- type: authentik
- fields: ["users"]
- url: {{url}}
- key: {{HOMEPAGE_VAR_AUTHENTIK_KEY}}
-
-- Monitoring:
- - UptimeKuma:
- icon: uptime-kuma.svg
- href: https://uptime.tifflabs.org
- widget:
- description: uptime on pve main
- fields: ["up", "down", "uptime", "incident"]
- icon: uptime-kuma.svg
- type: uptimekuma
- url: {{url}}
- slug: lab
- - Pi-hole:
- icon: pi-hole.svg
- siteMonitor: {{url}}
- widget:
- type: pihole
- fields: ["queries", "blocked", "blocked_percent", "gravity"]
- url: {{url}} # required if running v6 or higher, defaults to 5
- key: {{HOMEPAGE_VAR_PIHOLE_TOKEN}}
- - Grafana:
- icon: grafana.svg
- siteMonitor: {{url}}
- widget:
- type: grafana
- fields: ["dashboards", "datasources", "totalalerts", "alertstriggered"]
- url: {{url}}
- username: tifflabs
- password: {{HOMEPAGE_VAR_GRAFANA_PASSWORD}}
- - Tailscale:
- icon: tailscale.svg
- showStats: true
- widget:
- type: tailscale
- fields: ["address", "last_seen", "expires"]
- deviceid: {{device-id}}
- key: {{key}}
-
-- Media:
- - Jellyfin:
- icon: jellyfin.svg
- description: tailnet jellyfin
- widget:
- type: jellyfin
- url: {{url}}
- fields: ["movies", "series", "episodes", "songs"]
- key: {{HOMEPAGE_VAR_JELLYFIN_KEY}}
- enableBlocks: true # optional, defaults to false
- enableNowPlaying: true # optional, defaults to true
- enableUser: true # optional, defaults to false
- showEpisodeNumber: true # optional, defaults to false
- expandOneStreamToTwoRows: false # optional, defaults to true
- - Calibre:
- icon: calibre.svg
- siteMonitor: https://books.tiffs.app
- href: 'https://books.tiffs.app'
- widget:
- type: calibreweb
- url: https://books.tiffs.app
- fields: ["books", "authors", "categories", "series"]
- username: {{username}}
- password: {{password}}
- - FreshRSS:
- icon: freshrss.svg
- description: RSS Feed
- href: https://rss.tifflabs.dev
- showStats: true
- widget:
- type: freshrss
- url: https://rss.tifflabs.dev
- fields: ["subscriptions", "unread"]
- username: {{username}}
- password: {{password}}
-
- - Audiobookshelf:
- icon: audiobookshelf.svg
- siteMonitor: https://audiobooks.tiffs.app
- href: https://audiobooks.tiffs.app
- description: Audiobook Library
- showStats: true
- widget:
- type: audiobookshelf
- fields: ["podcasts", "podcastsDuration", "books", "booksDuration"]
- url: https://audiobooks.tiffs.app
- key: {{HOMEPAGE_VAR_AUDIOBOOKSHELF_KEY}}
diff --git a/ubuntu/docker/homepage/config/settings.yaml b/ubuntu/docker/homepage/config/settings.yaml
deleted file mode 100644
index 90a107d..0000000
--- a/ubuntu/docker/homepage/config/settings.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Dash
-headerStyle: clean
-
-background:
- blur: xl
- brightness: 90
- opacity: 60
-
-cardBlur: sm
-
-useEqualHeights: true
-
-providers:
-
-
-quicklaunch:
- searchDescriptions: true
- hideInternetSearch: true
- showSearchSuggestions: true
- hideVisitURL: true
-
-layout:
- - Services:
- Infrastructure and Data:
- icon: proxmox.svg
- style: row
- columns: 2
- Monitoring:
- icon: grafana.svg
- style: row
- columns: 4
- Media:
- icon: jellyfin.svg
- style: row
- columns: 4
-
- - Bookmarks:
- Repositories:
- icon: github.svg
- style: row
- columns: 2
- Selfhosted Projects:
- icon: codeberg.svg
- style: row
- columns: 2
- Cloud Platforms:
- icon: hetzner.svg
- style: row
- columns: 2
- Hosting Platforms:
- icon: cloudron.svg
- style: row
- columns: 2
- Documentation:
- icon: bookstack.svg
- style: row
- columns: 2
- Public Projects:
- icon: forgejo.svg
- style: row
- columns: 2
- Cyber Learning:
- icon: hackthebox.svg
- style: row
- columns: 2
- Productivity:
- icon: protonmail.svg
- style: row
- columns: 2
- Public Notes and Writeups:
- icon: obsidian.svg
- style: row
- columns: 2
\ No newline at end of file
diff --git a/ubuntu/docker/homepage/config/widgets.yaml b/ubuntu/docker/homepage/config/widgets.yaml
deleted file mode 100644
index a98fa4f..0000000
--- a/ubuntu/docker/homepage/config/widgets.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-- resources:
- cpu: true
- memory: true
- disk: /
-
-- search:
- provider: custom
- url: # whoogle # google, duckduckgo, bing, baidu, brave or custom
- focus: true
- target: _blank # One of _self, _blank, _parent or _top
-
-- openweathermap:
- latitude: {{long}}
- longitude: {{lat}}
- units: imperial # or imperial
- provider: openweathermap
- cache: 5 # Time in minutes to cache API responses, to stay within limits
- format: # optional, Intl.NumberFormat options
- maximumFractionDigits: 0
-
-- datetime:
- text_size: m
- format:
- timeStyle: short
- hourCycle: h12
\ No newline at end of file
diff --git a/ubuntu/docker/homepage/docker-compose.yaml b/ubuntu/docker/homepage/docker-compose.yaml
deleted file mode 100644
index 158f008..0000000
--- a/ubuntu/docker/homepage/docker-compose.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-services:
- homepage:
- image: ghcr.io/gethomepage/homepage:latest
- container_name: homepage-prod-1
- ports:
- - 3000:3000
- env_file:
- - ".env.example"
- volumes:
- - ./config:/app/config # Make sure your local config directory exists
- - ./images:/app/public/images
- - ./icons:/app/public/icons
- restart: unless-stopped
\ No newline at end of file
diff --git a/ubuntu/docker/photoprism/docker-compose.yml b/ubuntu/docker/photoprism/docker-compose.yml
deleted file mode 100644
index b591d24..0000000
--- a/ubuntu/docker/photoprism/docker-compose.yml
+++ /dev/null
@@ -1,166 +0,0 @@
-# Example Docker Compose config file for PhotoPrism (Linux / AMD64)
-#
-# Note:
-# - Running PhotoPrism on a server with less than 4 GB of swap space or setting a memory/swap limit can cause unexpected
-# restarts ("crashes"), for example, when the indexer temporarily needs more memory to process large files.
-# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure
-# HTTPS reverse proxy such as Traefik or Caddy. Your files and passwords will otherwise be transmitted
-# in clear text and can be intercepted by anyone, including your provider, hackers, and governments:
-# https://docs.photoprism.app/getting-started/proxies/traefik/
-#
-# Setup Guides:
-# - https://docs.photoprism.app/getting-started/docker-compose/
-# - https://docs.photoprism.app/getting-started/raspberry-pi/
-# - https://www.photoprism.app/kb/activation
-#
-# Troubleshooting Checklists:
-# - https://docs.photoprism.app/getting-started/troubleshooting/
-# - https://docs.photoprism.app/getting-started/troubleshooting/docker/
-# - https://docs.photoprism.app/getting-started/troubleshooting/mariadb/
-#
-# CLI Commands:
-# - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface
-#
-# All commands may have to be prefixed with "sudo" when not running as root.
-# This will point the home directory shortcut ~ to /root in volume mounts.
-
-services:
- # traefik:
- # image: traefik:v2.11
- # restart: unless-stopped
- # ports:
- # - "80:80"
- # - "443:443"
- # volumes:
- # - "./traefik.yaml:/etc/traefik/traefik.yaml"
- # - "./traefik/data:/data"
- # - "/var/run/docker.sock:/var/run/docker.sock"
- photoprism:
- ## Use photoprism/photoprism:preview for testing preview builds:
- image: photoprism/photoprism:latest
- ## Don't enable automatic restarts until PhotoPrism has been properly configured and tested!
- ## If the service gets stuck in a restart loop, this points to a memory, filesystem, network, or database issue:
- ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors
- # restart: unless-stopped
- stop_grace_period: 10s
- depends_on:
- - mariadb
- security_opt:
- - seccomp:unconfined
- - apparmor:unconfined
- ## Server port mapping in the format "Host:Container". To use a different port, change the host port on
- ## the left-hand side and keep the container port, e.g. "80:2342" (for HTTP) or "443:2342 (for HTTPS):
- ports:
- - "2342:2342"
- # labels:
- # - "traefik.http.routers.photoprism.rule=Host(`photos.tiff.ws`)"
- # - "traefik.http.routers.photoprism.tls=true"
- # - "traefik.http.routers.photoprism.tls.certresolver=myresolver"
- ## Before you start the service, please check the following config options (and change them as needed):
- ## https://docs.photoprism.app/getting-started/config-options/
- environment:
- PHOTOPRISM_ADMIN_USER: "admin" # admin login username
- PHOTOPRISM_ADMIN_PASSWORD: # initial admin password (8-72 characters)
- PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password)
- PHOTOPRISM_SITE_URL: # server URL in the format "http(s)://domain.name(:port)/(path)"
- PHOTOPRISM_DISABLE_TLS: "false" # disables HTTPS/TLS even if the site URL starts with https:// and a certificate is available
- PHOTOPRISM_DEFAULT_TLS: "true" # defaults to a self-signed HTTPS/TLS certificate if no other certificate is available
- PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
- PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
- PHOTOPRISM_LOG_LEVEL: "info" # log level: trace, debug, info, warning, error, fatal, or panic
- PHOTOPRISM_READONLY: "false" # do not modify originals directory (reduced functionality)
- PHOTOPRISM_EXPERIMENTAL: "false" # enables experimental features
- PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup
- PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server
- PHOTOPRISM_DISABLE_SETTINGS: "false" # disables settings UI and API
- PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
- PHOTOPRISM_DISABLE_FACES: "false" # disables face detection and recognition (requires TensorFlow)
- PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # disables image classification (requires TensorFlow)
- PHOTOPRISM_DISABLE_VECTORS: "false" # disables vector graphics support
- PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images
- PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
- PHOTOPRISM_SIDECAR_YAML: "true" # creates YAML sidecar files to back up picture metadata
- PHOTOPRISM_BACKUP_ALBUMS: "true" # creates YAML files to back up album metadata
- PHOTOPRISM_BACKUP_DATABASE: "true" # creates regular backups based on the configured schedule
- PHOTOPRISM_BACKUP_SCHEDULE: "daily" # backup SCHEDULE in cron format (e.g. "0 12 * * *" for daily at noon) or at a random time (daily, weekly)
- PHOTOPRISM_INDEX_SCHEDULE: "" # indexing SCHEDULE in cron format (e.g. "@every 3h" for every 3 hours; "" to disable)
- PHOTOPRISM_AUTO_INDEX: 300 # delay before automatically indexing files in SECONDS when uploading via WebDAV (-1 to disable)
- PHOTOPRISM_AUTO_IMPORT: -1 # delay before automatically importing files in SECONDS when uploading via WebDAV (-1 to disable)
- PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
- PHOTOPRISM_UPLOAD_NSFW: "true" # allows uploads that MAY be offensive (no effect without TensorFlow)
- # PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that does not require a separate database server
- PHOTOPRISM_DATABASE_DRIVER: "mysql" # MariaDB 10.5.12+ (MySQL successor) offers significantly better performance compared to SQLite
- PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB database server (hostname:port)
- PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB database schema name
- PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB database user name
- PHOTOPRISM_DATABASE_PASSWORD: # MariaDB database user password
- PHOTOPRISM_SITE_CAPTION: #your caption goes here
- PHOTOPRISM_SITE_DESCRIPTION: # meta site description
- PHOTOPRISM_SITE_AUTHOR: # meta site author
- ## Video Transcoding (https://docs.photoprism.app/getting-started/advanced/transcoding/):
- # PHOTOPRISM_FFMPEG_ENCODER: "software" # H.264/AVC encoder (software, intel, nvidia, apple, raspberry, or vaapi)
- # PHOTOPRISM_FFMPEG_SIZE: "1920" # video size limit in pixels (720-7680) (default: 3840)
- # PHOTOPRISM_FFMPEG_BITRATE: "32" # video bitrate limit in Mbit/s (default: 50)
- ## Run/install on first startup (options: update https gpu ffmpeg tensorflow davfs clitools clean):
- # PHOTOPRISM_INIT: "https gpu tensorflow"
- ## Run as a non-root user after initialization (supported: 0, 33, 50-99, 500-600, and 900-1200):
- # PHOTOPRISM_UID: 1000
- # PHOTOPRISM_GID: 1000
- # PHOTOPRISM_UMASK: 0000
- ## Start as non-root user before initialization (supported: 0, 33, 50-99, 500-600, and 900-1200):
- # user: "1000:1000"
- ## Share hardware devices with FFmpeg and TensorFlow (optional):
- # devices:
- # - "/dev/dri:/dev/dri" # Intel QSV
- # - "/dev/nvidia0:/dev/nvidia0" # Nvidia CUDA
- # - "/dev/nvidiactl:/dev/nvidiactl"
- # - "/dev/nvidia-modeset:/dev/nvidia-modeset"
- # - "/dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl"
- # - "/dev/nvidia-uvm:/dev/nvidia-uvm"
- # - "/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools"
- # - "/dev/video11:/dev/video11" # Video4Linux Video Encode Device (h264_v4l2m2m)
- working_dir: "/photoprism" # do not change or remove
- ## Storage Folders: "~" is a shortcut for your home directory, "." for the current directory
- volumes:
- # "/host/folder:/photoprism/folder" # Example
- - "./photos:/photoprism/originals" # Original media files (DO NOT REMOVE)
- # - "/example/family:/photoprism/originals/family" # *Additional* media folders can be mounted like this
- - "./storage.usb:/photoprism/import" # *Optional* base folder from which files can be imported to originals
- - "./storage:/photoprism/storage" # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE)
-
- ## MariaDB Database Server (recommended)
- ## see https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql
- mariadb:
- image: mariadb:11
- ## If MariaDB gets stuck in a restart loop, this points to a memory or filesystem issue:
- ## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors
- restart: unless-stopped
- stop_grace_period: 5s
- security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239
- - seccomp:unconfined
- - apparmor:unconfined
- command: --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
- ## Never store database files on an unreliable device such as a USB flash drive, an SD card, or a shared network folder:
- volumes:
- - "./database:/var/lib/mysql" # DO NOT REMOVE
- environment:
- MARIADB_AUTO_UPGRADE: "1"
- MARIADB_INITDB_SKIP_TZINFO: "1"
- MARIADB_DATABASE: "photoprism"
- MARIADB_USER: "photoprism"
- MARIADB_PASSWORD: "x!rPM.jTjcKLPuhLHdGs78A9W"
- MARIADB_ROOT_PASSWORD: "WkDdnDehFdALm*N@EUqE6e7MC"
-
- ## Watchtower upgrades services automatically (optional)
- ## see https://docs.photoprism.app/getting-started/updates/#watchtower
- ## activate via "COMPOSE_PROFILES=update docker compose up -d"
- watchtower:
- restart: unless-stopped
- image: containrrr/watchtower
- profiles: ["update"]
- environment:
- WATCHTOWER_CLEANUP: "true"
- WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours
- volumes:
- - "/var/run/docker.sock:/var/run/docker.sock"
- - "~/.docker/config.json:/config.json" # optional, for authentication if you have a Docker Hub account
diff --git a/ubuntu/docker/qbittorrent/README.md b/ubuntu/docker/qbittorrent/README.md
deleted file mode 100644
index 5e6ad6c..0000000
--- a/ubuntu/docker/qbittorrent/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# qBittorent Web Ui Install
-
-> [!NOTE]\
-> This gist is taken from an article on Linux Babe which is linked in the Gist. If curious now, you can find the article here: [Linux Babe How to Install qBIttorent Web UI on Ubuntu 18.04 Desktip or Server](https://www.linuxbabe.com/ubuntu/install-qbittorrent-ubuntu-18-04-desktop-server)
->
->
-
-
-
-
diff --git a/ubuntu/servarr/README.md b/ubuntu/servarr/README.md
deleted file mode 100644
index cbd0ff7..0000000
--- a/ubuntu/servarr/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# *arr Apps
-
-The apps you use when you want to keep track of the ISO files you get.
\ No newline at end of file
diff --git a/vps/README.md b/vps/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/vps/server-1/README.md b/vps/server-1/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/vps/server-1/coolify/README.md b/vps/server-1/coolify/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/vps/server-2/README.md b/vps/server-2/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/vps/server-2/docker/README.md b/vps/server-2/docker/README.md
deleted file mode 100644
index e69de29..0000000