Помимо программ с графическим и текстовым интерфейсом в последнее время набирают популярность программы с веб-интерфейсом, которые можно разместить на собственном сервере в облаке или в локальной сети и использовать с нескольких устройств. Это называется self-hosting.
Речь идет не только о серьезных программах для мониторинга серверов, обработки логов и т.д., но и часто о решениях для более простых повседневных задач, например, хранения и чтения книг, заметок, стриминга фильмов или музыки, и даже поиска мемов. В этой статье собрано 10 полезных программ для домашнего сервера с веб-интерфейсом, которые вы можете установить и использовать.
Содержание статьи
Зачем это вообще нужно?
Для решения большинства задач достаточно программ, которые запускаются на одном компьютере и имеют графический интерфейс или интерфейс командной строки. Однако программы, запущенные на отдельном сервере, имеют несколько преимуществ:
- Доступ с нескольких устройств - вы можете получить доступ к вашим данным независимо от используемого устройства: на компьютере, телефоне, ноутбуке. У многих таких программ есть даже приложения для Android и iOS.
- Непрерывная работа - программы на компьютере работают только когда компьютер включен. В то же время, если у вас есть сервер на Raspberry Pi с низким энергопотреблением, то запущенные программы с веб-интерфейсом могут выполнять работу в фоновом режиме 24/7.
- Легко переносить данные - время от времени операционную систему на компьютере нужно переустанавливать, в случае с Linux, например, для перехода на другой дистрибутив или обновления версии, и тогда вам нужно перенести все данные и программы в новую систему. В случае с сервером, вы можете не переустанавливать систему достаточно долго. Можно установить NixOS, а сами программы запускать в контейнерах Docker, которые при необходимости будет просто перенести в другую систему, где поддерживается Docker.
- Тренировка навыков работы с инфраструктурой - помимо всего вышеперечисленного, вы получаете почти production сервер, который так или иначе нужно обслуживать. Вы можете разбираться с новыми технологиями, исследовать как всё работает или как лучше реализовать ту или иную конфигурацию, и тому подобное.
Как это делать?
Конечно, всё это можно запускать и на компьютере, которым вы пользуетесь, но тогда это немного теряет смысл. Лучше для этого использовать старый ноутбук, миникомпьютер или Raspberry Pi. Третьей версии Raspberry Pi может быть недостаточно, но 4-я и 5-я с 8 Гб оперативной памяти будут вполне справляться.
В качестве операционной системы может быть любой серверный Linux дистрибутив. Неплохой выбор - NixOS. Система сложна в настройке, но затем конфигурацию будет очень просто воспроизвести на другом устройстве или после обновления. А сами программы удобнее всего запускать в контейнерах. Это безопаснее, а также настроенные с помощью docker compose контейнеры можно очень просто развернуть где угодно, где поддерживается docker.
Все перечисленные в этом списке программы можно установить с помощью Docker Compose, поэтому это не должно быть проблемой. По каждой программе будет приведен простой пример конфигурации docker compose, которая не является готовой к повседневному использованию, но позволяет посмотреть как работает программа.
Лучше не давать доступ ко всему этому из интернета без дополнительной авторизации. Программное обеспечение, в том числе с веб-интерфейсом, может содержать ошибки и уязвимости, которые могут привести к заражению вашего сервера вирусами и утечке данных.
Полезные программы для домашнего сервера
В этой статье не будет программ для мониторинга состояния серверов и тому подобного. Сосредоточимся на программах, которые можно использовать для решения повседневных задач и повышения удобства использования системы. С помощью таких программ вы можете создать свой аналог экосистемы Apple или Google в локальной сети.
1. NextCloud
- Технологии: PHP/Symfony, Javascript/Vue
- Количество звёзд: 33к
- Минимальный объем RAM: 4 Гб
- Требования к процессору: x64/arm64
NextCloud можно считать альтернативой Google Cloud. С помощью программы вы можете настроить синхронизацию файлов с телефона и компьютера. А с помощью расширений, которые здесь называются приложениями, можно улучшить удобство работы с этими файлами, настроить дополнительные синхронизации или автоматизации. Фактически это облачное хранилище с веб-интерфейсом и поддержкой плагинов. В отличие от Google Drive, объем хранилища ограничен только размером HDD или SSD, который вы туда установите, а варианты использования - вашей способностью настраивать и воображением. На сайте уже есть статья о том, как настроить NextCloud.
Большинство программ, перечисленных ниже, тоже своего рода облачные хранилища, но они более специфичны и имеют дополнительные функции для работы с определенным типом файлов, такими как музыка, фильмы, документы или книги.
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ./config:/config
- ./data:/data
ports:
- 443:443
restart: unless-stopped
2. Navidrome
- Технологии: Go, JavaScript
- Количество звёзд: 18k
- Минимальный объем RAM: 1 Гб
- Требования к процессору: x86 32/64bit или ARM
Это медиа-стриминг платформа, которую можно разместить на собственном сервере. Обычно она используется для музыки. Здесь поддерживается множество медиа форматов, музыку можно организовывать по исполнителям, альбомам, плейлистам. Прослушивать музыку можно через веб-интерфейс, или с помощью любого клиента, поддерживающего Subsonic API, например с помощью Android приложения DSub2000.
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000
ports:
- "4533:4533"
restart: unless-stopped
volumes:
- ./data:/data
- ./music:/music:ro
3. Kavita
- Технологии: C#, TypeScript
- Количество звёзд: 9k
- Минимальный объём RAM: 512 Мб
- Требования к процессору: x64/arm64, с поддержкой SSE4.2
Kavita - это альтернатива Kindle, которую можно развернуть на собственном сервере, чтобы читать книги, купленные не в Amazon, в форматах PDF, EPUB и других, с тем же удобством, что и в Kindle. Вы предоставляете программе доступ к каталогу с книгами, программа сканирует их в библиотеку, после чего вы можете читать эти книги через веб-интерфейс. У программы пока нет официального клиента для мобильных телефонов, но поскольку у неё есть веб-интерфейс, открыть его можно с любого устройства.
services:
kavita:
image: lscr.io/linuxserver/kavita:latest
container_name: kavita
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ./config:/config
- ./data:/data
ports:
- 5000:5000
restart: unless-stopped
4. Jellyfin
- Технологии: C#, JavaScript
- Количество звёзд: 47k
- Минимальное количество RAM: 8 Гб
- Требования к процессору: Intel Core i5-11400, Intel Pentium Gold G7400, Intel N100, Apple M или новее
Jellyfin - медиасистема, разработанная на .NET, с помощью которой можно стримить свои видео и аудио файлы на другие устройства или просматривать их в веб-интерфейсе. Аналогично Kavita, здесь необходимо указать папку, в которой находятся медиафайлы. Помимо просмотра видео, программа загружает метаданные для ваших файлов, а также поддерживает перекодирование форматов. Также доступны клиенты для различных платформ, включая Linux, Windows, Android и iOS.
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ./config:/config
- ./tvseries:/data/tvshows
- ./movies:/data/movies
ports:
- 8096:8096
- 8920:8920
- 7359:7359/udp
- 1900:1900/udp
restart: unless-stopped
5. Storyteller Reader
- Технологии: NodeJS/React
- Количество звезд: 100
- Минимальный объем RAM: 8 Гб
- Требования к процессору: Intel/AMD или ARM64
Storyteller - это облачное хранилище для аудиокниг, которое вы можете разместить на своем сервере. Программа состоит из серверной части, где хранятся файлы книг, а также мобильного приложения, с помощью которого эти книги можно сохранить на телефон и слушать.
Программа достаточно новая и не очень популярная, но у нее есть одна очень полезная особенность. Если у вас есть аудио версия книги и ее электронная текстовая версия, то программа позволяет их объединить и слушать аудио параллельно читая текст, что довольно удобно при изучении нового языка. Для этого аудио распознается с помощью Whisper и сопоставляется с текстом, поэтому программе требуется много оперативной памяти. Конечно, программа запоминает позицию, где вы остановились, и имеет режим сна и настройки скорости воспроизведения.
services:
web:
image: registry.gitlab.com/storyteller-platform/storyteller:latest
volumes:
- ./data:/data:rw
environment:
- STORYTELLER_SECRET_KEY=changemechangemechangeme
ports:
- "8001:8001"
6. Paperless-NGX
- Технологии: Python, TypeScript
- Количество звёзд: 35k
- Минимальный объем RAM: 2 Гб
- Требования к процессору: x64 или ARM64.
Программа позволяет хранить и организовывать документы, её особенность - это поддержка распознавания текста на документах с помощью Tesseract. Вы загружаете документ, а программа индексирует его содержимое, позволяя затем очень быстро и просто находить нужные документы. Вся обработка происходит локально. Кроме того документам можно присваивать теги, а также организовать их по папкам. Поддерживаются PDF, изображения, текстовые файлы и множество форматов офисных программ.
services:
paperless-ngx:
image: lscr.io/linuxserver/paperless-ngx:latest
container_name: paperless-ngx
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./config:/config
- ./data:/data
ports:
- 8000:8000
restart: unless-stopped
7. KaraKeep
- Технологии: TypeScript
- Количество звёзд: 22k
- Минимальный объем RAM: 2 Гб
- Процессор: x64 или ARM64
Эта программа может помочь наконец-то закрыть ваши 100+ вкладок в браузере, поскольку это менеджер закладок с поддержкой AI функций. Программа стала популярной недавно и раньше называлась Hoarder. Она имеет расширения для браузеров (Chrome/Firefox), с помощью которых можно отправить ссылку на любую страницу в закладки, которые затем можно просматривать в веб-интерфейсе программы или в мобильном приложении.
Всем материалам присваиваются теги с помощью AI, а также поддерживается полнотекстовый поиск. Доступ для AI здесь нужно настраивать. По умолчанию используется OpenAI, но поддерживается также Ollama, а также все OpenAI совместимые провайдеры.
services:
web:
image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
restart: unless-stopped
volumes:
- ./data:/data
ports:
- 3000:3000
environment:
- KARAKEEP_VERSION=release
- NEXTAUTH_SECRET=super_random_string
- NEXTAUTH_URL=http://localhost:3000
- MEILI_ADDR=http://meilisearch:7700
- BROWSER_WEB_URL=http://chrome:9222
- OPENAI_API_KEY=changeme_changeme_changeme
- OPENAI_BASE_URL=https://api.groq.com/openai/v1/
- INFERENCE_TEXT_MODEL=openai/gpt-oss-120b
- INFERENCE_IMAGE_MODEL=meta-llama/llama-guard-4-12b
- DATA_DIR=/data
chrome:
image: gcr.io/zenika-hub/alpine-chrome:124
restart: unless-stopped
command:
- --no-sandbox
- --disable-gpu
- --disable-dev-shm-usage
- --remote-debugging-address=0.0.0.0
- --remote-debugging-port=9222
- --hide-scrollbars
meilisearch:
image: getmeili/meilisearch:v1.13.3
restart: unless-stopped
environment:
- MEILI_NO_ANALYTICS=true
- MEILI_MASTER_KEY=another_random_string
volumes:
- ./meilisearch:/meili_data
8. Warracker
- Технологии: Python, JavaScript
- Количество звезд: 1k
- Минимальный объем RAM: 250 Мб
- Процессор: x86-64/AMD64 или ARM64
Этот сервис позволяет хранить и отслеживать гарантии для вашего оборудования. Очень просто, но весьма полезно, когда что-то выходит из строя, иметь возможность быстро посмотреть, где оно было приобретено и не закончилась ли еще гарантия. Кроме того, в программе можно хранить дополнительные заметки о товарах и различную документацию для них в PDF формате.
services:
warracker:
image: ghcr.io/sassanix/warracker/main:latest
ports:
- "8005:80"
volumes:
- ./data/uploads:/data/uploads
environment:
- DB_HOST=warrackerdb
- DB_PORT=${DB_PORT:-5432}
- DB_NAME=warranty_db
- DB_USER=warranty_user
- DB_PASSWORD=${DB_PASSWORD:-warranty_password}
- SMTP_HOST=smtp.email.com
- SMTP_PORT=465
- SMTP_USERNAME=youremail@email.com
- SMTP_PASSWORD=password
- SECRET_KEY=${APP_SECRET_KEY:-your_strong_default_secret_key_here}
- MAX_UPLOAD_MB=32
- NGINX_MAX_BODY_SIZE_VALUE=32M
- OIDC_PROVIDER_NAME=${OIDC_PROVIDER_NAME:-oidc}
- OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-}
- OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET:-}
- OIDC_ISSUER_URL=${OIDC_ISSUER_URL:-}
- OIDC_SCOPE=${OIDC_SCOPE:-openid email profile}
- FRONTEND_URL=${FRONTEND_URL:-http://localhost:8005}
- APP_BASE_URL=${APP_BASE_URL:-http://localhost:8005}
- WARRACKER_MEMORY_MODE=${WARRACKER_MEMORY_MODE:-optimized}
- PYTHONUNBUFFERED=1
depends_on:
warrackerdb:
condition: service_healthy
restart: unless-stopped
warrackerdb:
image: postgres:15-alpine
volumes:
- ./data/postgres:/var/lib/postgresql/data
restart: unless-stopped
environment:
- POSTGRES_DB=warranty_db
- POSTGRES_USER=warranty_user
- POSTGRES_PASSWORD=${DB_PASSWORD:-warranty_password}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 5s
timeout: 5s
retries: 5
9. MemeSearch
- Технологии: Ruby/Python, JavaScript
- Количество звёзд: 600
- Объём RAM: 8-16 Гб
- Процессор: x86-64/AMD64
Мемы уже стали частью нашей культуры, и было бы неплохо иметь возможность сохранять и находить мемы, когда это необходимо. Программа индексирует мемы, распознавая что на них изображено и текст с помощью AI. Это позволяет выполнять поиск по описанию мема или по словам из него. Вся обработка выполняется локально. С кириллицей программа работает не очень хорошо, но мемы на английском распознаются неплохо.
services:
meme_search:
image: ghcr.io/neonwatty/meme_search:latest
container_name: meme_search
environment:
DATABASE_URL: "postgres://postgres:postgres@meme-search-db:5432/meme_search"
ports:
- "${APP_PORT:-3000}:3000"
depends_on:
meme_search_db:
condition: service_healthy
volumes:
- ./data/memes/:/rails/public/memes
- ./data/direct-uploads/:/rails/public/memes/direct-uploads
extra_hosts:
huggingface.co: 108.138.51.8
image_to_text_generator:
image: ghcr.io/neonwatty/image_to_text_generator:latest
container_name: image_to_text_generator
environment:
APP_PORT: "${APP_PORT:-3000}"
GEN_URL: "http://meme_search:3000"
expose:
- "8000"
volumes:
- ./data/memes/:/app/public/memes
- ./data/direct-uploads/:/app/public/memes/direct-uploads
- ./data/db_data/image_to_text_generator:/app/db
- ./data/models:/root/.cache/huggingface
meme_search_db:
image: pgvector/pgvector:pg17
container_name: meme-search-db
volumes:
- ./data/db_data/meme-search-db:/var/lib/postgresql/data
environment:
POSTGRES_DB: meme_search
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
expose:
- "5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
10. BentoPDF
- Технологии: JavaScript
- Количество звёзд: 8k
- Объем RAM: -
- Процессор: -
Это простой инструмент для обработки PDF файлов в браузере. Здесь можно конвертировать изображения в PDF, организовывать, обрезать и поворачивать страницы в документе, разделять или объединять страницы, добавлять аннотации и комментарии, и многое другое. Возможно не полноценная замена Adobe Acrobat, но может справиться с базовыми задачами. Поскольку программа работает в браузере, её можно запустить на любом современном железе.
services:
bentopdf:
image: bentopdf/bentopdf:latest
container_name: bentopdf
restart: unless-stopped
ports:
- '8080:8080'
Выводы
В этой статье мы рассмотрели полезные программы с веб-интерфейсом, которые вы можете установить на свой сервер и иметь доступ к ним удаленно. Конечно, это далеко не все программы, есть еще много менее популярных программ, или популярных, которые я не успел протестировать. Кроме того, есть программы группы arr. А что используете вы? Напишите в комментариях!
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали















Спасибо большое! Очень толковый материал! Я уже купил мии ПК с пассивным охлаждением. Хочу организовать домашний сервер.. Идея СУПЕР! спасибо большое! Продолжайте дальше пожалуйста. Это самый толковый сайт по Линуск и подобной тематике! РЕСПЕКТ!
Есть еще immich очень крутой. у меня установлен и я (и все члены семьи) полностью избавился от синхронизации фото и видео. все удобно и интуитивно понятно.
пробовал сначала nextcloud , но он более требователен к ресурсам да и функционал мне не нужен был весь, нашел immich - рекомендую.