<!-- Generated from the canonical OpenPost public page. Do not edit this build artifact. -->

Title: Install from a binary
Description: Run OpenPost as a single Go binary with systemd, without Docker.
Canonical: https://docs.openpo.st/self-hosting/binary
Source: [https://docs.openpo.st/self-hosting/binary](https://docs.openpo.st/self-hosting/binary)

# Install from a binary

OpenPost release binaries include the web app, API, and worker. Use one when you want to run OpenPost without a container runtime. Releases support Linux x86_64, macOS Apple Silicon, and Windows x86_64.

## Before you start

- Choose stable, private paths for the database, media, and `.env` file.
- Put OpenPost behind HTTPS before connecting social accounts.
- Run the binary as a service so it starts again after a reboot.

## Install

1. Download the asset for your platform from [GitHub Releases](https://github.com/getopenpost/openpost/releases).
2. Create a private `.env` with the [binary environment template](https://github.com/getopenpost/openpost/blob/main/docs/reference/installation/binary.md#2-create-env). Set stable database and media paths, the three public URLs, and two independent secrets.
3. Make the binary executable on Linux or macOS, then start it from the directory that contains `.env`. With no role argument, OpenPost runs migrations, serves HTTP, and processes background jobs.
4. Install the [systemd unit](https://github.com/getopenpost/openpost/blob/main/docs/reference/installation/binary.md#6-run-it-as-a-service) on Linux, or configure a Windows service wrapper. Keep its working directory beside `.env`.
5. Put a [reverse proxy](https://docs.openpo.st/self-hosting/reverse-proxy) in front of port `8080`, open the app, and create the first account. It becomes the instance administrator.

Larger deployments can run `migrate` once, then start separate `web` and `worker` processes from the same release and configuration. The [binary reference](https://github.com/getopenpost/openpost/blob/main/docs/reference/installation/binary.md#5-run-it) covers these roles.

## Updates and backups

Back up the database, media directory, and `.env` together. Stop the service, replace the binary, restore its ownership and permissions, then start the service and check `/api/v1/ready`. A rollback may also require the backup made for the previous version because database migrations are not always backward compatible.

## Next steps

- [Configure integrations](https://docs.openpo.st/self-hosting/integrations) for your social platforms.
- [Back up your instance](https://docs.openpo.st/self-hosting/maintenance) before relying on it for scheduled posts.
