Установка ownCloud Infinite Scale (oCIS) из бинарника с Nginx и Let’s Encrypt

ownCloud Infinite Scale (oCIS) — современная версия ownCloud, переписанная на Go и микросервисной архитектуре. Она не требует PHP, Apache или базы данных — всё работает из одного бинарного файла. Официальная документация.

В этой статье мы рассмотрим:

  • установку oCIS из бинарного файла;
  • настройку systemd-сервиса;
  • конфигурацию Nginx как reverse proxy;
  • получение и автоматическое продление сертификатов Let’s Encrypt.

1. Установка

1.1. Подготовка системы

💻
BASH
sudo apt update
sudo apt install -y ca-certificates curl nginx certbot python3-certbot-nginx

Создаём пользователя и директории для oCIS:

💻
BASH
sudo useradd -r -s /usr/sbin/nologin ocis

sudo mkdir -p /etc/ocis
sudo mkdir -p /var/lib/ocis
sudo chown -R ocis:ocis /etc/ocis /var/lib/ocis

1.2. Скачивание актуального бинарника

Актуальные версии доступны в каталоге stable.

💻
BASH
cd /usr/bin
sudo curl -L \
 https://download.owncloud.com/ocis/ocis/stable/7.3.1/ocis-7.3.1-linux-amd64 \
 -o ocis

sudo chmod +x /usr/bin/ocis

2. Инициализация oCIS

ocis init создаёт файл конфигурации ocis.yaml и генерирует секреты.

💻
BASH
sudo -u ocis -H bash -c '
 export OCIS_CONFIG_DIR=/etc/ocis
 export OCIS_BASE_DATA_PATH=/var/lib/ocis
 ocis init
'

3. Файл окружения /etc/ocis/ocis.env

Через этот файл systemd передаёт переменные окружения процессу oCIS.

📄
/etc/ocis/ocis.env
# Базовые пути
OCIS_CONFIG_DIR=/etc/ocis
OCIS_BASE_DATA_PATH=/var/lib/ocis

# URL сервера, по которому будут ходить пользователи
OCIS_URL=https://cloud.example.com

# Слушать только localhost — наружу оcис не торчит, только через Nginx
PROXY_HTTP_ADDR=127.0.0.1:9200

# Логи
OCIS_LOG_LEVEL=info

# Для продакшена HTTPS обеспечивает Nginx, поэтому:
OCIS_INSECURE=false
PROXY_TLS=false
KONNECTD_TLS=false
💻
BASH
sudo chown ocis:ocis /etc/ocis/ocis.env
sudo chmod 640 /etc/ocis/ocis.env

4. systemd-сервис

Создаём сервисный юнит:

📄
/etc/systemd/system/ocis.service
[Unit]
Description=OCIS server
After=network.target

[Service]
Type=simple
User=ocis
Group=ocis
EnvironmentFile=/etc/ocis/ocis.env
WorkingDirectory=/var/lib/ocis
ExecStart=/usr/bin/ocis server
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
💻
BASH
sudo systemctl daemon-reload
sudo systemctl enable --now ocis
sudo systemctl status ocis

5. Настройка Nginx (reverse proxy)

Создаём корректный конфиг Nginx.

📄
/etc/nginx/sites-available/ocis.conf
server {
 listen 80;
 server_name ocis.vlytkin.ru;

 client_max_body_size 10G;

 add_header X-Content-Type-Options "nosniff" always;
 add_header X-Frame-Options "SAMEORIGIN" always;
 add_header Referrer-Policy "no-referrer" always;

 location / {
 proxy_pass http://127.0.0.1:9200;

 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto https;
 }
}


💻
BASH
sudo ln -s /etc/nginx/sites-available/ocis.conf /etc/nginx/sites-enabled/ocis.conf

sudo nginx -t
sudo systemctl reload nginx

6. Получение сертификата Let’s Encrypt

💻
BASH
sudo certbot --nginx \
 -d cloud.example.com

После этого сайт будет доступен по адресу:
https://cloud.example.com

7. Дополнительно

  • Бэкапы:
    • /var/lib/ocis — данные;
    • /etc/ocis — конфиги и секреты.
  • Лимиты загрузки: управляются через client_max_body_size в Nginx.
  • TLS-усиление: можно использовать строгие шифры, HSTS, рекомендации Mozilla.
  • Мониторинг: oCIS предоставляет Prometheus-метрики.
Обновлено 11.12.2025
comments

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *