73 lines
1.5 KiB
Markdown
73 lines
1.5 KiB
Markdown
# Installation
|
|
|
|
Open psql as user ```postgres```:
|
|
```sh
|
|
psql -U postgres
|
|
```
|
|
|
|
Create a user with password, allowed to login and a database:
|
|
```sql
|
|
CREATE ROLE nxy WITH ENCRYPTED PASSWORD 'your-password';
|
|
ALTER ROLE nxy LOGIN;
|
|
CREATE DATABASE nxy_prod OWNER nxy;
|
|
\c nxy_prod
|
|
CREATE EXTENSION citext;
|
|
\q
|
|
```
|
|
|
|
Apply database schema and optionally restore a dump:
|
|
```sh
|
|
psql -U nxy -d nxy_prod < nxy/files/schema.sql
|
|
psql -U nxy -d nxy_prod < path/to/dump.sql
|
|
```
|
|
|
|
Clone git repo, create virtual env, activate it and install dependencies:
|
|
```sh
|
|
git clone https://gitfap.de/mrhanky/nxy.git
|
|
python3 -m venv env
|
|
source env/bin/activate
|
|
pip install -U -r nxy/requirements.txt
|
|
```
|
|
|
|
Copy sample configs to ```$HOME``` and edit them:
|
|
```sh
|
|
cp nxy/files/{.env,config.json} .
|
|
vim .env config.json
|
|
```
|
|
|
|
## Running as Service
|
|
|
|
Enable linger for the bot user (so it starts at boot and keeps running), install and activate systemd unit:
|
|
```sh
|
|
sudo loginctl enable-linger nxy
|
|
mkdir -p $HOME/.config/systemd/user
|
|
ln -fs $HOME/nxy/files/nxy-bot.service $HOME/.config/systemd/user
|
|
systemctl --user enable --now nxy-bot.service
|
|
```
|
|
|
|
Install and activate timer for database dumps:
|
|
```sh
|
|
ln -fs $HOME/nxy/files/nxy-db-dump.{timer,service} $HOME/.config/systemd/user
|
|
systemctl --user enable --now nxy-db-dump.timer
|
|
```
|
|
|
|
## Running as Standalone in Development Mode
|
|
|
|
For development set the BOT_DEV variable:
|
|
|
|
```
|
|
export BOT_DEV=
|
|
```
|
|
|
|
Then add the current git repository to your python path:
|
|
|
|
```
|
|
export PYTHONPATH=<git repository>:$PYTHONPATH
|
|
```
|
|
|
|
Finally run nxy:
|
|
|
|
```
|
|
python3 -m bot
|
|
```
|