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-метрики.
Добавить комментарий