Aşağıda ben de mevcut durumdaki docker-compose içeriklerimi vereceğim. Öncelikle sıfır ubuntu ya da debian sunucunuza docker kurun. Ardından Nginx Proxy Manager'ı aşağıdaki docker-compose ile ayağa kaldırın.
Öncelikle nginxpm isminde bir klasör oluşturun ve içine girin.
docker network create nginx ile bir ağ oluşturun.
docker-compose.yaml
YAML:
services:
nginx:
image: jc21/nginx-proxy-manager:latest
container_name: nginxpm
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- data:/data
- letsencrypt:/etc/letsencrypt
- snippets:/snippets:ro
environment:
TZ: 'Europe/Istanbul'
networks:
- nginx
volumes:
data:
letsencrypt:
snippets:
networks:
nginx:
name: nginx
external: true
Bu şekilde ayağa kaldırın uygulamayı. Varsayılan kullanıcı bilgileri:
Email:
[email protected]
Password: changeme
Daha sonrasında veritabanı için postgresql isminde bir klasör oluşturun aynı şekilde.
docker network create postgresql ve
docker network create adminer ile gerekli ağları oluşturun.
.env
Kod:
POSTGRES_USER=kullaniciadi
POSTGRES_PASSWORD=guclusifre
docker-compose.yaml
YAML:
services:
postgresql:
image: postgres:17.5
restart: always
container_name: postgresql
env_file: .env
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
ports:
- "5432:5432"
networks:
- postgresql
- adminer
adminer:
image: adminer:5.3.0
container_name: adminer
restart: always
environment:
ADMINER_DESIGN: filamentish
ports:
- 8080:8080
networks:
- adminer
networks:
postgresql:
name: postgresql
external: true
adminer:
name: adminer
external: true
Öncelik adminer üzerinden kolayca nextcloud için veritabanı oluşturalım. Bunun için adminer arayüzüne girip postgre bilgileri ile giriş yapalım. Ardından yeni bir veritabanı oluştur diyip
nextcloud_db tarzında bir veritabanı oluşturalım.
Şimdi nextcloud uygulamamız için nextcloud isimli bir klasör oluşturun.
docker network create nextcloud ile bir ağ oluşturun.
.env
Kod:
TZ=Europe/Istanbul
URL=https://xxx.xxx.xx
POSTGRES_HOST=postgresql
POSTGRES_DB=nextcloud_db
POSTGRES_USER=kullaniciadi
POSTGRES_PASSWORD=guclusifre
NEXTCLOUD_TRUSTED_DOMAINS=xxx.xxx.xx
OVERWRITEPROTOCOL=https
OVERWRITECLIURL=https://xxx.xxx.xx
SMTP_HOST=
SMTP_SECURE=
SMTP_PORT=
SMTP_NAME=
SMTP_PASSWORD=
MAIL_FROM_ADDRESS=
MAIL_DOMAIN=
docker-compose.yaml
YAML:
services:
nextcloud:
image: 'nextcloud:32'
container_name: nextcloud
restart: unless-stopped
env_file: .env
environment:
TZ: '${TZ}'
URL: '${URL}'
POSTGRES_HOST: '${POSTGRES_HOST}'
POSTGRES_DB: '${POSTGRES_DB}'
POSTGRES_USER: '${POSTGRES_USER}'
POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}'
REDIS_HOST: nextcloud-redis
REDIS_PORT: '6379'
NEXTCLOUD_TRUSTED_DOMAINS: '${NEXTCLOUD_TRUSTED_DOMAINS}'
OVERWRITEPROTOCOL: '${OVERWRITEPROTOCOL}'
OVERWRITECLIURL: '${OVERWRITECLIURL}'
SMTP_HOST: '${SMTP_HOST}'
SMTP_SECURE: '${SMTP_SECURE}'
SMTP_PORT: '${SMTP_PORT}'
SMTP_NAME: '${SMTP_NAME}'
SMTP_PASSWORD: '${SMTP_PASSWORD}'
MAIL_FROM_ADDRESS: '${MAIL_FROM_ADDRESS}'
MAIL_DOMAIN: '${MAIL_DOMAIN}'
ports:
- 8090:80
- 8093:443
volumes:
- './data/config:/var/www/html/config'
- './data/data:/var/www/html/data'
- './data/custom_apps:/var/www/html/custom_apps'
- './data/app:/var/www/html'
depends_on:
- nextcloud-redis
networks:
- nextcloud
- postgresql
- nginx
nextcloud-redis:
image: 'redis:7.4-alpine'
container_name: nextcloud-redis
restart: unless-stopped
volumes:
- './redis/data:/data'
networks:
- nextcloud
networks:
nextcloud:
name: nextcloud
external: true
postgresql:
name: postgresql
external: true
nginx:
name: nginx
external: true
Tüm bunlardan sonra tüm uygulamalarınız ayakta olmalı ve artık localde 8090 ya da 8093 portlarından nextcloud arayüzüne erişebiliyor olmalısınız. Reverse proxy içinse tekrar NPM arayüzüne geliyor ve
Hosts sekmesinden
Proxy Host'a geliyoruz.
Buradan
Add Proxy Host diyoruz ve nextcloud uygulamamızın domaini giriyoruz. Alt tarafta
HTTPS seçip isim yerine
nextcloud yazıyoruz. Port içinse
443 yazıyoruz.
Block Common ve
Websocket özelliklerini açıyoruz. Şimdi ise SSL sekmesinde gelip
Request new SSL Certificate diyoruz.
Use a DNS Challange dışındaki tüm seçenekleri açıyoruz. Ardından devam ediyoruz ve işlem tamamlandığında artık domain üzerinden nextcloud arayüzümüze erişebiliyor olmamız gerekiyor. Bir sorun yaşarsanız buradan devam edebiliriz.