Джэнтльменскі набор: 6 Docker-кантэйнераў, якія робяць жыццё прасцейшым, або ствараем уласныя воблакі
.webp?alt=media&token=ae516809-0dc0-4da2-9368-8dafd744382a)
Прывітанне спадарства!
Кожны паважаючы сябе джэнтльмен (і лэдзі, вядома) павінен мець тры рэчы: добры касцюм, чыстае сумленне і ўласны сервер. Ну добра, наконт касцюма можна паспрачацца, а вось сервер — рэч незаменная. Сёння я пакажу вам свой "залаты стандарт" — 6 сэрвісаў, якія ператвараюць звычайны камп'ютар у магутны цэнтр кіравання палётамі.
І ўсё гэта — па цане кубка кавы. Мы пабудуем экасістэму, дзе вы зможаце глядзець кіно, захоўваць сакрэтныя планы захопу свету коцікамі (ці проста іх фатаграфіі) і кіраваць усім гэтым праз бяспечны VPN-тунэль.
Заводзьце свае докеры, пагналі!
Архітэктура: Дзе запускаць усё гэта?
Каб усё працавала ідэальна, я рэкамендую наступную схему:
-
Аддалены VPS-сервер:
- Тут мы запускаем толькі VPN (WireGuard).
- Чаму: Вам патрэбен статычны "белы" IP-адрас, каб да яго можна было падключыцца з любога месца. Самы танны VPS за $3-5 у месяц выдатна падыдзе. Ён будзе працаваць як "уваходныя вароты".
-
Лакальны Хатні Сервер:
- Тут мы запускаем усё астатняе (Portainer, NextCloud, Jellyfin, Excalidraw, Flatnotes).
- Што гэта можа быць: Стары ноўтбук, які пыліцца на паліцы, міні-ПК (напрыклад Intel NUC) або ваш асноўны ПК.
Заўвага пра Raspberry Pi: Хоць "малінка" вельмі папулярная, для поўнага спісу гэтых сэрвісаў яна можа быць слабаватай. Асабліва Jellyfin патрабуе магутнасці для апрацоўкі відэа, ды і NextCloud любіць паесці аператыўную памяць. Лепш глядзець у бок x86 жалеза (стары ноўт ці mini-PC).
- Чаму:
- Танна: Вам не трэба плаціць за дарагія гігабайты дыска ў воблаку. Ваш стары HDD на 1TB будзе бясплатным.
- Хутка: Дома фільмы праз Jellyfin будуць лятаць па Wi-Fi на максімальнай хуткасці, не нагружаючы інтэрнэт.
- Прыватна: Вашы асабістыя дадзеныя фізічна знаходзяцца ў вас дома.
Як гэта звязаць? Вы падключаеце свой лакальны сервер да VPN (як кліент). Цяпер вы з тэлефона падключаецеся да таго ж VPN, і вуаля — вы ў адной віртуальнай сетцы са сваім хатнім серверам, дзе б вы ні знаходзіліся.
1. WireGuard (wg-easy)

Навошта гэта трэба? Каб вашы сэрвісы былі даступныя вам у любой кропцы свету, але пры гэтым схаваныя ад старонніх вачэй. Гэта ваш асабісты шыфраваны тунэль дадому.
Чаму менавіта WireGuard? Ён хуткі, сучасны і менш жарэ батарэю на тэлефоне ў параўнанні з OpenVPN. Я рэкамендую выкарыстоўваць wg-easy. Гэта WireGuard, які ставіцца за хвіліну і мае зручны вэб-інтэрфейс для стварэння канфігаў. Вам не трэба пісаць складаныя канфігурацыі ў тэрмінале — проста заходзіце ў браўзер, ствараеце карыстальніка "iPhone" і скануеце QR-код праграмай WireGuard на тэлефоне. Усё, вы ў хатняй сетцы!
docker-compose.yml:
yaml1version: "3.8" 2services: 3 wg-easy: 4 image: ghcr.io/wg-easy/wg-easy 5 container_name: wg-easy 6 environment: 7 # Замяніце на ваш рэальны знешні IP або дамен 8 - WG_HOST=YOUR_SERVER_IP 9 # Пароль для доступу да вэб-інтэрфейсу 10 - PASSWORD=secret_password 11 - WG_PORT=51820 12 - WG_DEFAULT_ADDRESS=10.8.0.x 13 - WG_DEFAULT_DNS=1.1.1.1 14 volumes: 15 - ./wireguard:/etc/wireguard 16 ports: 17 - "51820:51820/udp" 18 - "51821:51821/tcp" 19 restart: unless-stopped 20 cap_add: 21 - NET_ADMIN 22 - SYS_MODULE 23 sysctls: 24 - net.ipv4.ip_forward=1 25 - net.ipv4.conf.all.src_valid_mark=1
Важна: Пасля запуску вэб-інтэрфейс будзе даступны па порце
51821. Наладзьце ў ім кліентаў, падключыцеся, і далей вы зможаце звяртацца да іншых сэрвісаў па іх лакальных IP (ці па ўнутраных IP Docker сеткі, калі наладзіць маршрутызацыю).
2. Portainer
Навошта гэта трэба?
Калі ў вас запушчана 5-10 кантэйнераў, сачыць за імі праз кансоль становіцца нязручна.
Portainer — гэта візуальны пульт кіравання вашым серверам.
Што дае:
- Зручнасць з тэлефона: Калі нешта зламалася, а вы не ля камп'ютара, можна зайсці з тэлефона ў вэб-інтэрфейс Portainer і перазапусціць кантэйнер адной кнопкай.
- Логі і статыстыка: Адразу бачна, колькі памяці спажывае праграма і што яна піша ў лог, без неабходнасці ўводзіць
docker logs -f .... - Рэдагаванне на ляту: Можна змяніць зменную асяроддзя і перастварыць кантэйнер прама ў браўзеры.
docker-compose.yml:
yaml1version: "3.8" 2services: 3 portainer: 4 image: portainer/portainer-ce:latest 5 container_name: portainer 6 restart: always 7 volumes: 8 - /var/run/docker.sock:/var/run/docker.sock 9 - ./portainer_data:/data 10 ports: 11 - "9000:9000"
3. Excalidraw
Навошта гэта трэба?
Часам трэба хутка намаляваць схему, дыяграму ці проста візуалізаваць думкі. Існуюць анлайн-сэрвісы, але навошта аддаваць ім свае ідэі? Excalidraw — гэта open-source рашэнне.
Плюсы сэлф-хостынгу:
- Прыватнасць: Вашы схемы захоўваюцца толькі ў вас. Ніякай перадачы дадзеных на чужыя серверы.
- Доступ з планшэта: Excalidraw шыкоўна працуе на iPad ці Android-планшэтах. Стыль "ад рукі" робіць схемы жывымі і зразумелымі.
- Аўтаномнасць: Працуе нават калі адключылі інтэрнэт.
docker-compose.yml:
yaml1version: "3.8" 2services: 3 excalidraw: 4 image: excalidraw/excalidraw:latest 5 container_name: excalidraw 6 restart: unless-stopped 7 ports: 8 - "3001:80"
4. Flatnotes
Навошта гэта трэба? Notion і Obsidian — гэта крута, але часам яны занадта "цяжкія" або патрабуюць сінхранізацыі праз незразумелыя воблакі.
Чаму Flatnotes:
- Чысты Markdown: Вашы нататкі — гэта проста тэкставыя файлы. Вы заўсёды зможаце іх прачытаць, нават калі сэрвіс знікне.
- Маланкавы пошук: Імгненна знаходзіць патрэбнае.
- Мінімалізм: Нічога лішняга, толькі вы і тэкст. Ідэальна пасуе для "вікі" па праекце ці асабістых запісаў.
- Доступ адусюль: Пішыце з ноўтбука, чытайце з тэлефона. Інтэрфейс выдатна адаптуецца пад мабільныя прылады.
docker-compose.yml:
yaml1version: "3.8" 2services: 3 flatnotes: 4 image: dullage/flatnotes:latest 5 container_name: flatnotes 6 environment: 7 - PUID=1000 8 - PGID=1000 9 - FLATNOTES_AUTH_TYPE=password 10 - FLATNOTES_USERNAME=user 11 - FLATNOTES_PASSWORD=change_me 12 - FLATNOTES_SECRET_KEY=a_long_random_string 13 volumes: 14 - ./notes:/data 15 ports: 16 - "8080:8080" 17 restart: unless-stopped
5. NextCloud
Навошта гэта трэба?
Гэта ўжо цяжкая артылерыя. Поўная замена Google Drive, Dropbox і iCloud. NextCloud дазваляе цалкам адмовіцца ад старонніх воблакаў.
Магчымасці:
- Аўтазапампоўка фота: Ставіце праграму NextCloud на тэлефон, і ўсе вашы новыя фоткі аўтаматычна ляцяць на ваш хатні сервер. Тэлефону можно ламацца — фота ў бяспецы.
- Воблака для ўсяго: Можна кінуць файлы з ноўтбука, а потым адкрыць іх на тэлефоне. Гэта як ваша персанальнае воблака, доступ да якога маеце толькі вы праз VPN.
- Сінхранізацыя кантактаў і календароў: Калі вы хочаце сапраўды "De-Google" сваё жыццё, NextCloud можа стаць цэнтрам сінхранізацыі ўсіх вашых прылад.
Для простага запуску можна выкарыстаць SQLite (не рэкамендуецца для вялікай нагрузкі) або паўнавартасную базу дадзеных. Ніжэй варыянт з базай дадзеных MariaDB.
docker-compose.yml:
yaml1version: "3.8" 2 3services: 4 db: 5 image: mariadb:10.6 6 command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW 7 restart: always 8 volumes: 9 - ./nextcloud_db:/var/lib/mysql 10 environment: 11 - MYSQL_ROOT_PASSWORD=root_password 12 - MYSQL_PASSWORD=nextcloud_user_password 13 - MYSQL_DATABASE=nextcloud 14 - MYSQL_USER=nextcloud 15 16 app: 17 image: nextcloud 18 restart: always 19 ports: 20 - "8081:80" 21 links: 22 - db 23 volumes: 24 - ./nextcloud_html:/var/www/html 25 environment: 26 - MYSQL_PASSWORD=nextcloud_user_password 27 - MYSQL_DATABASE=nextcloud 28 - MYSQL_USER=nextcloud 29 - MYSQL_HOST=db
6. Bonus - Jellyfin
Навошта гэта трэба?
Гэта не проста "відэа-плэер", гэта сапраўдны медыя-камбайн. Ваш уласны Netflix, Spotify і Audible у адным флаконе. Пампуем на сервер - глядзім паўсюль - на тэлефоне, тэлевізары і інш.
Што ён умее:
- Кіно і Серыялы: Аўтаматычна распазнае файлы, падцягвае прыгожыя вокладкі, апісанні, рэйтынгі IMDB і фота акцёраў. Умее запамінаць, дзе вы спыніліся (resume playback).
- Музыка: Выдатная замена Spotify для вашай асабістай калекцыі. Ёсць падтрымка плэйлістоў, "радыё" па жанрах і стрымінг на тэлефон у высокай якасці (FLAC).
- Кнігі і Коміксы: Jellyfin выдатна разумее фарматы электронных кніг (ePub, PDF) і коміксаў (CBR/CBZ). Можна чытаць любімую мангу ці тэхнічную літаратуру з планшэта праз зручны інтэрфейс.
- Аўдыёкнігі: Асобная бібліятэка для аўдыёкніг, якая памятае прагрэс для кожнай кнігі.
- Live TV: Калі ў вас ёсць IPTV-плэйліст, яго можна дадаць у Jellyfin і атрымаць тэлебачанне з праграмай перадач і магчымасцю запісу эфіру (DVR).
Чаму Jellyfin:
- Цалкам бясплатна: У адрозненне ад канкурэнтаў (Plex, Emby), тут няма ніякіх прэміум-падпісак. Усе функцыі адкрыты адразу.
- Транскадзіраванне: Калі ваш тэлевізар не "цягне" цяжкі 4K-фільм, сервер сам на ляту пераробіць яго ў патрэбны фармат.
- Кліенты пад усё: Android TV, Apple TV, iOS, Android, Web, Roku. Пачалі глядзець на тэлевізары — даглядзелі ў дарозе на тэлефоне.
docker-compose.yml:
yaml1version: "3.8" 2services: 3 jellyfin: 4 image: jellyfin/jellyfin:latest 5 container_name: jellyfin 6 user: 1000:1000 7 network_mode: "host" # Рэкамендуецца для DLNA і адкрыцця партоў 8 volumes: 9 - ./jellyfin/config:/config 10 - ./jellyfin/cache:/cache 11 - /path/to/media:/media # Пакажыце шлях да вашых фільмаў 12 restart: "unless-stopped"
Як бачыце, разгарнуць уласныя сэрвісы сёння прасцей, чым здаецца. Вам не трэба быць гуру Linux ці DevOps-інжынерам. Дастаткова Docker, жадання крыху разабрацца і пары вечароў.
Гэты спіс — толькі вяршыня айсберга. Існуюць тысячы гатовых кантэйнераў: ад блакіроўшчыкаў рэкламы (Pi-hole) да сістэм разумнага дома (Home Assistant) і асабістых бібліятэк кніг. Галоўнае — пачаць. Вы атрымаеце не толькі зручныя інструменты, якія належаць толькі вам, але і кайф ад таго, што зрабілі гэта самі.
Спадзяюся, мой досвед будзе вам карысны. Калі ў вас ёсць пытанні, ці вы ведаеце іншыя класныя кантэйнеры, пра якія варта расказаць — пішыце ў каментарах, будзем разбірацца разам!
Каментары
(Каб даслаць каментар залагуйцеся ў свой уліковы запіс)