Галоўная > Джэнтльменскі набор: 6 Docker-кантэйнераў, якія робяць жыццё прасцейшым, або ствараем уласныя воблакі

Джэнтльменскі набор: 6 Docker-кантэйнераў, якія робяць жыццё прасцейшым, або ствараем уласныя воблакі

docker

cover

Прывітанне спадарства!

Кожны паважаючы сябе джэнтльмен (і лэдзі, вядома) павінен мець тры рэчы: добры касцюм, чыстае сумленне і ўласны сервер. Ну добра, наконт касцюма можна паспрачацца, а вось сервер — рэч незаменная. Сёння я пакажу вам свой "залаты стандарт" — 6 сэрвісаў, якія ператвараюць звычайны камп'ютар у магутны цэнтр кіравання палётамі.

І ўсё гэта — па цане кубка кавы. Мы пабудуем экасістэму, дзе вы зможаце глядзець кіно, захоўваць сакрэтныя планы захопу свету коцікамі (ці проста іх фатаграфіі) і кіраваць усім гэтым праз бяспечны VPN-тунэль.

Заводзьце свае докеры, пагналі!

Архітэктура: Дзе запускаць усё гэта?

Каб усё працавала ідэальна, я рэкамендую наступную схему:

  1. Аддалены VPS-сервер:

    • Тут мы запускаем толькі VPN (WireGuard).
    • Чаму: Вам патрэбен статычны "белы" IP-адрас, каб да яго можна было падключыцца з любога месца. Самы танны VPS за $3-5 у месяц выдатна падыдзе. Ён будзе працаваць як "уваходныя вароты".
  2. Лакальны Хатні Сервер:

    • Тут мы запускаем усё астатняе (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)

ws

Навошта гэта трэба? Каб вашы сэрвісы былі даступныя вам у любой кропцы свету, але пры гэтым схаваныя ад старонніх вачэй. Гэта ваш асабісты шыфраваны тунэль дадому.

Чаму менавіта WireGuard? Ён хуткі, сучасны і менш жарэ батарэю на тэлефоне ў параўнанні з OpenVPN. Я рэкамендую выкарыстоўваць wg-easy. Гэта WireGuard, які ставіцца за хвіліну і мае зручны вэб-інтэрфейс для стварэння канфігаў. Вам не трэба пісаць складаныя канфігурацыі ў тэрмінале — проста заходзіце ў браўзер, ствараеце карыстальніка "iPhone" і скануеце QR-код праграмай WireGuard на тэлефоне. Усё, вы ў хатняй сетцы!

docker-compose.yml:

yaml
1version: "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

port Навошта гэта трэба? Калі ў вас запушчана 5-10 кантэйнераў, сачыць за імі праз кансоль становіцца нязручна. Portainer — гэта візуальны пульт кіравання вашым серверам.

Што дае:

  • Зручнасць з тэлефона: Калі нешта зламалася, а вы не ля камп'ютара, можна зайсці з тэлефона ў вэб-інтэрфейс Portainer і перазапусціць кантэйнер адной кнопкай.
  • Логі і статыстыка: Адразу бачна, колькі памяці спажывае праграма і што яна піша ў лог, без неабходнасці ўводзіць docker logs -f ....
  • Рэдагаванне на ляту: Можна змяніць зменную асяроддзя і перастварыць кантэйнер прама ў браўзеры.

docker-compose.yml:

yaml
1version: "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 Навошта гэта трэба? Часам трэба хутка намаляваць схему, дыяграму ці проста візуалізаваць думкі. Існуюць анлайн-сэрвісы, але навошта аддаваць ім свае ідэі? Excalidraw — гэта open-source рашэнне.

Плюсы сэлф-хостынгу:

  • Прыватнасць: Вашы схемы захоўваюцца толькі ў вас. Ніякай перадачы дадзеных на чужыя серверы.
  • Доступ з планшэта: Excalidraw шыкоўна працуе на iPad ці Android-планшэтах. Стыль "ад рукі" робіць схемы жывымі і зразумелымі.
  • Аўтаномнасць: Працуе нават калі адключылі інтэрнэт.

docker-compose.yml:

yaml
1version: "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:

yaml
1version: "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

nextcloude Навошта гэта трэба? Гэта ўжо цяжкая артылерыя. Поўная замена Google Drive, Dropbox і iCloud. NextCloud дазваляе цалкам адмовіцца ад старонніх воблакаў.

Магчымасці:

  • Аўтазапампоўка фота: Ставіце праграму NextCloud на тэлефон, і ўсе вашы новыя фоткі аўтаматычна ляцяць на ваш хатні сервер. Тэлефону можно ламацца — фота ў бяспецы.
  • Воблака для ўсяго: Можна кінуць файлы з ноўтбука, а потым адкрыць іх на тэлефоне. Гэта як ваша персанальнае воблака, доступ да якога маеце толькі вы праз VPN.
  • Сінхранізацыя кантактаў і календароў: Калі вы хочаце сапраўды "De-Google" сваё жыццё, NextCloud можа стаць цэнтрам сінхранізацыі ўсіх вашых прылад.

Для простага запуску можна выкарыстаць SQLite (не рэкамендуецца для вялікай нагрузкі) або паўнавартасную базу дадзеных. Ніжэй варыянт з базай дадзеных MariaDB.

docker-compose.yml:

yaml
1version: "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

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:

yaml
1version: "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) і асабістых бібліятэк кніг. Галоўнае — пачаць. Вы атрымаеце не толькі зручныя інструменты, якія належаць толькі вам, але і кайф ад таго, што зрабілі гэта самі.

Спадзяюся, мой досвед будзе вам карысны. Калі ў вас ёсць пытанні, ці вы ведаеце іншыя класныя кантэйнеры, пра якія варта расказаць — пішыце ў каментарах, будзем разбірацца разам!

Admin, 2026-01-09
Каментары

    (Каб даслаць каментар залагуйцеся ў свой уліковы запіс)