From 769a9edd343e8e44abc43bb7e43aa27451ad2a64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?c=C4=83t=C4=83lin?= Date: Wed, 27 May 2026 00:59:43 +0200 Subject: [PATCH] feat: add pluton volumes --- README.md | 3 -- docker/pluton/docker-compose.yaml | 50 ---------------------- docker/pluton/docker-compose.yml | 25 +++++++++++ k8s/argo-apps/technitium.yaml | 66 +++++++++++++++++++++++++++++ k8s/services/argo/project-fuku.yaml | 1 + 5 files changed, 92 insertions(+), 53 deletions(-) delete mode 100644 docker/pluton/docker-compose.yaml create mode 100644 docker/pluton/docker-compose.yml create mode 100644 k8s/argo-apps/technitium.yaml diff --git a/README.md b/README.md index 4706caa..1b287dc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1 @@ # fukuops - -[![Last build status](https://git.roboces.dev/catalin/fukuops/badges/workflows/ci.yaml/badge.svg)](https://git.roboces.dev/catalin/fukuops/actions) -[![Tofu deployments](https://git.roboces.dev/catalin/fukuops/badges/workflows/deploy-tofu.yaml/badge.svg)](https://git.roboces.dev/catalin/fukuops/actions) diff --git a/docker/pluton/docker-compose.yaml b/docker/pluton/docker-compose.yaml deleted file mode 100644 index b4ff97d..0000000 --- a/docker/pluton/docker-compose.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -services: - pluton: - image: plutonhq/pluton:latest - container_name: pluton-backup - #restart: unless-stopped - - ports: - - "${SERVER_PORT:-5173}:${SERVER_PORT:-5173}" - - volumes: - # Main data volume - contains database, config, logs - - pluton-data:/data - - # Optional: Mount host directories to backup - - # Example: Make user's documents folders Accessible to Pluton - - /home//pihanepi/config/nginx:/mnt/nginxconf:ro #linux - - /home//pihanepi/data/pluton/backupdir:/mnt/backupdir - - environment: - # ===== REQUIRED: Security & Authentication ===== - # Generate secure random strings (min 12 characters each) - ENCRYPTION_KEY: ${ENCRYPTION_KEY} # Encryption key for restic/rclone Snapshot encryption - USER_NAME: ${USER_NAME} # Admin username for login - USER_PASSWORD: ${USER_PASSWORD} # Admin password for login - - # ===== Application Settings ===== - APP_TITLE: ${APP_TITLE:-Pluton} - #APP_URL: ${APP_URL:-http://localhost:5173} - SERVER_PORT: ${SERVER_PORT:-5173} - MAX_CONCURRENT_BACKUPS: ${MAX_CONCURRENT_BACKUPS:-2} - SESSION_DURATION: ${SESSION_DURATION:-7} # How long frontend login Session lasts in Days - - # ===== User Interface Security Settings ===== - ALLOW_CUSTOM_RESTORE_PATH: ${ALLOW_CUSTOM_RESTORE_PATH:-true} - ALLOW_FILE_BROWSER: ${ALLOW_FILE_BROWSER:-true} - DISABLE_EVENT_SCRIPTS: ${DISABLE_EVENT_SCRIPTS:-false} - - # ===== Docker-specific (do not change) ===== - NODE_ENV: production - IS_DOCKER: "true" - -volumes: - pluton-data: - name: "pluton-volume" - driver_opts: - type: "volume" - external: "false" - \ No newline at end of file diff --git a/docker/pluton/docker-compose.yml b/docker/pluton/docker-compose.yml new file mode 100644 index 0000000..fc75f4e --- /dev/null +++ b/docker/pluton/docker-compose.yml @@ -0,0 +1,25 @@ +--- +services: + pluton: + image: plutonhq/pluton:latest + container_name: pluton-backup + restart: always + ports: + - "${SERVER_PORT:-5173}:${SERVER_PORT:-5173}" + volumes: + - ${PLUTON_DATA:-/mnt/nas1/shared/pluton/data}:/data + - ${PLUTON_BACKUP_VOLUME_SHARED:-/mnt/nas1/shared}:/backups/shared + environment: + ENCRYPTION_KEY: ${ENCRYPTION_KEY} + USER_NAME: ${USER_NAME} + USER_PASSWORD: ${USER_PASSWORD} + APP_TITLE: ${APP_TITLE:-Pluton} + APP_URL: ${APP_URL:-https://backups.fukurokuju.dev} + SERVER_PORT: ${SERVER_PORT:-5173} + MAX_CONCURRENT_BACKUPS: ${MAX_CONCURRENT_BACKUPS:-2} + SESSION_DURATION: ${SESSION_DURATION:-7} + ALLOW_CUSTOM_RESTORE_PATH: ${ALLOW_CUSTOM_RESTORE_PATH:-true} + ALLOW_FILE_BROWSER: ${ALLOW_FILE_BROWSER:-true} + DISABLE_EVENT_SCRIPTS: ${DISABLE_EVENT_SCRIPTS:-false} + NODE_ENV: production + IS_DOCKER: "true" diff --git a/k8s/argo-apps/technitium.yaml b/k8s/argo-apps/technitium.yaml new file mode 100644 index 0000000..76378ba --- /dev/null +++ b/k8s/argo-apps/technitium.yaml @@ -0,0 +1,66 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: technitium + namespace: argocd +spec: + destination: + name: '' + namespace: apps-fuku + server: https://kubernetes.default.svc + project: fuku + syncPolicy: + automated: {} + sources: + - repoURL: https://charts.obeone.cloud + chart: technitium-dnsserver + targetRevision: 1.10.* + helm: + valuesObject: + controller: + type: daemonset + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + service: + main: + type: ClusterIP + ports: + http: + enabled: false + https: + enabled: false + dns-udp: + enabled: true + port: 53 + protocol: UDP + nodePort: "" + dns-tcp: + enabled: true + port: 53 + protocol: TCP + nodePort: "" + webui: + enabled: true + type: LoadBalancer + ports: + http: + enabled: true + port: 80 + targetPort: 5380 + nodePort: "" + ingress: + main: + enabled: true + ingressClassName: traefik + hosts: + - host: dns.fuku + paths: + - path: / + pathType: Prefix + tls: [] + persistence: + config: + enabled: true + type: emptyDir + mountPath: /etc/dns diff --git a/k8s/services/argo/project-fuku.yaml b/k8s/services/argo/project-fuku.yaml index 46076fd..1a0023b 100644 --- a/k8s/services/argo/project-fuku.yaml +++ b/k8s/services/argo/project-fuku.yaml @@ -34,3 +34,4 @@ spec: - https://rcourtman.github.io/Pulse - ghcr.io/antoniolago/charts - https://helm.elastic.co + - https://charts.obeone.cloud