Halo

stack CMS / Web

Website and blogging platform with a rich editor, themes, plugins, comments and pages, run from a web console. This one runs on Postgres.

Install Halo

It isn't in the main Portainer Templates list yet, so use this one. Portainer takes one URL at a time, so it swaps out whatever list you had before.

In Portainer, head to Settings --> App Templates, paste this in as the URL and save.

https://raw.githubusercontent.com/NotAFlightRisk/portainer-templates-extras/main/templates.json
  1. Open App Templates and pick Halo.
  2. Fill in Database password. Everything else can stay as it is.
  3. Hit Deploy the stack, then open http://<your-server>:8091 in a browser.

Before you start

Set the database password before you deploy (openssl rand -hex 32 makes a good one), since the stack won't start without it. Then open http://<your-host>:8091 (or whichever port you picked) from the address you'll actually use, since the setup page saves it as the site's External URL. That page also creates the admin, and whoever reaches it first gets to, so do it straight away. The console is at /console. The sample post, About page, menu and category it starts with are in Chinese whatever language you pick, so rename or delete them there. Posts and settings live in Postgres, in the postgres-data volume, and uploads, themes and plugins in halo-data. Docs (in Chinese): docs.halo.run

Settings

What the Portainer form asks for. With compose they go in the .env file instead.

VariableWhat it's forDefault
HALO_DB_PASSWORDDatabase password (required) Generate one with: openssl rand -hex 32. Keep it the same when you redeploy, or Halo can't reach its database. Needs filling in
HALO_PORTHost port for the web UI 8091
HALO_TZTimezone Like Europe/London. Post dates on the site use it. UTC

Services

The containers this stack runs, with ports as they come out of the box.

ServiceImagePorts
halohalohub/halo:28091:8090
postgrespostgres:17-alpineInternal only

More apps