Как самохостинг может защитить вас от неожиданных изменений Google: Полное руководство
Узнайте, как самостоятельно размещать сервисы, чтобы избежать зависимости от Google и сохранить контроль над своими данными. Практическое руководство по замене сервисов Google.
Понимание концепции самохостинга
Самохостинг предлагает альтернативный подход к управлению вашими данными, при котором вы самостоятельно управляете сервисами на собственном оборудовании. Это дает полный контроль над данными и защиту от внезапных изменений со стороны корпораций.
Подготовка инфраструктуры
Для самохостинга потребуется сервер или компьютер, операционная система (рекомендуется Linux), доменное имя и статический IP-адрес или динамический DNS.
Установка Docker и Docker Compose
Docker упрощает развертывание приложений, изолируя их в контейнерах. Необходимо установить Docker и Docker Compose на вашем сервере.
# Обновляем систему
sudo apt update && sudo apt upgrade -y
# Устанавливаем зависимости
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# Добавляем официальный репозиторий Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Устанавливаем Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# Добавляем пользователя в группу docker
sudo usermod -aG docker $USER
# Устанавливаем Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeСоздание структуры директорий
Необходимо создать структуру директорий для каждого сервиса, который вы планируете развернуть.
# Создаем директорию для наших сервисов
mkdir ~/selfhosted
cd ~/selfhosted
# Создаем директории для каждого сервиса
mkdir -p photos drive mail calendar notes backupsМиграция данных из Google сервисов
Перенос данных из Google сервисов (Photos, Drive, Gmail) в самохостинговые альтернативы. Для фотографий и файлов можно использовать Google Takeout, для почты - IMAP синхронизацию.
# Для переноса фотографий
mkdir -p ~/selfhosted/photos/originals
cp -r ~/Загрузки/google_photos_archive/* ~/selfhosted/photos/originals/
chmod -R 755 ~/selfhosted/photos/originals
# Для переноса файлов
mkdir -p ~/selfhosted/drive/data
cp -r ~/Загрузки/google_drive_archive/* ~/selfhosted/drive/data/
chmod -R 755 ~/selfhosted/drive/data
# Для переноса почты
imapsync \
--host1 imap.gmail.com \
--user1 ваш_адрес@gmail.com \
--password1 ваш_пароль_от_gmail \
--host2 ваш_сервер \
--user2 ваш_новый_адрес@ваш_домен.com \
--password2 ваш_новый_парольРазвертывание PhotoPrism (альтернатива Google Photos)
PhotoPrism - приложение для организации медиафайлов с ИИ для распознавания объектов и лиц. Развертывается через Docker Compose.
version: '3.7'
services:
photoprism:
image: photoprism/photoprism:latest
ports:
- "2342:2342"
volumes:
- ./photos/storage:/photoprism/storage
- ./photos/originals:/photoprism/originals
environment:
- PHOTOPRISM_ADMIN_PASSWORD=ваш_надежный_пароль
- PHOTOPRISM_SITE_TITLE=Мои Фотографии
restart: unless-stoppedРазвертывание Nextcloud (альтернатива Google Drive)
Nextcloud - комплексное решение для файлового хранилища с возможностями совместной работы. Развертывается через Docker Compose с MariaDB.
version: '3.7'
services:
nextcloud:
image: nextcloud:latest
ports:
- "8080:80"
volumes:
- ./drive/html:/var/www/html
- ./drive/data:/var/www/html/data
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=надежный_пароль
- MYSQL_HOST=db
restart: unless-stopped
depends_on:
- db
db:
image: mariadb:latest
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=надежный_пароль
- MYSQL_ROOT_PASSWORD=очень_надежный_пароль
volumes:
- ./drive/db:/var/lib/mysql
restart: unless-stoppedРазвертывание Mailcow (альтернатива Gmail)
Mailcow - комплексное решение для организации почтового сервера. Требует настройки DNS и SSL-сертификатов.
# Клонируем репозиторий
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
# Запускаем установку
./generate_config.sh
# Настройка SSL
sudo apt install certbot
sudo certbot certonly --standalone -d ваш_домен.comРазвертывание Baikal (альтернатива Google Calendar)
Baikal - простой и легковесный CalDAV-сервер для организации календарей. Развертывается через Docker Compose.
version: '3.7'
services:
baikal:
image: sandrobaeuerle/baikal:latest
ports:
- "8081:80"
volumes:
- ./calendar/html:/var/www/html
- ./calendar/db:/var/db
restart: unless-stoppedРазвертывание Nextcloud Notes (альтернатива Google Keep)
Nextcloud Notes - приложение для создания заметок, которое активируется в настройках Nextcloud после его установки.
Активация приложения в веб-интерфейсе Nextcloud:
1. Войдите в Nextcloud
2. Перейдите в раздел 'Приложения'
3. Найдите 'Notes' и активируйте егоНастройка доступа и безопасности
Настройка HTTPS через Let's Encrypt, обратного прокси через Nginx и регулярного резервного копирования данных.
# Скрипт резервного копирования
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf ~/backups/backup_$DATE.tar.gz -C ~/selfhosted . --exclude=drive/data
docker exec nextcloud-db mysqldump -u nextcloud -p nextcloud > ~/backups/nextcloud_db_$DATE.sql
docker exec mailcow-dockerized-mailcow-mailcow-1 tar -czf - /var/vmail > ~/backups/mail_vmail_$DATE.tar.gz
docker exec mailcow-dockerized-mailcow-mailcow-1 mysqldump -u root -p mailcow > ~/backups/mailcow_db_$DATE.sqlМониторинг и обновление сервисов
Настройка мониторинга через Prometheus и Grafana, а также автоматическое обновление сервисов через cron.
# Скрипт обновления сервисов
#!/bin/bash
for service in photos drive mail calendar notes; do
if [ -d "$HOME/selfhosted/$service" ]; then
cd "$HOME/selfhosted/$service"
docker-compose pull
docker-compose up -d
fi
done
# Добавление в cron
crontab -e
# 0 3 * * 0 /home/ваш_пользователь/update_services.sh