Uuugh72

Sync-In

Dec 17th, 2025 (edited)
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 6.50 KB | Software | 0 0
  1. This configuration allows for the coediting of documents via OnlyOffice on both the domain (domain.com) and the local network (192.168.0.0).
  2.  
  3. The only thing that doesn't work (and this is a limitation of OnlyOffice) is the coediting of documents from an Android app (and iPhone I assume).
  4.  
  5. I'm going to try to replace OnlyOffice with Collabora Online to remove these restrictions.
  6.  
  7. ------- NGINX Proxy Manager ----
  8. Domain Name         syncin.domain.com
  9.                     http    192.168.0.105   8080
  10. Access List             Publicly accesible
  11. Cache assets            Off
  12. Block Common Exploits   Off
  13. Websockets Support      On
  14.  
  15. SSL
  16. SSL Certificate     syncin.domain.com
  17. Force SSL       On      HTTP/2 Support      On
  18. HSTS Enabled    On      HSTS Sub-Domains    On
  19. -------
  20. Domain Name         onlyoffice.domain.com
  21.                     http    192.168.0.105   80
  22. Access List             Publicly accesible
  23. Cache assets            Off
  24. Block Common Exploits   Off
  25. Websockets Support      On
  26.  
  27. SSL
  28. SSL Certificate     onlyoffice.domain.com
  29. Force SSL       On      HTTP/2 Support      On
  30. HSTS Enabled    On      HSTS Sub-Domains    On
  31.  
  32.  
  33. ------- docker-compose.yaml -------
  34. include:
  35. #  - ./config/nginx/docker-compose.nginx.yaml
  36.  - ./config/onlyoffice/docker-compose.onlyoffice.yaml
  37. #  - ./config/sync-in-desktop-releases/docker-compose.sync-in-desktop-releases.yaml
  38.  
  39. # name: sync_in
  40. services:
  41.   sync_in:
  42.     image: syncin/server:1
  43.     container_name: sync_in
  44.     restart: always
  45. # The .env file passes variables to the Docker Compose file, which in turn, can be passed to the containers as well.
  46. # The env_file only passes variables to the containers and NOT the Docker Compose file.
  47.     # env_file:
  48.     #   - path: ./.env
  49.     environment:
  50.      - SKIP_INIT=true # Skips initialization step (database migration, admin account creation, permissions update, etc.)
  51.       - INIT_ADMIN=true # If defined (true or any non-empty value), forces creation of the admin account during initialization.
  52.       - INIT_ADMIN_LOGIN=${LOGIN}
  53.       - INIT_ADMIN_PASSWORD=${PASSWORD}
  54.       - PUID=${PUID:-8888}
  55.       - PGID=${GUID:-8888}
  56.       - TZ=${TZ:-UTC}
  57.     ports:
  58.      - "8080:8080"
  59.     volumes:
  60.      - ./environment.yaml:/app/environment/environment.yaml
  61.       # - ${MNT_CONFIG}/sync_in:/config/environment.yaml:/app/environment/environment.yaml
  62.       - ${MNT_DATA}/sync_in/app/data:/app/data
  63.       - ${MNT_DATA}/sync_in/desktop_releases:/app/static/releases:ro  # desktop_releases:/app/static/releases:ro
  64.     depends_on:
  65.      - mariadb
  66.     logging:
  67.       driver: json-file
  68.       options:
  69.         max-size: "25m"
  70.         max-file: "5"
  71.     networks:
  72.      - sync_in_network
  73.  
  74.   mariadb:
  75.     image: mariadb:11
  76.     container_name: mariadb
  77.     restart: always
  78.     command: --innodb_ft_cache_size=16000000 --max-allowed-packet=1G
  79.     environment:
  80.       MYSQL_ROOT_PASSWORD: MySQLRootPassword # MySQLRootPassword
  81.       MYSQL_DATABASE: sync_in
  82.       TZ: ${TZ:-UTC}
  83.     volumes:
  84.      - mariadb_data:/var/lib/mysql
  85.       #- ${MNT_DATA}/sync_in/mariadb_data:/var/lib/mysql
  86.     networks:
  87.      - sync_in_network
  88.  
  89. networks:
  90.   sync_in_network:
  91.     driver: bridge
  92.  
  93. volumes:
  94.   mariadb_data:
  95. ------- config/docker-compose.onlyoffice.yaml -------
  96. services:
  97.   onlyoffice:
  98.     container_name: onlyoffice
  99.     image: onlyoffice/documentserver # :9.1
  100.     ports:
  101.      - 80:80
  102.     environment:
  103.      - JWT_SECRET=[redacted] # onlyOfficeSecret.
  104.       - JWT_IN_BODY=true
  105.       - USE_UNAUTHORIZED_STORAGE=true
  106.       - LANG=en_US.UTF-8
  107.     stdin_open: true
  108.     tty: true      
  109.     logging:
  110.       driver: json-file
  111.       options:
  112.         max-size: "25m"
  113.         max-file: "5"
  114.     volumes:
  115.      - ${MNT_DATA}/onlyoffice/logs:/var/log/onlyoffice
  116.       - ${MNT_DATA}/onlyoffice/data:/var/www/onlyoffice/Data
  117.       - ${MNT_DATA}/onlyoffice/lib:/var/lib/onlyoffice
  118.       - ${MNT_DATA}/onlyoffice/db:/var/lib/postgresql
  119.     restart: always      
  120.     networks:
  121.      - sync_in_network
  122.  
  123. ------- environment.yaml -------
  124. server:
  125.  # host: IP address the server will listen on (default: 0.0.0.0)
  126.   # port: Port used for the web interface (default: 8080)
  127.   # workers: Number of worker processes (default: 1) Use auto or 0 to use all CPU cores.
  128.   workers: auto
  129.   # trustProxy: Enables proxy support (number, true, false, or IP range, default: 1) — See available options.
  130.   # restartOnFailure: Automatically restart workers if they crash (true or false, default: true)
  131. mysql:
  132.  # url: MySQL connection URL (e.g., mysql://user:password@localhost:3306/database)
  133.   url: mysql://root:MySQLRootPassword@mariadb:3306/sync_in # MySQLRootPassword
  134.   # logQueries: Enables logging of SQL queries to the database (true or false)
  135. auth:
  136.   encryptionKey: changeEncryptionKeyWithStrongKey
  137.   token:
  138.     access:
  139.       secret: changeAccessWithStrongSecret
  140.     refresh:
  141.       secret: changeRefreshWithStrongSecret
  142. applications:
  143.   files:
  144.    # dataPath: Path to store user data
  145.     dataPath: /app/data    # Path to store user data
  146.     # maxUploadSize: Maximum allowed file upload size (default: 5368709120 -> 5 GB)
  147.     # contentIndexing: Enables or disables indexing of file contents used for full-text search (default: true)
  148.     # showHiddenFiles: Show files starting with a dot in the file explorer (default: false)
  149.     onlyoffice:
  150.      # enabled: Enable OnlyOffice integration (true or false, default: false)
  151.       enabled: true      # Enable OnlyOffice integration (true or false, default: false)
  152.       # secret: Shared JWT secret with OnlyOffice
  153.       secret: [redacted] # onlyOfficeSecret. Shared JWT secret with OnlyOffice
  154.       # externalServer: OnlyOffice server URL (e.g., https://onlyoffice.my-domain.com)
  155.       # For an external server (e.g., https://onlyoffice.domain.com), remember the url must be accessible from browser!
  156.       # If externalServer is empty (case of official docker compose), we use the local instance
  157.       # default: null
  158.       externalServer: https://onlyoffice.domain.com # https://onlyoffice.my-domain.com)
  159.       # verifySSL: Enforce SSL verification (true or false, default: false)
  160.       verifySSL: false         # Enforce SSL verification (true or false, default: false)
  161.     # appStore
  162.     #   repository: Choice of repository for application client releases: public (default) or local
  163.    
  164. ------- .env -------
  165. PUID=1000 # USER_ID=1030    # talilored for my users and groups
  166. GUID=100 # GROUP_ID=100
  167. TZ=America/New_York # timezone
  168.  
  169. MNT_ROOT=/mnt/NAS
  170. MNT_CONFIG=/mnt/NAS/docker/config
  171. MNT_DATA=/mnt/NAS/docker/data
  172. MNT_BACKUP=/mnt/backups/docker
  173.  
  174. LOGIN=[redacted]
  175. PASSWORD=[redacted]
  176.  
  177. # no | on-failure[:max-retries] | always| |unless-stopped
  178. RESTART=unless-stopped
  179.  
Advertisement
Add Comment
Please, Sign In to add comment