SerdarK54

Uzman
Katılım
22 Ağustos 2024
Mesajlar
14
Beğeniler
1
Herkese merhaba,

Proxmox üzerine Debian 12, sonrasında ise Nextcloud kurulumu yaptım.

Amacım hem iç hem dış ağ üzerinden Active Directory kullanıcılarıma dosya paylaşımı yapmak.

Halihazırda domainlerim mevcut. CloudFlare ve Tailscale ile değil de hizmet aldığım hosting firmasında oluşturduğum domain üzerinden erişim yapmak istiyorum.

Konu hakkında yardımcı olan arkadaşlara şimdiden teşekkür ederim.
 
Çok detaya gerek yok, tailscale ile çok rahat şekilde LAN dışı erişebilirsiniz. Bir süredir öyle yapıyorum, yok ters proxy yok domain vs. uğraşmıyorum mis gibi.
 
Ev için kullanmayacağım bu yapıyı o yüzden tailscale kullanmıyorum. Hizmet aldığım hosting firması var ama onlarda konuyu anlayamadığı için konu açma gereği duydum işin özeti alsında xxx.com sitemiz var subdomain ise xxxfile.com bu adres üzerinden dosyalara erişmem gerekiyor. Firewall tarafında ayarlamalar hazır sadece dış erişime açılacak.
 
Ev için kullanmayacağım bu yapıyı o yüzden tailscale kullanmıyorum. Hizmet aldığım hosting firması var ama onlarda konuyu anlayamadığı için konu açma gereği duydum işin özeti alsında xxx.com sitemiz var subdomain ise xxxfile.com bu adres üzerinden dosyalara erişmem gerekiyor. Firewall tarafında ayarlamalar hazır sadece dış erişime açılacak.
Merhaba dışarıya açmak istediğiniz subdomain için hosting firmasının arayüzünden bir A kaydı oluşturup içerde de nginx gibi bir reverse proxy ile erişim sağlayamıyor musunuz?
 
Hosting tarafında domain açıp ana domainin dns alanına dış sabit ip mi bağlayarak erişim sağlamaya başladım. Fakat şimdi SSL sorunuyla ve direk bulut.xxx.com ile browser üzerinden girmeye çalıştığımda acme accses onyl hatası alıyorum bu da https eklemeden erişime izin vermiyor. nextcloud.conf dosyasını da düzenledim firewall da da gerekli kural ve yönlendirmeyi yaptım 80 port ve 443 portlarını yine de düzeltemedim gitti.
 
Önerim sunucunuzda Nextcloud'u docker container olarak kurun. Ardından da Nginx Proxy Manager kurun. NPM sunucunuza dışardan gelen 80 ya da 443 isteklerini içerdeki nextcloud container'ınıza yönlendirecek. Ayrıca NPM ile kolay bir şekilde ücretsiz Lets Encrypt SSL sertifikası da alabiliyorsunuz. Halihazırda benim içinde bu konfigürasyonda sistemim var eğer isterseniz gerekli kaynakları paylaşabilirim. Container olarak kurmamanızın bir sebebi var mı yoksa direkt bu şekilde mi başladınız kurmaya?
 
Conteiner ile denedim de hakim olmadığım için bazı yerlerde sorun yaşadım tekrar sıfırdan bu şekilde kurdum daha güncel olduğunu düşündüm tabii. Dediğiniz gibi conteiner olarak da kurabilirim firewall cihazı da olduğu için durumlar biraz karmaşıklaşabiliyor izin kural vs işlemleri yapılması gerekiyor o kısımı yaptım aslında ama şuan girişlerde de sorun yaşadım dün bir sorun yoktu. Paylaşmanızı rica ederim baştan kurulum yapacağım.
Önemli bir konu ise bu platformu kullanma amacım firma da ki ortak paylaşımları google drive dan alıp daha yetkilendirme üzerine kurmaktı. Veri güvenliğinde problem olmaz sanırım diye düşünüyorum.
 
Veri güvenliği konusunda bir sıkıntı olacağını düşünmüyorum. Tabi günümüzde veri güvenliği söz konusu oldu mu 2FA gibi şeylerin zaruri olduğunu düşünüyorum. Ancak maalesef günümüzde çoğu rutin internet kullanıcısı bırakın 2FA'yı şifrelerini bile basit basit şeyler yapyor. Bildiğim önemli bir firmanın nextcloud uygulamasındaki giriş işlemleri de sadece kullanıcı adı şifreden ibaret o yüzden sanırım bir sorun olmaz diyeceğim. Son olarak şunu da sormak istiyorum. Ben direkt sisteme nextcloud kurulumu yapmadığımdan veritabanı konusunda oraya nasıl ayarlama yapıldığını bilmiyorum. Hangi veritabanı olduğunun bi önemi var mı? Bir tercihiniz olur mu bu konuda? Benim yapılandırmamda postgresql mevcut çünkü.
 
Düzgün ve sağlıklı çalışması hangi veritabanı olduğu çok önemli değil, kullanıcıları ve giriş bilgileri şifreleri Server 2019 Active directory üzerinden bağlantıyla çekiyorum bilgisayara giriş şifreleri ile aynı yaptım. Amacım admin hesabından paylaştığım dosyayı hepsinin görmesi.
 
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.