Skip to main content

Getting Started on Linux with Docker

Prerequisites

Docker must be installed on your Linux environment.

warning

The configuration below uses HTTP. Direct exposure of the service to external networks is not recommended.

warning

The commands below are written for Ubuntu.

Getting Started

1. Choose folders

Decide and create the folder for Docker configuration files and the folder for data storage.

This document uses the paths below.

/home/user/namoo-bookself/
/home/user/namoo-bookself/data/

2. Create folders and set permissions

Create the folders used by namoo-bookself under /home/user/namoo-bookself/data/ and set permissions.

export DATA_PATH=/home/user/namoo-bookself/data

# Create folders used by NamooBookself
sudo mkdir -p "$DATA_PATH"/{postgres,Files,Log,License,UserConfig}

# Set folder permissions
sudo chown -R 1654:1654 "$DATA_PATH/Files" "$DATA_PATH/Log" "$DATA_PATH/License" "$DATA_PATH/UserConfig"

# Set permissions for the PostgreSQL data folder
sudo chown -R 999:999 "$DATA_PATH/postgres"

3. Create docker-compose.yml

Create a docker-compose.yml file in /home/user/namoo-bookself/.
Copy the content from the docker-compose.yml document.

You may change the restart option as needed.

4. Create .env file

Create a .env file with values mapped to the docker-compose.yml file above.
Copy the content from the .env document and modify it.

5. Set .env file permissions

The env file contains sensitive information; restrict read/write access to the user who created it.

sudo chmod 600 .env

6. Register service port in firewall

If you use a firewall, allow the service port.
Use the SERVER_HTTP_PORT value from the env file when opening the firewall.

# Open for all networks
sudo ufw allow 8080/tcp
# Open for a specific network
sudo ufw allow from 192.168.1.0/24 to any port 8080 proto tcp

sudo ufw reload

7. Pre-launch checklist

  • The folder structure before launch should look like this:
/home/user/namoo-bookself/
├── docker-compose.yml
├── .env
/home/user/namoo-bookself/data/
├── postgres/
├── Files/
├── Log/
├── License/
└── UserConfig/
  • Check whether a firewall is configured and, if so, whether the configured port is open.
sudo ufw status

8. Launch

Go to the folder containing docker-compose.yml and run the commands below.

# Pull images
sudo docker compose pull

# Start containers
sudo docker compose up -d

# Check status
sudo docker compose ps
sudo docker compose logs -f app

9. Check launch logs

If the logs show no errors other than license Error logs and include a Start server log, the service started successfully.

Launch log check

10. Verify web UI

Open http://<docker-host-IP>:<SERVER_HTTP_PORT>. If the login screen appears and login succeeds, the server is running.

Login ID and password are the APP_USER_ID value from the env file.
(Initial password is the same as APP_USER_ID)
After a successful login, you should see a screen like the one below.

Web UI login screen