Docker compose is a popular way to define multi-container applications using a infrastructure as code approach.
If you personally prefer to use
docker compose, then here is a sample to get
version: "3.8" services: olivetin: container_name: olivetin image: jamesread/olivetin volumes: - /docker/olivetin:/config # replace host path or volume as needed ports: - "1337:1337" restart: unless-stopped networks: web: # should match the network defined under the container's networks section external: true
You will need to write a basic configuration file before OliveTin will startup.
Create a basic config file at somewhere like
/docker/OliveTin/config.yaml - the exact path depends on what directory you specified in the bind mount container creation. Note that OliveTin containers expect the config to be in
/config/ inside the container, but it doesn’t really matter where this directory is mounted from on the host. The file contents should look something like this;
actions: - title: "Hello world!" shell: echo 'Hello World!'
Now that you have a configuration file, and the OliveTin container created, you should be able to start the container like normal.
If you are running a firewall on your server, like firewalld, you will need to open port 1337;
user@host: firewall-cmd --add-port 1337/tcp --permanent user@host: firewall-cmd --reload
You should be able to browse to http://yourserver:1337 (or similar) to get to the web interface.
If you see the OliveTin page popup in your browser, you can jump to the configuration section as the next step.
If you are having problems in starting OliveTin, or OliveTin is crashing on startup, then check the logs like this;
user@host: docker logs OliveTin
If you cannot understand the logs, or otherwise need help, see the Where to find help.
If you want to use OliveTin running in a container to control other Docker containers, you will need to pass through the Docker sock in your compose file.
You will need to adjust your docker-compose file to include the docker socket, like this;
`docker-compose.yml` including docker socket
version: "3.8" services: olivetin: container_name: olivetin image: jamesread/olivetin volumes: - /docker/olivetin:/config # replace host path or volume as needed - /var/run/docker.sock:/var/run/docker.sock ...
You will probably need to tell this container to run as root as well, to control docker (see below).
This is the correct way to tell the OliveTin container to run as root (or any other user);
version: "3.8" services: olivetin: container_name: olivetin image: jamesread/olivetin user: root ...
|PUID and PGID are not used by the official OliveTin container image.|