Installation
Getting OnTree up and running takes just a few minutes. This guide will walk you through the installation process step by step.
Prerequisites
Before installing OnTree, ensure you have:
- Podman 4.0 or later (with built-in compose support)
- A Linux, macOS, or Windows system with WSL2
- At least 2GB of RAM available
- Port 8080 available (or configure a different port)
Verify Podman Installation
podman --version
# Should output: podman version 4.x.x or higher
podman compose version
# Should output the compose version
Download OnTree
OnTree is distributed as a single binary file. Download the appropriate version for your platform:
Linux
# Download the latest release
wget https://github.com/ontree/treeos/releases/latest/download/treeos-linux-amd64
chmod +x treeos-linux-amd64
sudo mv treeos-linux-amd64 /usr/local/bin/treeos
macOS
# Intel Mac
wget https://github.com/ontree/treeos/releases/latest/download/treeos-darwin-amd64
chmod +x treeos-darwin-amd64
sudo mv treeos-darwin-amd64 /usr/local/bin/treeos
# Apple Silicon (M1/M2)
wget https://github.com/ontree/treeos/releases/latest/download/treeos-darwin-arm64
chmod +x treeos-darwin-arm64
sudo mv treeos-darwin-arm64 /usr/local/bin/treeos
Windows (WSL2)
Follow the Linux instructions above within your WSL2 environment.
Start OnTree
Once downloaded, starting OnTree is simple:
# Start OnTree
treeos
# Or start with a custom port
treeos --port 3000
OnTree will:
- Create necessary directories (
apps/for your applications) - Initialize the SQLite database
- Start the web server on port 8080 (default)
Access the Web Interface
Open your web browser and navigate to:
http://localhost:8080
You should see the OnTree dashboard. Congratulations! 🎉
Configuration Options
OnTree can be configured using environment variables or a configuration file.
Environment Variables
# Change the port
PORT=3000 treeos
# Set database path
DATABASE_PATH=/var/lib/ontree/ontree.db treeos
# Enable debug logging
DEBUG=true treeos
Configuration File
Create a config.toml file in the same directory as the binary:
# Server configuration
port = 8080
host = "0.0.0.0"
# Database configuration
database_path = "./ontree.db"
# Monitoring
monitoring_enabled = true
# Domain configuration (optional)
public_base_domain = "example.com"
tailscale_base_domain = "tail-scale.ts.net"
Running as a Service
Linux (systemd)
Create /etc/systemd/system/ontree.service:
[Unit]
Description=OnTree Container Manager
After=podman.service
Requires=podman.service
[Service]
Type=simple
ExecStart=/usr/local/bin/treeos
Restart=always
User=ontree
Group=podman
Environment="PATH=/usr/bin:/usr/local/bin"
WorkingDirectory=/var/lib/ontree
[Install]
WantedBy=multi-user.target
Enable and start the service:
# Create user and directories
sudo useradd -r -s /bin/false ontree
sudo mkdir -p /var/lib/ontree
sudo chown ontree:ontree /var/lib/ontree
# Enable and start service
sudo systemctl enable ontree
sudo systemctl start ontree
sudo systemctl status ontree
Podman
You can also run TreeOS itself in a Podman container:
# compose.yml
version: '3.8'
services:
ontree:
image: ghcr.io/ontree/ontree:latest
container_name: ontree
ports:
- "8080:8080"
volumes:
- /run/podman/podman.sock:/run/podman/podman.sock
- ./apps:/apps
- ./data:/data
restart: unless-stopped
Next Steps
Now that OnTree is installed:
- Set up domains - Configure Caddy integration for HTTPS
- Create your first app - Deploy Open WebUI
- Explore features - Learn about all OnTree capabilities
Troubleshooting
Port Already in Use
If port 8080 is already in use:
# Use a different port
treeos --port 3000
# Or find what's using port 8080
sudo lsof -i :8080
Permission Denied
If you get Podman permission errors run:
podman info
Review the reported configuration issues. On macOS, ensure the Podman machine is running:
podman machine start
Can't Connect to Podman
Ensure Podman is running:
# Check Podman status
systemctl status podman
# Start Podman if needed
sudo systemctl start podman
Getting Help
If you encounter issues:
- Check the GitHub Issues
- Review the logs: OnTree outputs detailed logs to help diagnose problems
- Join the community discussions on GitHub