From b8ef06265c594350d0425eae668ede2c8c653231 Mon Sep 17 00:00:00 2001 From: Johnny Reijnst Date: Sat, 9 Aug 2025 09:24:29 +0200 Subject: [PATCH] Uploading docker files --- .../Booked Scheduler/docker-compose.yml | 31 ++++++++ .../Booked Scheduler/powershell.ps1 | 58 ++++++++++++++ Docker compose files/Caddy/Caddyfile | 40 ++++++++++ Docker compose files/Caddy/docker-compose.yml | 14 ++++ Docker compose files/LuxWP/docker-compose.yml | 45 +++++++++++ Docker compose files/Nextcloud/README.txt | 55 ++++++++++++++ .../Nextcloud/docker-compose.yml | 40 ++++++++++ Docker compose files/Nextcloud/powershell.ps1 | 68 +++++++++++++++++ .../calcom-app/docker-compose.yml | 29 +++++++ .../calcom-app/powershell.ps1 | 76 +++++++++++++++++++ Docker compose files/caldav-gsync/README.txt | 55 ++++++++++++++ Docker compose files/caldav-gsync/config.yaml | 16 ++++ .../caldav-gsync/docker-compose.yml | 11 +++ .../easyappointments/docker-compose.yml | 31 ++++++++ .../easyappointments/powershell.ps1 | 62 +++++++++++++++ Docker compose files/vdirsyncer/README.txt | 55 ++++++++++++++ Docker compose files/vdirsyncer/config | 27 +++++++ .../vdirsyncer/docker-compose.yml | 15 ++++ .../vdirsyncer/powershell.ps1 | 68 +++++++++++++++++ 19 files changed, 796 insertions(+) create mode 100644 Docker compose files/Booked Scheduler/docker-compose.yml create mode 100644 Docker compose files/Booked Scheduler/powershell.ps1 create mode 100644 Docker compose files/Caddy/Caddyfile create mode 100644 Docker compose files/Caddy/docker-compose.yml create mode 100644 Docker compose files/LuxWP/docker-compose.yml create mode 100644 Docker compose files/Nextcloud/README.txt create mode 100644 Docker compose files/Nextcloud/docker-compose.yml create mode 100644 Docker compose files/Nextcloud/powershell.ps1 create mode 100644 Docker compose files/calcom-app/docker-compose.yml create mode 100644 Docker compose files/calcom-app/powershell.ps1 create mode 100644 Docker compose files/caldav-gsync/README.txt create mode 100644 Docker compose files/caldav-gsync/config.yaml create mode 100644 Docker compose files/caldav-gsync/docker-compose.yml create mode 100644 Docker compose files/easyappointments/docker-compose.yml create mode 100644 Docker compose files/easyappointments/powershell.ps1 create mode 100644 Docker compose files/vdirsyncer/README.txt create mode 100644 Docker compose files/vdirsyncer/config create mode 100644 Docker compose files/vdirsyncer/docker-compose.yml create mode 100644 Docker compose files/vdirsyncer/powershell.ps1 diff --git a/Docker compose files/Booked Scheduler/docker-compose.yml b/Docker compose files/Booked Scheduler/docker-compose.yml new file mode 100644 index 0000000..d191564 --- /dev/null +++ b/Docker compose files/Booked Scheduler/docker-compose.yml @@ -0,0 +1,31 @@ +version: '3.8' + +services: + booked: + image: booked-scheduler/booked:latest + container_name: booked_scheduler + ports: + - "8080:80" + environment: + - DB_HOST=db + - DB_PORT=5432 + - DB_NAME=booked_db + - DB_USER=booked_user + - DB_PASSWORD=secret + depends_on: + - db + restart: unless-stopped + + db: + image: postgres:13 + container_name: booked_db + environment: + POSTGRES_USER: booked_user + POSTGRES_PASSWORD: secret + POSTGRES_DB: booked_db + volumes: + - booked_db_data:/var/lib/postgresql/data + restart: unless-stopped + +volumes: + booked_db_data: diff --git a/Docker compose files/Booked Scheduler/powershell.ps1 b/Docker compose files/Booked Scheduler/powershell.ps1 new file mode 100644 index 0000000..1644de5 --- /dev/null +++ b/Docker compose files/Booked Scheduler/powershell.ps1 @@ -0,0 +1,58 @@ +# Define your Docker Compose directory +$composeDir = "C:\Users\johnn\Desktop\Docker\Booked Scheduler" + +# Create the directory if it does not exist +if (-not (Test-Path $composeDir)) { + New-Item -ItemType Directory -Path $composeDir +} + +# Change to the target directory +Set-Location -Path $composeDir + +# Create a docker-compose.yml file for Booked Scheduler +$dockerComposeContent = @" +version: '3.8' + +services: + booked: + image: booked-scheduler/booked:latest + container_name: booked_scheduler + ports: + - "8080:80" + environment: + - DB_HOST=db + - DB_PORT=5432 + - DB_NAME=booked_db + - DB_USER=booked_user + - DB_PASSWORD=secret + depends_on: + - db + restart: unless-stopped + + db: + image: postgres:13 + container_name: booked_db + environment: + POSTGRES_USER: booked_user + POSTGRES_PASSWORD: secret + POSTGRES_DB: booked_db + volumes: + - booked_db_data:/var/lib/postgresql/data + restart: unless-stopped + +volumes: + booked_db_data: +"@ + +# Write docker-compose.yml to the directory +$dockerComposeContent | Out-File -FilePath "$composeDir\docker-compose.yml" -Force + +# Pull the Docker images and start the containers +Write-Host "Running docker-compose up..." +docker-compose -f "$composeDir\docker-compose.yml" up -d + +# Check if everything is running +Write-Host "Checking the status of the containers..." +docker ps + +Write-Host "Booked Scheduler setup completed. You can access it at http://localhost:8080" diff --git a/Docker compose files/Caddy/Caddyfile b/Docker compose files/Caddy/Caddyfile new file mode 100644 index 0000000..ad03433 --- /dev/null +++ b/Docker compose files/Caddy/Caddyfile @@ -0,0 +1,40 @@ +# Redirect HTTP to HTTPS for Kalender +http://kalender.reijnst.se { + redir https://kalender.reijnst.se{uri} permanent +} + +# HTTPS configuration for Nextcloud +kalender.reijnst.se { + reverse_proxy 192.168.50.55:8080 + + # Automatically enable HTTPS with Let's Encrypt + tls Johnny.Reijnst@gmail.com + + # Forward necessary headers for the reverse proxy + header { + X-Real-IP {remote} + X-Forwarded-For {remote} + X-Forwarded-Proto {scheme} + } +} + +# Server configuration for server.reijnst.se (if required) +server.reijnst.se { + reverse_proxy 192.168.50.55:8000 + + # Automatically enable HTTPS with Let's Encrypt + tls Johnny.Reijnst@gmail.com +} + +# Redirect HTTP to HTTPS for lekstugan +http://lekstugan.reijnst.se { + redir https://lekstugan.reijnst.se{uri} permanent +} + +# HTTPS configuration for lekstugan +http://lekstugan.reijnst.se { + reverse_proxy 192.168.50.55:9120 + + # Automatically enable HTTPS with Let's Encrypt + tls Johnny.Reijnst@gmail.com +} \ No newline at end of file diff --git a/Docker compose files/Caddy/docker-compose.yml b/Docker compose files/Caddy/docker-compose.yml new file mode 100644 index 0000000..091e897 --- /dev/null +++ b/Docker compose files/Caddy/docker-compose.yml @@ -0,0 +1,14 @@ +version: '3.7' + +services: + caddy: + image: caddy:latest + container_name: caddy-reverse-proxy + ports: + - "9000:80" + - "9001:443" + volumes: + - /volume1/Docker/caddy/conf:/etc/caddy + - /volume1/Docker/caddy/data:/data + - /volume1/Docker/caddy/config:/config + restart: unless-stopped diff --git a/Docker compose files/LuxWP/docker-compose.yml b/Docker compose files/LuxWP/docker-compose.yml new file mode 100644 index 0000000..701d8d2 --- /dev/null +++ b/Docker compose files/LuxWP/docker-compose.yml @@ -0,0 +1,45 @@ +version: '3.8' + +services: + wordpress: + image: wordpress:latest + container_name: luxdining_wordpress + ports: + - "9120:80" + environment: + WORDPRESS_DB_HOST: db:3306 + WORDPRESS_DB_USER: luxuser + WORDPRESS_DB_PASSWORD: luxpass + WORDPRESS_DB_NAME: luxdb + volumes: + - lux_wp_data:/var/www/html + restart: always + depends_on: + - db + + db: + image: mariadb:10.11 + container_name: luxdining_db + restart: always + environment: + MYSQL_DATABASE: luxdb + MYSQL_USER: luxuser + MYSQL_PASSWORD: luxpass + MYSQL_ROOT_PASSWORD: rootpass + volumes: + - lux_db_data:/var/lib/mysql + + phpmyadmin: + image: phpmyadmin:latest + container_name: luxdining_phpmyadmin + restart: always + ports: + - "9121:80" + environment: + PMA_HOST: db + PMA_USER: luxuser + PMA_PASSWORD: luxpass + +volumes: + lux_wp_data: + lux_db_data: diff --git a/Docker compose files/Nextcloud/README.txt b/Docker compose files/Nextcloud/README.txt new file mode 100644 index 0000000..1f95d00 --- /dev/null +++ b/Docker compose files/Nextcloud/README.txt @@ -0,0 +1,55 @@ +Add to trusted + +1. Open console on container +2. php /var/www/html/occ config:system:set trusted_domains 1 --value=kalender.reijnst.se + where value = the domain that is trusted + + + +Step 1: Set trusted_domains with occ Command +First, you need to make sure your trusted domain is set correctly in Nextcloud: + +Run this command to set the trusted domain: + +bash +Copy +Edit +php /var/www/html/occ config:system:set trusted_domains 1 --value=kalender.reijnst.se +Replace kalender.reijnst.se with your actual Nextcloud domain. + +If you have multiple domains, you can set them incrementally (trusted_domains 2, trusted_domains 3, etc.). + +Step 2: Set trusted_proxies with occ Command +Next, you'll set the trusted proxy (the IP address of your reverse proxy — in this case, Caddy): + +bash +Copy +Edit +php /var/www/html/occ config:system:set trusted_proxies 1 --value=172.18.0.2 +Replace 127.0.0.1 with the IP address of your reverse proxy (if it's not on the same machine as Nextcloud). For example, if your Caddy is running remotely, use the Caddy server's IP. + +Step 3: Set Forwarded Headers with occ Command +You also need to tell Nextcloud to accept the forwarded headers. Run: + +bash +Copy +Edit +php /var/www/html/occ config:system:set forwarded_for_headers 1 --value=HTTP_X_FORWARDED_FOR +php /var/www/html/occ config:system:set forwarded_for_headers 2 --value=HTTP_X_REAL_IP +This will set the headers that Nextcloud will look for to get the real client IP (when behind a proxy). + +Step 4: Verify and Restart +After running the commands: + +Check your Nextcloud setup by visiting the URL in a browser. + +If everything is configured correctly, the "reverse proxy header configuration" error should be gone. + +Restart your Nextcloud (or web server) to ensure the changes are applied. + + + + +php /var/www/html/occ config:system:set overwrite.cli.url --value="https://kalender.reijnst.se" +php /var/www/html/occ config:system:set overwriteprotocol --value="https" + diff --git a/Docker compose files/Nextcloud/docker-compose.yml b/Docker compose files/Nextcloud/docker-compose.yml new file mode 100644 index 0000000..a20b4f1 --- /dev/null +++ b/Docker compose files/Nextcloud/docker-compose.yml @@ -0,0 +1,40 @@ +version: '3.8' + +services: + nextcloud: + image: nextcloud:latest + container_name: nextcloud + ports: + - "8080:80" + environment: + MYSQL_PASSWORD: secret + MYSQL_DATABASE: nextcloud + MYSQL_USER: nextcloud + MYSQL_HOST: db + TRUSTED_DOMAINS: reijnst.asuscomm.com, reijnst.asuscomm.com:9900 + volumes: + - nextcloud_data:/var/www/html + depends_on: + - db + restart: unless-stopped + + db: + image: mysql:5.7 + container_name: nextcloud_db + environment: + MYSQL_ROOT_PASSWORD: secret + MYSQL_DATABASE: nextcloud + MYSQL_USER: nextcloud + MYSQL_PASSWORD: secret + volumes: + - nextcloud_db_data:/var/lib/mysql + restart: unless-stopped + + redis: + image: redis:latest + container_name: redis + restart: unless-stopped + +volumes: + nextcloud_data: + nextcloud_db_data: diff --git a/Docker compose files/Nextcloud/powershell.ps1 b/Docker compose files/Nextcloud/powershell.ps1 new file mode 100644 index 0000000..849b724 --- /dev/null +++ b/Docker compose files/Nextcloud/powershell.ps1 @@ -0,0 +1,68 @@ +# Define your Docker Compose directory +$composeDir = "C:\Users\johnn\Desktop\Docker\Nextcloud" + +# Create the directory if it does not exist +if (-not (Test-Path $composeDir)) { + New-Item -ItemType Directory -Path $composeDir +} + +# Change to the target directory +Set-Location -Path $composeDir + +# Create a docker-compose.yml file for Nextcloud +$dockerComposeContent = @" +version: '3.8' + +services: + nextcloud: + image: nextcloud:latest + container_name: nextcloud + ports: + - "8080:80" + environment: + MYSQL_PASSWORD: secret + MYSQL_DATABASE: nextcloud + MYSQL_USER: nextcloud + MYSQL_HOST: db + volumes: + - nextcloud_data:/var/www/html + depends_on: + - db + restart: unless-stopped + + db: + image: mysql:5.7 + container_name: nextcloud_db + environment: + MYSQL_ROOT_PASSWORD: secret + MYSQL_DATABASE: nextcloud + MYSQL_USER: nextcloud + MYSQL_PASSWORD: secret + volumes: + - nextcloud_db_data:/var/lib/mysql + restart: unless-stopped + + redis: + image: redis:latest + container_name: redis + restart: unless-stopped + +volumes: + nextcloud_data: + nextcloud_db_data: +"@ + +# Write docker-compose.yml to the directory +$dockerComposeContent | Out-File -FilePath "$composeDir\docker-compose.yml" -Force + +# Pull the Docker images and start the containers +Write-Host "Running docker-compose up..." +docker-compose -f "$composeDir\docker-compose.yml" up -d + +# Wait for Nextcloud to fully initialize +Write-Host "Waiting for Nextcloud to initialize..." +Start-Sleep -Seconds 30 + +# Accessing Nextcloud to install Appointments app manually +Write-Host "Nextcloud setup completed. Access it at http://localhost:8080" +Write-Host "Please log in and install the Appointments app from the Nextcloud app store." diff --git a/Docker compose files/calcom-app/docker-compose.yml b/Docker compose files/calcom-app/docker-compose.yml new file mode 100644 index 0000000..260b55e --- /dev/null +++ b/Docker compose files/calcom-app/docker-compose.yml @@ -0,0 +1,29 @@ +version: '3.9' + +services: + calcom: + image: calcom/cal.com:latest + ports: + - "3000:3000" + environment: + DATABASE_URL: postgresql://caluser:calpass@db:5432/caldb + DATABASE_DIRECT_URL: postgresql://caluser:calpass@db:5432/caldb # Fix: Added DATABASE_DIRECT_URL + NEXTAUTH_SECRET: oR,f^0+%1X)|Th@sDp{6G:UY>FCxVJ`# + NEXT_PUBLIC_APP_URL: http://localhost:3000 + CALENDSO_ENCRYPTION_KEY: ob_DO!AX(l)BkGu?Si`FZ{yhV^j/z