diff --git a/server/compose.yml b/server/compose.yml deleted file mode 100644 index e2bca5e3..00000000 --- a/server/compose.yml +++ /dev/null @@ -1,56 +0,0 @@ -# docker compose down --volumes -# docker compose up -d --remove-orphans - -services: - nginx-proxy-manager: - image: "docker.io/jc21/nginx-proxy-manager:2.12.3" - restart: unless-stopped - container_name: nginx-proxy-manager - network_mode: host - environment: # Uncomment this if IPv6 is not enabled on your host - - DISABLE_IPV6=true # Uncomment this if IPv6 is not enabled on your host - volumes: - - ./npm/data:/data - - ./npm/letsencrypt:/etc/letsencrypt - - nextcloud-aio-mastercontainer: - image: ghcr.io/nextcloud-releases/all-in-one:latest - init: true - restart: always - container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed. - network_mode: bridge - volumes: - - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed. - - /var/run/docker.sock:/var/run/docker.sock:ro - ports: - - 8080:8080 - environment: - #AIO_COMMUNITY_CONTAINERS: "local-ai memories" # Community containers https://github.com/nextcloud/all-in-one/tree/main/community-containers - APACHE_PORT: 11000 # Use this port in Nginx Proxy Manager - # NC_TRUSTED_PROXIES: 172.18.0.3 # this is the NPM proxy ip address in the docker network ! - FULLTEXTSEARCH_JAVA_OPTIONS: "-Xms1024M -Xmx1024M" - NEXTCLOUD_DATADIR: /server/ncdata # ⚠️ Warning: do not set or adjust this value after the initial Nextcloud installation is done! - # NEXTCLOUD_MOUNT: /mnt/ # Allows the Nextcloud container to access the chosen directory on the host. - NEXTCLOUD_UPLOAD_LIMIT: 2000G - NEXTCLOUD_MAX_TIME: 7200 - NEXTCLOUD_MEMORY_LIMIT: 2052M - NEXTCLOUD_ENABLE_DRI_DEVICE: true # Intel QuickSync - SKIP_DOMAIN_VALIDATION: false # This should only be set to true if things are correctly configured. - TALK_PORT: 3478 # This allows to adjust the port that the talk container is using which is exposed on the host. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port - #extra_hosts: - # - cloud.example.com:8.8.8.8 # Uncomment and edit if your domain is not resolving correctly. - - gitea: - image: gitea/gitea:latest - restart: unless-stopped - volumes: - - /opt/gitea:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - ports: - - "3001:3000" - - "3022:22" - -volumes: - nextcloud_aio_mastercontainer: - name: nextcloud_aio_mastercontainer # This line is not allowed to be changed. diff --git a/server/docker-compose.yml b/server/docker-compose.yml new file mode 100644 index 00000000..97f0082f --- /dev/null +++ b/server/docker-compose.yml @@ -0,0 +1,209 @@ +# docker compose down --volumes +# docker compose up -d --remove-orphans + +name: server + +services: + # --- NGINX Proxy Manager --- + nginx-proxy-manager: + image: "docker.io/jc21/nginx-proxy-manager:latest" + restart: unless-stopped + container_name: nginx-proxy-manager + network_mode: host + environment: # Uncomment this if IPv6 is not enabled on your host + - DISABLE_IPV6=true # Uncomment this if IPv6 is not enabled on your host + volumes: + - ${NGINX_DATA}:/data + - ${NGINX_LETSENCRYPT}:/etc/letsencrypt + + # --- Immich Server --- + immich-server: + container_name: immich_server + image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} + # extends: + # file: hwaccel.transcoding.yml + # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding + volumes: + # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file + - ${IMMICH_UPLOAD_LOCATION}:/usr/src/app/upload + - /etc/localtime:/etc/localtime:ro + env_file: + - .env + ports: + - "2283:2283" + depends_on: + - redis + - database + restart: always + healthcheck: + disable: false + + immich-machine-learning: + container_name: immich_machine_learning + # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] 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, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable + volumes: + - model-cache:/cache + env_file: + - .env + restart: always + healthcheck: + disable: false + + redis: + container_name: immich_redis + image: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177 + healthcheck: + test: redis-cli ping || exit 1 + restart: always + + database: + container_name: immich_postgres + image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0 + environment: + POSTGRES_PASSWORD: ${IMMICH_DB_PASSWORD} + POSTGRES_USER: ${IMMICH_DB_USERNAME} + POSTGRES_DB: ${IMMICH_DB_DATABASE_NAME} + POSTGRES_INITDB_ARGS: "--data-checksums" + # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs + B_STORAGE_TYPE: "HDD" + volumes: + # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file + - ${IMMICH_DB_DATA_LOCATION}:/var/lib/postgresql/data + restart: always + + # --- Home Assistant --- + homeassistant: + container_name: homeassistant + image: "ghcr.io/home-assistant/home-assistant:stable" + env_file: + - .env + volumes: + - ${HA_CONFIG}:/config + - /etc/localtime:/etc/localtime:ro + - /run/dbus:/run/dbus:ro + restart: unless-stopped + # devices: + # - /dev/ttyUSB0:/dev/ttyUSB0 + privileged: true + #network_mode: host + ports: + - "8123:8123" + + # openwakeword: + # image: homeassistant/amd64-addon-openwakeword:latest + # container_name: openwakeword + # entrypoint: python3 + # command: > + # -m wyoming_openwakeword + # --uri 'tcp://0.0.0.0:10400' + # --preload-model 'ok_nabu' + # --custom-model-dir /share/openwakeword + # env_file: + # - .env + # ports: + # - 10400:10400 + # volumes: + # - ${OWW_DATA}:/data + # - ${OWW_CUSTOM_MODEL_DIR}:/share/openwakeword + # restart: unless-stopped + + piper: + image: homeassistant/amd64-addon-piper:latest + container_name: piper + + entrypoint: python3 + command: > + -m wyoming_piper + --piper '/usr/share/piper/piper' + --uri 'tcp://0.0.0.0:10200' + --length-scale "1" + --noise-scale "0.667" + --speaker "0" + --voice "en_US-lessac-medium" + --max-piper-procs "1" + --data-dir /data + --data-dir /share/piper + --download-dir /data + ports: + - "10200:10200" + volumes: + - ${PIPER_DATA}:/data + restart: unless-stopped + + whisper: + image: homeassistant/amd64-addon-whisper:latest + container_name: whisper + + entrypoint: python3 + command: > + -m wyoming_faster_whisper + --uri tcp://0.0.0.0:10300 + --model small-int8 + --beam-size 1 + --language en + --data-dir /data + --download-dir /data + ports: + - "10300:10300" + env_file: + - .env + volumes: + - ${WHISPER_DATA}:/data + restart: unless-stopped + + # --- Pi-hole --- + pihole: + container_name: pihole + image: pihole/pihole:latest + ports: + # DNS Ports + - "53:53/tcp" + - "53:53/udp" + # Default HTTP Port + - "2100:80/tcp" + - "2101:443/tcp" + env_file: + - .env + volumes: + - "${PIHOLE}:/etc/pihole" + cap_add: + # Optional, if Pi-hole should get some more processing time + - SYS_NICE + restart: unless-stopped + + # --- Nextcloud --- + nextcloud-aio-mastercontainer: + image: ghcr.io/nextcloud-releases/all-in-one:latest + init: true + restart: unless-stopped + container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed. + network_mode: bridge + volumes: + - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed. + - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - 8080:8080 + env_file: + - .env + + # --- Gitea --- + gitea: + image: gitea/gitea:latest + restart: unless-stopped + volumes: + - ${GITEA}:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3001:3000" + - "3022:22" + +volumes: + model-cache: + nextcloud_aio_mastercontainer: + name: nextcloud_aio_mastercontainer # This line is not allowed to be changed. diff --git a/server/install.sh b/server/install.sh deleted file mode 100755 index 6955b7c9..00000000 --- a/server/install.sh +++ /dev/null @@ -1,51 +0,0 @@ -#! /bin/sh - -RED="\e[31m" -GREEN="\e[32m" -YELLOW="\e[33m" -MAGENTA="\e[35m" -CYAN="\e[36m" -BOLD="\e[1m" -NC="\e[0m" - -trap 'printf "${RED}install.sh interrupted.${NC}"; exit 1' INT TERM - -../scripts/update - -echo "${YELLOW}Before starting the script, mount your storage device for the server @ /server, then press ENTER to continue. If you wish to use the /root drive, skip this step.${NC}" -SRV_DATA="/server" # Change on the compose file as well! -read - -echo "${YELLOW}Installing Docker...${NC}" -# Add Docker's official GPG key -sudo apt install ca-certificates curl -sudo install -m 0755 -d /etc/apt/keyrings -sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc -sudo chmod a+r /etc/apt/keyrings/docker.asc - -# Add the repository to Apt sources -echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ - $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | - sudo tee /etc/apt/sources.list.d/docker.list >/dev/null -sudo apt update -sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - -# Add user to docker group (to remove the need to use sudo) -sudo usermod -aG docker $USER - -echo "${YELLOW}Running compose...${NC}" -sudo mkdir $SRV_DATA -cd $SRV_DATA -sudo chown -R 1000:1000 $SRV_DATA -mkdir ncdata -docker compose up -d --remove-orphans - -LOCAL_IP=$(hostname -I | awk '{print $1}') -echo -echo "${CYAN}Ports:" -echo "Nextcloud: http://$LOCAL_IP:11000" -echo "Nextcloud AIO: https://$LOCAL_IP:8080" -echo "Gitea: http://$LOCAL_IP:3001" -echo "Nginx Proxy Manager: https://$LOCAL_IP:81" -echo "${NC}" diff --git a/server/close-all-ports.sh b/server/upnpc-close.sh similarity index 85% rename from server/close-all-ports.sh rename to server/upnpc-close.sh index 139153be..ec174636 100644 --- a/server/close-all-ports.sh +++ b/server/upnpc-close.sh @@ -1,4 +1,7 @@ #!/bin/sh + +# Close all upnpc ports + upnpc -l | sed -n 's/^[[:space:]]*[0-9]\+\s\+\(TCP\|UDP\)\s\+\([0-9]\+\).*/\1 \2/p' | while read proto port; do upnpc -d "$port" "$proto" done