Transmission — раздача торрентов со своего сервера
Опубликовано 22 10 2021
3 min на чтение
Опубликовано 19 06 2021
2 min на чтение
Для переноса нужно получить базу данных форума fluxbb, наверняка вы знаете как это сделать, но если нет, то вот. Данные для подключение к базе, которые вы создавали, или то, что предоставил хостер, при создании.
# получение через ssh
ssh creio@125.120.10.54 "mysqldump -h host_ip -u user_db -pPASS_WORD_DB db_name" > ~/forum.sql
Копируем mysql дамп базы в докер контейнер и логинемся в него.
docker cp ~/forum.sql app:/var/www/discourse
# docker exec -it app /bin/bash --login
sudo ./launcher enter app
Установка mysql и запуск.
apt install -y mariadb-server mariadb-client libmariadb-dev
service mysql start
Создаем mysql базу, в которую выгрузим старые данные.
mysql -u root -p mysql
mysql> CREATE USER 'fluxbb'@'localhost' IDENTIFIED BY 'fluxbb';
mysql> CREATE DATABASE fluxbb;
mysql> GRANT ALL PRIVILEGES ON fluxbb.* TO 'fluxbb'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit
Логинимся под юзера discourse.
su discourse
Экспортируем базу данных fluxbb.
mysql -u fluxbb -p fluxbb < forum.sql
# pass
fluxbb
Добавляем зависимости в Gemfile.
echo "gem 'mysql2'" >> Gemfile
echo "gem 'redcarpet'" >> Gemfile
echo "gem 'ruby-bbcode-to-md', git: 'https://github.com/nlalonde/ruby-bbcode-to-md'" >> Gemfile
echo "gem 'reverse_markdown'" >> Gemfile
Установка зависимостей для корректной конвертации.
bundle config unset deployment
bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development
Данные для подключение к mysql, возможно у вас нет FLUXBB_PREFIX в базе и будет ошибка, попробуйте убрать это значение.
FLUXBB_HOST="localhost" FLUXBB_DB="fluxbb" FLUXBB_USER="fluxbb" FLUXBB_PW="fluxbb" FLUXBB_PREFIX="bb_" bundle exec ruby script/import_scripts/fluxbb.rb
Изменение домена, полезно выполнить на тестовом домене, а когда все готово изменить на основной, meta.discourse.org.
Первым делом стоит обновить сам сервер(ubuntu/debian).
apt-get update
apt-get dist-upgrade
Включить автообновления(не обязательно) и не везде это возможно, для убунту.
sudo dpkg-reconfigure -plow unattended-upgrades
Discourse работает в докере и используются скрипты для упрощения.
sudo su
cd /var/discourse
git pull
./launcher rebuild app
После обновления и запусков rebuild будут плодится контейнеры и images, которые забивают диск, но не используются.
# размер диска
df -h /
# размеры директорий
du -sh /var/lib/*
Удалить не нужные образы можно через docker, или через скрипт, имейте ввиду скрипт снесет все остановленные контейнеры и удалит все неиспользуемые образы. Дело в том, что если у вас работает, что-то еще кроме discourse в докере, то лучше работать именно самим docker-ом и удалять по id(7281bf55ce46).
# листинг контейнеров
docker ps -a
# удаление контейнеров(CONTAINER ID)
docker rm 8ee579ceabf7
# листинг образов
docker images
# удаление образов(IMAGE ID)
docker rmi 7281bf55ce46
# удаление всего скриптом
./launcher cleanup
Очистка системы apt.
apt-get autoclean
apt-get autoremove