Get started

Start here

Get started

Start your Oh My Job server with Docker Compose. Then choose how to bring your work in: schedule commands through a Linux agent, or monitor existing work over HTTP.

1. Start the server

Create a directory for Oh My Job and save the following as compose.yml:

services:
    ohmyjob:
        image: ghcr.io/ohmyjob/server:latest
        restart: unless-stopped
        ports:
            - '8080:8080'
        volumes:
            - ./data:/data
        environment:
            APP_URL: https://jobs.home.example
            FRANKENPHP_NUM_THREADS: 32

Replace APP_URL with the address your browser and agents will use to reach the server. The example HTTPS address assumes a reverse proxy; see the reverse proxy reference. For a local trial on a trusted network, use your server’s reachable address and port, such as http://192.168.1.10:8080.

docker compose up -d

The server initializes its database and application key inside ./data. Keep this directory: it contains your jobs, run history, output, and encryption key.

2. Create your administrator account

Open the address you configured. On the first visit, Oh My Job asks you to create an administrator account. Use a password of at least twelve characters.

Choose how to bring work in

To keep work in its existing scheduler, follow Monitor existing work. That path needs no agent. To have Oh My Job execute commands, continue below.

3. Add a machine

In the server, open Machines → Add Machine. Copy the enrollment command shown there and run it on the Linux machine that will execute your jobs. It looks like this:

curl -fsSL https://ohmyjob.sh/install.sh | sudo sh -s -- \
  --server https://jobs.home.example --token omj_enroll_xxxxx

Use the actual command from your server; the token above is a placeholder. Enrollment tokens expire after fifteen minutes and can only be used once.

The installer downloads the agent, verifies its checksum, creates its service user, and starts its systemd service. The machine should appear connected in the server.

omj-agent doctor

The agent supports Linux on amd64 and arm64. The installer assumes systemd. See agent setup for alternatives and troubleshooting.

4. Schedule a first job

Create a job on your connected machine. Start with a command that is easy to verify:

printf 'Hello from Oh My Job\n'

Set a schedule, save the job, and trigger a manual run from its page. Open the run to see the output and exit status. A successful run exits with code 0.

You now have a complete loop: a job definition, an execution on your machine, and a recorded result. Continue with Schedule a command to bring in real work, then Inspect runs to understand its history.

Next steps

Something unclear? Open an issue