diff --git a/mint.json b/mint.json index 291b4832..5a101da1 100644 --- a/mint.json +++ b/mint.json @@ -72,7 +72,8 @@ "self-hosting/methods/kubernetes", "self-hosting/methods/coolify", "self-hosting/methods/portainer", - "self-hosting/methods/airgapped-edition" + "self-hosting/methods/airgapped-edition", + "self-hosting/methods/podman-quadlets" ] }, { diff --git a/self-hosting/methods/podman-quadlets.mdx b/self-hosting/methods/podman-quadlets.mdx new file mode 100644 index 00000000..4c41a9c8 --- /dev/null +++ b/self-hosting/methods/podman-quadlets.mdx @@ -0,0 +1,131 @@ +--- +title: Deploy Plane with Podman Quadlets • Commercial Edition +sidebarTitle: Podman Quadlets +--- + +This guide shows you the steps to deploy a self-hosted instance of Plane using Podman Quadlets. + +## Prerequisites +Before we start, make sure you've got these covered: + +- A non-root user account with `systemd --user support` (most modern Linux setups have this) +- Podman version **4.4 or higher** + +## Set up Podman +1. Add the Podman repository. + ```bash + echo 'deb http://download.opensuse.org/repositories/home:/alvistack/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/home:alvistack.list + ``` + +2. Add the GPG key. + ```bash + curl -fsSL https://download.opensuse.org/repositories/home:alvistack/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_alvistack.gpg > /dev/null + ``` + +3. Refresh your package lists. + ```bash + sudo apt update + ``` + +4. Install Podman and its dependencies. + ```bash + sudo apt install -y podman uidmap netavark passt + ``` + + The `uidmap` package handles user namespace mapping, `netavark` takes care of networking, and `passt` helps with network connectivity. + +5. Download and extract Podman Quadlets. + ```bash + tar -xzf podman-quadlets.tar.gz + cd podman-quadlets + ``` + + The directory contains an `install.sh` script that will handle the installation and configuration. + +## Install Plane + +The installation script sets up Plane and configures all required services. You have two options: + +### Without sudo access + ```bash + ./install.sh --domain your-domain.com --base-dir /your/custom/path + ``` + This installs Plane in your specified directory, which is useful if you want to maintain control over the installation location. + +### With sudo access + ```bash + ./install.sh --domain your-domain.com + ``` + This installs Plane in `/opt/plane`, which is a standard system location. + + +Systemd configurations are installed in `~/.config/containers/systemd/` + + +## Start Plane + + +**Important** +Note that you should run these commands without `sudo`. + + +1. Reload systemd to recognize new configurations. + ```bash + systemctl --user daemon-reload + ``` + +2. Start the network service. + ```bash + systemctl --user start plane-nw-network.service + ``` + +3. Start core dependencies. + ```bash + systemctl --user start plane-{db,redis,mq,minio}.service + ``` + +4. Start backend services. + ```bash + systemctl --user start {api,worker,beat-worker,migrator,monitor}.service + ``` + +5. Start frontend services. + ```bash + systemctl --user start {web,space,admin,live,proxy}.service + ``` + +The startup sequence is important: network first, then dependencies, followed by backend services, and finally frontend services. + +### Verify service status +Check that all services are running correctly: + +1. Check network status. + ```bash + systemctl --user status plane-nw-network.service + ``` + +2. Check core dependencies. + ```bash + systemctl --user status plane-{db,redis,mq,minio}.service + ``` + +3. Check backend services. + ```bash + systemctl --user status {api,worker,beat-worker,migrator,monitor}.service + ``` + +4. Check frontend services. + ```bash + systemctl --user status {web,space,admin,live,proxy}.service + ``` + +Your Plane installation should now be running successfully with Podman Quadlets. This setup provides automatic service restart capabilities and standard systemd management commands for maintaining your installation. + +## Troubleshoot + +To debug service issues, examine the logs using: + ```bash + journalctl --user -u --no-pager + ``` + +The logs will provide detailed information about any configuration issues or errors that may occur.