Kompletny poradnik krok po kroku: jak zainstalować OxiCloud (self-hosted cloud w Rust) na Docker Compose, skonfigurować plik .env oraz udostępnić serwer w internecie bezpiecznie przez Cloudflare Tunnel (cloudflared) bez otwierania portów na routerze.
Słowa kluczowe: OxiCloud, self-hosted cloud, alternatywa dla Nextcloud, Cloudflare Tunnel, cloudflared, Docker Compose, WebDAV, CalDAV, CardDAV, prywatna chmura, self-hosting Rust
Spis treści
- Czym jest OxiCloud?
- OxiCloud vs Nextcloud – dlaczego warto rozważyć zmianę
- Wymagania wstępne
- Instalacja OxiCloud – Docker Compose (zalecana metoda)
- Instalacja OxiCloud ze źródeł (Rust + PostgreSQL)
- Konfiguracja OxiCloud – plik
.envkrok po kroku - Pierwsze logowanie i konfiguracja administratora
- Konfiguracja WebDAV, CalDAV i CardDAV
- Czym jest Cloudflare Tunnel i dlaczego warto go użyć
- Instalacja cloudflared
- Tworzenie i konfiguracja tunelu Cloudflare dla OxiCloud
- Uruchomienie cloudflared jako kontener w Docker Compose
- Dodatkowe zabezpieczenie – Cloudflare Access (Zero Trust)
- Aktualizacja OxiCloud
- Rozwiązywanie typowych problemów
- Najczęściej zadawane pytania (FAQ)
- Podsumowanie
1. Czym jest OxiCloud?
OxiCloud to szybka, lekka i bezpieczna platforma chmury self-hostowanej, napisana w języku Rust z użyciem frameworka Axum. Projekt rozwijany jest przez organizację AtalayaLabs i dostępny jest na licencji MIT jako otwarte oprogramowanie.
W jednym miejscu OxiCloud łączy funkcje znane z takich narzędzi jak Nextcloud czy ownCloud:
- przechowywanie i synchronizację plików,
- kalendarze (CalDAV),
- kontakty (CardDAV),
- podgląd i edycję dokumentów biurowych przez integrację WOPI (Collabora / OnlyOffice),
- udostępnianie linków, kwoty dyskowe, role użytkowników i logowanie SSO przez OIDC.
Kluczowa różnica względem konkurencji: OxiCloud nie próbuje kopiować całego ekosystemu wtyczek Nextcloud. Zamiast tego stawia na mniejszy, szybszy stos technologiczny, natychmiastowy start aplikacji oraz na standardowych protokołach (WebDAV, CalDAV, CardDAV), dzięki czemu działa od razu z natywnymi klientami systemowymi (Finder, Eksplorator Windows, Nautilus, Dolphin, Thunderbird, DAVx5).
Obraz Docker OxiCloud waży jedynie ok. 40 MB (budowa wieloetapowa na bazie Alpine Linux), a kontener działa domyślnie jako użytkownik nieuprzywilejowany oxicloud (UID/GID 1001), co czyni go dobrym wyborem do self-hostingu na słabszych maszynach, Raspberry Pi czy tanich VPS-ach.
Repozytorium źródłowe: https://github.com/AtalayaLabs/OxiCloud
2. OxiCloud vs Nextcloud – dlaczego warto rozważyć zmianę
| Kryterium | OxiCloud | Klasyczny stos PHP (np. Nextcloud) |
|---|---|---|
| Język / stos | Rust + Axum | PHP + zewnętrzne zależności |
| Rozmiar obrazu Docker | ~40 MB | Zwykle kilkaset MB |
| Czas startu | Bardzo szybki | Wolniejszy, więcej warstw |
| Zużycie RAM w spoczynku | Niskie (dodatkowo MIMALLOC_PURGE_DELAY=0 do dalszej redukcji) | Wyższe |
| Baza danych | Wyłącznie PostgreSQL | MySQL/MariaDB/PostgreSQL/SQLite |
| Ekosystem wtyczek | Ograniczony, celowo minimalny | Bardzo rozbudowany |
| Protokoły standardowe | WebDAV, CalDAV, CardDAV wbudowane | Tak, ale przez dodatkowe warstwy |
| SSO / OIDC | Wbudowane | Przez aplikacje/wtyczki |
Jeśli zależy Ci na prostocie, niskim zużyciu zasobów i szybkim wdrożeniu w Dockerze, a niekoniecznie na setkach wtyczek, OxiCloud jest jedną z najciekawszych alternatyw dla Nextcloud w 2026 roku.
3. Wymagania wstępne
Przed instalacją OxiCloud upewnij się, że posiadasz:
- Docker oraz Docker Compose v2 (metoda zalecana), lub
- Rust 1.93+ i PostgreSQL, jeśli chcesz uruchomić projekt ze źródeł,
- domenę internetową (potrzebną do konfiguracji Cloudflare Tunnel),
- konto Cloudflare z domeną podpiętą do Cloudflare DNS (nameservery Cloudflare),
- minimum 1 vCPU / 512 MB RAM – dzięki lekkości Rusta OxiCloud świetnie działa nawet na małych serwerach VPS oraz Raspberry Pi.
4. Instalacja OxiCloud – Docker Compose (zalecana metoda)
To najszybszy i najbardziej powtarzalny sposób uruchomienia OxiCloud w środowisku produkcyjnym.
Krok 1 – Sklonuj repozytorium
git clone https://github.com/AtalayaLabs/OxiCloud.git
cd OxiCloud

Krok 2 – Skopiuj plik przykładowej konfiguracji
cp example.env .env
Ważne: jeśli użytkownicy będą łączyć się z OxiCloud przez domenę lub reverse proxy (a tak właśnie będzie w przypadku Cloudflare Tunnel), ustaw zmienną
OXICLOUD_BASE_URLw pliku.envprzed pierwszym logowaniem. Więcej szczegółów w sekcji 6.
Krok 3 – Uruchom kontenery
docker compose up -d

Domyślny docker-compose.yml uruchamia dwa serwisy (postgres orazoxicloud):
services:
postgres:
image: postgres:18.2-alpine3.23
restart: always
environment:
POSTGRES_DB: oxicloud
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
networks:
- oxicloud
volumes:
- pg_data:/var/lib/postgresql/
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
oxicloud:
image: diocrafts/oxicloud:latest
restart: always
ports:
- "8086:8086"
networks:
- oxicloud
env_file:
- .env
volumes:
- storage_data:/app/storage
depends_on:
postgres:
condition: service_healthy
networks:
oxicloud:
driver: bridge
volumes:
pg_data:
storage_data:
Krok 4 – Otwórz panel
Po uruchomieniu kontenerów aplikacja jest dostępna pod adresem:
http://localhost:8086
Jeśli instalujesz na zdalnym serwerze, zamień localhost na adres IP serwera (np. http://IP_SERWERA:8086) – tymczasowo, dopóki nie skonfigurujesz Cloudflare Tunnel opisanego w dalszej części artykułu.
Wskazówka bezpieczeństwa: przed wystawieniem serwera do internetu nie zostawiaj portu 5432 (PostgreSQL) publicznie otwartego. W przykładowym
docker-compose.ymlpowyżej celowo usunięto mapowanie portu bazy danych na hosta – w wersji domyślnej repozytorium port ten bywa wystawiony na potrzeby developmentu, więc na produkcji warto go usunąć lub ograniczyć regułami zapory sieciowej.
5. Instalacja OxiCloud ze źródeł (Rust + PostgreSQL)
Ta metoda jest przydatna dla deweloperów lub osób chcących mieć pełną kontrolę nad procesem budowania.
git clone https://github.com/AtalayaLabs/OxiCloud.git
cd OxiCloud
cp example.env .env
# Jeśli PostgreSQL działa lokalnie (nie w Dockerze), zaktualizuj obie zmienne
# OXICLOUD_DB_CONNECTION_STRING oraz DATABASE_URL, aby wskazywały na localhost:5432
cargo run
Wymagania: Rust 1.93+ oraz działająca instancja PostgreSQL. Szczegóły dotyczące wdrożenia znajdziesz w oficjalnym przewodniku wdrożeniowym oraz w pliku example.env.
6. Konfiguracja OxiCloud – plik .env krok po kroku
Cała konfiguracja OxiCloud odbywa się przez zmienne środowiskowe w pliku .env. Najważniejsze z nich:
| Zmienna | Do czego służy |
|---|---|
OXICLOUD_BASE_URL | Publiczny adres URL, pod którym OxiCloud będzie dostępny (domena, reverse proxy, Cloudflare Tunnel) |
OXICLOUD_DB_CONNECTION_STRING | Connection string do bazy PostgreSQL |
OXICLOUD_OIDC_ENABLED | Włącza logowanie SSO przez OIDC |
OXICLOUD_WOPI_ENABLED | Włącza integrację z edytorami biurowymi (Collabora/OnlyOffice) przez WOPI |
OXICLOUD_ENABLE_AUTH | Włącza/wyłącza uwierzytelnianie |
OXICLOUD_ENABLE_FILE_SHARING | Włącza udostępnianie plików przez linki |
OXICLOUD_ENABLE_TRASH | Włącza kosz na pliki |
OXICLOUD_ENABLE_SEARCH | Włącza wyszukiwanie plików |
OXICLOUD_ENABLE_USER_STORAGE_QUOTAS | Włącza limity miejsca dla użytkowników |
MIMALLOC_PURGE_DELAY=0 | Obniża zużycie pamięci RAM w stanie bezczynności – szczególnie przydatne na słabszych VPS-ach |
Przykład minimalnej konfiguracji pod Cloudflare Tunnel
# Adres, pod którym aplikacja będzie widoczna publicznie
OXICLOUD_BASE_URL=https://chmura.twojadomena.pl
# Połączenie z bazą danych
OXICLOUD_DB_CONNECTION_STRING=postgres://postgres:postgres@postgres:5432/oxicloud
# Uwierzytelnianie
OXICLOUD_ENABLE_AUTH=true
# Funkcje dodatkowe
OXICLOUD_ENABLE_FILE_SHARING=true
OXICLOUD_ENABLE_TRASH=true
OXICLOUD_ENABLE_SEARCH=true
OXICLOUD_ENABLE_USER_STORAGE_QUOTAS=true
# Optymalizacja pamięci
MIMALLOC_PURGE_DELAY=0
Ustawienie poprawnego OXICLOUD_BASE_URL przed pierwszym uruchomieniem jest kluczowe – zmiana tej wartości po utworzeniu konta administratora może wymagać dodatkowej rekonfiguracji.
7. Pierwsze logowanie i konfiguracja administratora
- Wejdź pod adres z
OXICLOUD_BASE_URL(lub tymczasowohttp://IP:8086). - Przy pierwszym uruchomieniu zostaniesz poprowadzony przez proces zakładania konta administratora.
- Ustaw silne hasło – OxiCloud przechowuje hasła z użyciem algorytmu Argon2id.
- Po zalogowaniu warto od razu skonfigurować kwoty dyskowe oraz – jeśli planujesz pracę zespołową – role użytkowników.

8. Konfiguracja WebDAV, CalDAV i CardDAV
Ponieważ OxiCloud opiera się na standardowych protokołach, możesz podłączyć go do natywnych klientów systemowych bez dodatkowego oprogramowania synchronizującego.
| Zastosowanie | Adres URL |
|---|---|
| Pliki przez WebDAV | https://twoja-domena/webdav/ |
| Kalendarze przez CalDAV | https://twoja-domena/caldav/ |
| Kontakty przez CardDAV | https://twoja-domena/carddav/ |
Klienty przetestowane jako w pełni kompatybilne:
- macOS Finder,
- Eksplorator Windows,
- GNOME Files i KDE Dolphin,
- Thunderbird,
- Kalendarz i Kontakty Apple,
- DAVx5 na Androidzie (synchronizacja plików działa dobrze; obsługa kalendarzy/kontaktów jest wciąż dopracowywana).
9. Czym jest Cloudflare Tunnel i dlaczego warto go użyć
Cloudflare Tunnel (dawniej Argo Tunnel) to usługa, która tworzy szyfrowane, wychodzące połączenie między Twoim serwerem a siecią Cloudflare. Dzięki temu:
- nie musisz otwierać żadnych portów na routerze ani konfigurować przekierowania portów (port forwarding),
- serwer nie posiada bezpośrednio widocznego publicznego adresu IP – cały ruch przechodzi przez Cloudflare,
- automatycznie otrzymujesz darmowy certyfikat SSL/TLS,
- możesz dodatkowo objąć aplikację polityką Cloudflare Access (uwierzytelnianie na poziomie sieci, przed dotarciem do OxiCloud),
- rozwiązanie jest darmowe dla podstawowego użycia.
To idealne rozwiązanie do bezpiecznego wystawienia prywatnej chmury OxiCloud w internecie – bez ryzyka związanego z otwartym portem 8086 wprost do sieci domowej.
10. Instalacja cloudflared
cloudflared to lekki klient (agent) Cloudflare, który nawiązuje tunel z Twojego serwera do sieci Cloudflare.
Linux (Debian/Ubuntu)
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb

Linux (inne dystrybucje – binarka)
curl -L --output cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/cloudflared
macOS (Homebrew)
brew install cloudflared
Docker (bez instalacji lokalnej)
Jeśli wolisz uruchomić cloudflared jako kontener obok OxiCloud, przejdź od razu do sekcji 12 – nie musisz nic instalować lokalnie.
Sprawdź poprawność instalacji:
cloudflared --version
11. Tworzenie i konfiguracja tunelu Cloudflare dla OxiCloud
Krok 1 – Zaloguj się do Cloudflare
cloudflared tunnel login
Otworzy się przeglądarka – zaloguj się na konto Cloudflare i wybierz domenę, którą chcesz wykorzystać.

Krok 2 – Utwórz tunel
cloudflared tunnel create oxicloud
Polecenie wygeneruje unikalny identyfikator tunelu (UUID) oraz plik poświadczeń JSON zapisany w ~/.cloudflared/.

Krok 3 – Utwórz plik konfiguracyjny config.yml
Utwórz plik nano ~/.cloudflared/config.yml:
tunnel: oxicloud
credentials-file: /root/.cloudflared/<UUID_TUNELU>.json
ingress:
- hostname: chmura.twojadomena.pl
service: http://localhost:8086
- service: http_status:404
Zamień <UUID_TUNELU> na identyfikator wygenerowany w kroku 2 oraz chmura.twojadomena.pl na własną subdomenę.

Krok 4 – Podepnij domenę (DNS) do tunelu
cloudflared tunnel route dns oxicloud chmura.twojadomena.pl
To polecenie automatycznie utworzy w Cloudflare DNS rekord typu CNAME wskazujący na tunel, bez potrzeby ręcznej edycji strefy DNS.

Krok 5 – Uruchom tunel
cloudflared tunnel run oxicloud
Po chwili aplikacja powinna być dostępna publicznie pod adresem https://chmura.twojadomena.pl — z automatycznym certyfikatem SSL od Cloudflare.

Krok 6 – Uruchomienie jako usługa systemowa (systemd)
Aby tunel działał w tle i startował razem z serwerem:
ctrl + c chwilowo wyłączy usługę
cloudflared service install
systemctl enable --now cloudflared
systemctl status cloudflared

Możesz przejść na stronę chmura.twojadomena.pl:

12. Uruchomienie cloudflared jako kontener w Docker Compose
Ponieważ OxiCloud i tak działa w Dockerze, wygodnie jest dodać cloudflared jako trzeci serwis w tym samym docker-compose.yml. Dzięki temu tunel korzysta z tej samej sieci Docker i łączy się z OxiCloud po wewnętrznej nazwie usługi, bez wystawiania portu 8086 na hosta.
services:
postgres:
image: postgres:18.2-alpine3.23
restart: always
environment:
POSTGRES_DB: oxicloud
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
networks:
- oxicloud
volumes:
- pg_data:/var/lib/postgresql/
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
oxicloud:
image: diocrafts/oxicloud:latest
restart: always
networks:
- oxicloud
env_file:
- .env
volumes:
- storage_data:/app/storage
depends_on:
postgres:
condition: service_healthy
# Uwaga: brak sekcji "ports" – kontener nie jest już
# bezpośrednio wystawiony na hosta, dostęp idzie wyłącznie przez tunel
cloudflared:
image: cloudflare/cloudflared:latest
restart: always
command: tunnel run
environment:
- TUNNEL_TOKEN=<TWÓJ_TOKEN_TUNELU>
networks:
- oxicloud
depends_on:
- oxicloud
networks:
oxicloud:
driver: bridge
volumes:
pg_data:
storage_data:
W tym wariancie w pliku ~/.cloudflared/config.yml (lub w panelu Cloudflare Zero Trust przy tunelu tworzonym z poziomu przeglądarki) jako service w regule ingress podaj nazwę serwisu Docker, a nie localhost:
ingress:
- hostname: chmura.twojadomena.pl
service: http://oxicloud:8086
- service: http_status:404
Skąd wziąć TUNNEL_TOKEN
Token tunelu uzyskasz, tworząc tunel typu „Cloudflared” w panelu Cloudflare Zero Trust → Networks → Tunnels & Mesh → Create a tunnel → Cloudflared. Po utworzeniu tunelu w panelu Cloudflare wyświetli gotową komendę Dockera zawierającą token – wystarczy skopiować sam token do zmiennej TUNNEL_TOKEN w docker-compose.yml powyżej.

Najłatwiej wkleić do edytora tekstowego i skopiować ciąg znaków po –token :

Uruchom całość:
docker compose up -d
Od tego momentu OxiCloud jest dostępny wyłącznie przez adres z Cloudflare, a port 8086 nie jest w ogóle eksponowany na zewnątrz hosta – to znacząco redukuje powierzchnię ataku.
13. Dodatkowe zabezpieczenie – Cloudflare Access (Zero Trust)
Sam tunel ukrywa adres IP serwera, ale nie zastępuje uwierzytelniania. Dla dodatkowej warstwy bezpieczeństwa (szczególnie jeśli OxiCloud ma być dostępny tylko dla Ciebie lub wąskiego grona osób), skonfiguruj Cloudflare Access:
- W panelu Cloudflare Zero Trust przejdź do Access → Applications.
- Dodaj nową aplikację typu Self-hosted, wskazując tę samą subdomenę co w tunelu (
chmura.twojadomena.pl). - Skonfiguruj politykę dostępu (np. logowanie wyłącznie dla adresów e-mail z Twojej domeny, jednorazowy kod PIN e-mail, lub integrację z dostawcą tożsamości typu Google/GitHub/OIDC).
Efekt: zanim ktokolwiek zobaczy ekran logowania OxiCloud, musi najpierw przejść uwierzytelnienie na poziomie sieci Cloudflare – to dodatkowa bariera chroniąca przed atakami typu brute-force na panel logowania.
Cloudflare Access można też skonfigurować obok wbudowanego w OxiCloud logowania SSO przez OIDC (
OXICLOUD_OIDC_ENABLED) – oba mechanizmy nie wykluczają się wzajemnie i mogą działać razem jako dwie niezależne warstwy ochrony.
14. Aktualizacja OxiCloud
Aktualizacja instancji uruchomionej przez Docker Compose sprowadza się do pobrania nowego obrazu i restartu kontenera:
docker compose pull oxicloud
docker compose up -d oxicloud
Dane (pliki użytkowników oraz baza PostgreSQL) pozostają nienaruszone dzięki wolumenom storage_data i pg_data. Warto przed większymi aktualizacjami wykonać kopię zapasową obu wolumenów oraz sprawdzić listę zmian w sekcji wydań na GitHubie.
15. Rozwiązywanie typowych problemów
Problem: po zalogowaniu linki i przekierowania prowadzą na localhost:8086.
Rozwiązanie: sprawdź, czy OXICLOUD_BASE_URL w .env jest ustawione na publiczny adres HTTPS (np. https://chmura.twojadomena.pl), a nie pozostawione puste lub wskazujące na localhost.
Problem: tunel Cloudflare łączy się, ale strona zwraca błąd 502/503.
Rozwiązanie: upewnij się, że service w ingress wskazuje na poprawny host i port. W konfiguracji kontenerowej musi to być nazwa serwisu Docker (http://oxicloud:8086), a nie localhost – kontener cloudflared widzi localhost jako samego siebie, nie jako kontener OxiCloud.
Problem: kontener OxiCloud nie startuje i zgłasza błąd połączenia z bazą.
Rozwiązanie: sprawdź poprawność OXICLOUD_DB_CONNECTION_STRING oraz czy serwis postgres przeszedł healthcheck (docker compose logs postgres). Jeśli PostgreSQL działa poza Dockerem, upewnij się, że host w connection stringu to localhost, a nie nazwa serwisu Docker.
Problem: rekord DNS nie tworzy się automatycznie poleceniem cloudflared tunnel route dns.
Rozwiązanie: sprawdź, czy domena faktycznie korzysta z nameserverów Cloudflare oraz czy konto, którym się logowałeś w cloudflared tunnel login, ma do niej dostęp administracyjny.
16. Najczęściej zadawane pytania (FAQ)
Czy OxiCloud jest darmowy?
Tak. OxiCloud jest projektem open source na licencji MIT, w pełni darmowym do samodzielnego hostowania.
Czy potrzebuję statycznego adresu IP, żeby wystawić OxiCloud w internecie?
Nie. Dzięki Cloudflare Tunnel serwer łączy się wychodząco do sieci Cloudflare, więc nawet dynamiczny adres IP (typowy dla łącz domowych) nie stanowi problemu – nie trzeba też przekierowywać portów na routerze.
Czy Cloudflare Tunnel jest bezpieczny do przechowywania prywatnych plików?
Ruch między klientem a Cloudflare oraz między Cloudflare a Twoim serwerem jest szyfrowany. Dla maksymalnego bezpieczeństwa warto dodatkowo skonfigurować Cloudflare Access (opisane w sekcji 13) oraz silne uwierzytelnianie w samym OxiCloud (OIDC/SSO).
Czy OxiCloud obsługuje edycję dokumentów Office w przeglądarce?
Tak, przez integrację WOPI z zewnętrznym serwerem Collabora Online lub OnlyOffice – należy włączyć zmienną OXICLOUD_WOPI_ENABLED i skonfigurować adres discovery zgodnie z dokumentacją WOPI.
Czy da się zsynchronizować OxiCloud z telefonem?
Tak – pliki, kalendarz i kontakty można zsynchronizować przez standardowe protokoły WebDAV/CalDAV/CardDAV, np. przy użyciu aplikacji DAVx5 na Androidzie. Dedykowana aplikacja mobilna oraz natywny klient desktopowy do automatycznej synchronizacji są obecnie w fazie planowania (roadmapa projektu).
Jaka baza danych jest wymagana?
Wyłącznie PostgreSQL – OxiCloud nie obsługuje MySQL/MariaDB ani SQLite.
Czy mogę używać własnej domeny zamiast subdomeny Cloudflare?
Tak, dowolna domena podpięta pod nameservery Cloudflare może zostać użyta jako hostname tunelu – wystarczy wskazać ją w regule ingress oraz w OXICLOUD_BASE_URL.
17. Podsumowanie
OxiCloud to nowoczesna, lekka alternatywa dla ciężkich, opartych na PHP platform chmurowych – dzięki Rustowi startuje błyskawicznie, zużywa mało pamięci i domyślnie wspiera standardowe protokoły synchronizacji plików, kalendarzy i kontaktów. Połączenie go z Cloudflare Tunnel to jeden z najbezpieczniejszych i najprostszych sposobów na udostępnienie prywatnej chmury w internecie: bez otwierania portów, z automatycznym SSL i opcjonalną dodatkową warstwą uwierzytelniania Cloudflare Access.
Skrócony przepływ wdrożenia:
git clone+docker compose up -d→ uruchomienie OxiCloud lokalnie.- Konfiguracja
.env(w szczególnościOXICLOUD_BASE_URL). - Instalacja
cloudflaredi utworzenie tunelu (cloudflared tunnel create). - Podpięcie domeny (
cloudflared tunnel route dns). - Uruchomienie tunelu jako usługi lub kontenera Docker.
- (Opcjonalnie) dodanie Cloudflare Access dla dodatkowej ochrony logowania.
Po wykonaniu tych kroków masz w pełni funkcjonalną, prywatną chmurę dostępną pod własną domeną, z szyfrowanym połączeniem i bez konieczności ingerencji w router czy firewall dostawcy internetu.
Źródła i dalsza dokumentacja: repozytorium OxiCloud na GitHub · oficjalna dokumentacja · przewodnik wdrożeniowy · dokumentacja Cloudflare Tunnel

