122 lines
3.1 KiB
Markdown
122 lines
3.1 KiB
Markdown
# mini-beieli-server - Bienenstock Ueberwachung
|
|
|
|
Code zum Erstellen des Servers
|
|
|
|
Spezifikaktion:
|
|
- CentOS 8
|
|
- Hetzner Cloud Server
|
|
- nginx Webserver/Proxy
|
|
- mini-beieli-web (Webapplikation/Golang)
|
|
- lorahandler (Webapplikation/Golang)
|
|
- Redis
|
|
- InfluxDB
|
|
|
|
## Erstellen des Servers
|
|
|
|
Mit dem Binary hcloud von:
|
|
https://github.com/hetznercloud/cli
|
|
|
|
Temporaer einen API Key erstellen (nachher wieder loeschen)
|
|
|
|
```
|
|
$ hcloud context create mini-beieli-server # evtl. zuerst: hcloud context delete mini-beieli-server
|
|
$ hcloud image list # zeigt moegliche Images
|
|
$ hcloud server-type list # zeigt moegliche Typen
|
|
|
|
$ hcloud server create --name mb1 --image centos-8 --type cx11 --ssh-key joerg@cinnamon.nbit.ch
|
|
$ hcloud server set-rdns mb1 --hostname mb1.nbit.ch
|
|
$ IPV6="$(hcloud server ip mb1 -6)"
|
|
$ hcloud server set-rdns mb1 --ip $IPV6 --hostname mb1.nbit.ch
|
|
```
|
|
|
|
DNS Eintraege erstellen:
|
|
```
|
|
$ hcloud server ip mb1
|
|
$ hcloud server ip mb1 -6
|
|
```
|
|
|
|
Root-Passwort setzen (das machen wir von Hand)
|
|
|
|
## Ansible Playbook laufen lassen
|
|
|
|
```
|
|
$ cd ansible
|
|
$ ansible-playbook -i production mini-beieli-server.yml --limit mb1.mini-beieli.ch # or mb2.mini-beieli.ch
|
|
```
|
|
|
|
Mailzugang muss auf mail.nbit.ch noch gegeben werden (main.cf)!
|
|
|
|
|
|
|
|
Root-Passwort setzen (das machen wir von Hand)
|
|
|
|
```
|
|
# yum update
|
|
```
|
|
|
|
### Let's Encrypt Zertifikat einrichten
|
|
|
|
```
|
|
# curl https://get.acme.sh | sh -s email=info@nbit.ch
|
|
# systemctl stop nginx
|
|
# acme.sh --issue --standalone -d mini-beieli.ch -d www.mini-beieli.ch -w /home/beieli/mini-beieli-web --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" # --staging zum Testen
|
|
|
|
|
|
[Sa Feb 27 17:27:34 CET 2021] Your cert is in /root/.acme.sh/mini-beieli.ch/mini-beieli.ch.cer
|
|
[Sa Feb 27 17:27:34 CET 2021] Your cert key is in /root/.acme.sh/mini-beieli.ch/mini-beieli.ch.key
|
|
[Sa Feb 27 17:27:34 CET 2021] The intermediate CA cert is in /root/.acme.sh/mini-beieli.ch/ca.cer
|
|
[Sa Feb 27 17:27:34 CET 2021] And the full chain certs is there: /root/.acme.sh/mini-beieli.ch/fullchain.cer
|
|
|
|
Install Certificate:
|
|
# acme.sh --install-cert -d mini-beieli.ch --key-file /etc/letsencrypt/mini-beieli.ch/mini-beieli.ch.key --fullchain-file /etc/letsencrypt/mini-beieli.ch/fullchain.cer --reloadcmd "service nginx force-reload"
|
|
# restorecon -irv /etc/letsencrypt
|
|
```
|
|
|
|
### Influxdb Users
|
|
|
|
```
|
|
mb1:
|
|
|
|
admin: admin7355
|
|
Org: minibeieliorg
|
|
Bucket: minibeielibucket
|
|
RW-Token:
|
|
RO-Token:
|
|
|
|
mb2:
|
|
|
|
admin: admin7355
|
|
Org: minibeieliorg
|
|
Bucket: minibeielibucket
|
|
RW-Token:
|
|
RO-Token:
|
|
```
|
|
|
|
## Redis Dump
|
|
|
|
Backup/Restore Tool fuer Redis von https://github.com/yannh/redis-dump-go
|
|
|
|
```
|
|
# cd /var/tmp && wget https://github.com/yannh/redis-dump-go/releases/download/v0.4.1/redis-dump-go-linux-amd64.tar.gz
|
|
# tar xzvf redis-dump-go-linux-amd64.tar.gz
|
|
# cp redis-dump-go /usr/local/bin
|
|
```
|
|
|
|
Zum Backup:
|
|
```
|
|
$ redis-dump-go -output commands >redis-backup-$(date +%Y%m%W).out
|
|
```
|
|
|
|
Zum Restore:
|
|
```
|
|
$ redis-cli --pipe < redis-backup.out
|
|
```
|
|
|
|
Redis RDB Files konvertieren, einfach auf MacOS: https://pkg.go.dev/github.com/vkill-w/go-rdb-tool#section-readme
|
|
|
|
```
|
|
$ brew install rdb
|
|
$ rdb -c json -o output.json redis-minibeieli-20250314.rdb
|
|
```
|
|
|