Getting Started on Linux with Docker
Prerequisites
Docker must be installed on your Linux environment.
The configuration below uses HTTP. Direct exposure of the service to external networks is not recommended.
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.

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.