forked from toolshed/docs.coopcloud.tech
explain further how to bootstrap
This commit is contained in:
@ -217,6 +217,27 @@ Otherwise, you have downloaded a corrupted file.
|
||||
|
||||
If you want to teach `abra` how to support your favourite server hosting provider, we'd glady accept patches.
|
||||
|
||||
## How do I bootstrap a server manually for running Co-op Cloud apps?
|
||||
|
||||
The requirements are:
|
||||
|
||||
1. Docker installed
|
||||
1. User in Docker user group
|
||||
1. Swarm mode initialised
|
||||
1. Proxy network created
|
||||
|
||||
```
|
||||
# docker install convenience script
|
||||
wget -O- https://get.docker.com | bash
|
||||
|
||||
# add user to docker group
|
||||
usermod -aG docker $YOURUSERNAMEHERE
|
||||
|
||||
# setup swarm
|
||||
docker swarm init
|
||||
docker network create -d overlay proxy
|
||||
```
|
||||
|
||||
## Managing DNS entries
|
||||
|
||||
`abra record ...` can help you manage your DNS entries if you have an account with a supported 3rd party provider. We currently support [Gandi](https://gandi.net). The process of managing DNS with `abra` usually goes like this:
|
||||
@ -228,3 +249,47 @@ If you want to teach `abra` how to support your favourite server hosting provide
|
||||
`abra` supports creating, listing and removing DNS entries if the 3rd party integration supports it.
|
||||
|
||||
If you want to teach `abra` how to support your favourite server hosting provider, we'd glady accept patches.
|
||||
|
||||
## How do I persist container logs after they go away?
|
||||
|
||||
This is a big topic but in general, if you're looking for something quick & easy, you can use the [journald logging driver](https://docs.docker.com/config/containers/logging/journald/). This will hook the container logs into systemd which can handle persistent log collection & managing log file size.
|
||||
|
||||
You need to add the following to your `/etc/docker/daemon.json` file on the server:
|
||||
|
||||
```json
|
||||
{
|
||||
"log-driver": "journald",
|
||||
"log-opts": {
|
||||
"labels":"com.docker.swarm.service.name"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
And for log size management, edit `/etc/systemd/journal.conf`:
|
||||
|
||||
```
|
||||
[Journal]
|
||||
Storage=persistent
|
||||
SystemMaxUse=5G
|
||||
MaxFileSec=1month
|
||||
```
|
||||
|
||||
Tne restart `docker` & `journald`:
|
||||
|
||||
```
|
||||
systemctl restart docker
|
||||
systemctl restart systemd-journald
|
||||
```
|
||||
|
||||
Now when you use `docker service logs` or `abra app logs`, it will read from the systemd journald logger seamlessly! Some useful `journalctl` commands are as follows, if you're doing some more fine grained logs investigation:
|
||||
|
||||
- `journalctl -f`
|
||||
- `journalctl CONTAINER_NAME=my_git_com_app.1.jxn9r85el63pdz42ykjnmh792 -f`
|
||||
- `journalctl COM_DOCKER_SWARM_SERVICE_NAME=my_git_com_app --since="2020-09-18 13:00:00" --until="2020-09-18 13:01:00"`
|
||||
- `journalctl CONTAINER_ID=$(docker ps -qf name=my_git_com_app) -f`
|
||||
|
||||
Also, for more system wide analysis stuff:
|
||||
|
||||
- `journalctl --disk-usage`
|
||||
- `du -sh /var/log/journal/*`
|
||||
- `man journalctl` / `man systemd-journald` / `man journald.conf`
|
||||
|
Reference in New Issue
Block a user