# Backup

How to back up server services.

## Prepare

```sql
CREATE ROLE backup WITH
    NOSUPERUSER
    NOCREATEDB
    NOCREATEROLE 
    PASSWORD 'tropcool'
    LOGIN
    ;
```

### Probably does not work
Add in the file `pg_hba.conf` :
```
local all backup trust
```

Reload with `SELECT pg_reload_conf();`.

### Probably works

With _postgres_ : `GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup;`

Connect with `sudo -u postgres psql --username=backup --host localhost --dbname=kanboard_db`

`pg_dump kanboard_db --username=backup --host=localhost > dumpfile.test`

Does not work because backup can't access sequences.

## Backup process

### Disable websites

Through _SSH_ on server

```sh
sudo a2dissite \
kanboard.jovian-hersemeule.eu kanboard.jovian-hersemeule.eu-le-ssl \
wiki.jovian-hersemeule.eu wiki.jovian-hersemeule.eu-le-ssl \
gogs.jovian-hersemeule.eu gogs.jovian-hersemeule.eu-le-ssl ;
sudo systemctl reload apache2 ;
```

### Backup local machine

Through _SSH_ on server

```sh
cd /home/jovian/GitWork/DricomDragon/JovianLinux/Server/Scripts/Backup/ ;
git pull ;
./j7backalllocal
```

### Retrieve backups

On local machine

```sh
cd /home/jovian/GitWork/DricomDragon/JovianLinux/Server/Scripts/Backup/ ;
git pull ;
./j7backretrieve
```

### Enable websites

Through _SSH_ on server

```sh
sudo a2ensite \
kanboard.jovian-hersemeule.eu kanboard.jovian-hersemeule.eu-le-ssl \
wiki.jovian-hersemeule.eu wiki.jovian-hersemeule.eu-le-ssl \
gogs.jovian-hersemeule.eu gogs.jovian-hersemeule.eu-le-ssl ;
sudo systemctl reload apache2 ;
```

## Automate

Use Jenkins.