Install
The easiest way to run oneloop is with Docker Compose. You can also build it from source. Either way, oneloop starts at http://localhost:8080, and only your own computer can open it. To give your team access, continue with Production setup afterwards.
With Docker
You need Docker with Compose. Check that it works with docker compose version.
Create a folder, for example oneloop, and save this file in it as
compose.yaml:
# oneloop with Docker Compose.
# Guide: https://code19m.github.io/oneloop/install.html
name: oneloop
services:
oneloop:
image: ghcr.io/code19m/oneloop:0.1.0-rc.9
restart: unless-stopped
stop_grace_period: 35s
ports:
- "127.0.0.1:8080:8080"
environment:
ONELOOP_PUBLIC_URL: http://localhost:8080
ONELOOP_TIMEZONE: UTC # Your team's timezone, for example Europe/Berlin
volumes:
- oneloop-data:/data
volumes:
oneloop-data:
name: oneloop-data
Or download the file:
curl -fsSLO https://raw.githubusercontent.com/code19m/oneloop/v0.1.0-rc.9/deploy/compose.yaml
Run the next commands in that folder. First, create the database:
docker compose run --rm oneloop db migrate
oneloop never creates or upgrades its database by itself. You run db migrate
now, and again after each upgrade.
Create your admin account. Use your own username instead of admin, and type a
password of at least 5 characters when asked:
docker compose run --rm oneloop user add admin --admin --name "Your Name"
Start oneloop:
docker compose up -d
oneloop now runs in the background, and Docker starts it again after a crash or
a reboot. To stop it, run docker compose down. Your data stays in the
oneloop-data volume. If something goes wrong, docker compose logs oneloop
shows the reason.
Continue with First steps.
From source
You need Linux or macOS, Rust 1.92 or newer, and a C compiler, because oneloop builds its own copy of SQLite. For knowledge bases, the server also needs Git 2.31 or later and an SSH client.
Build and install a release. This takes a few minutes and puts oneloop in
~/.cargo/bin:
cargo install --git https://github.com/code19m/oneloop --tag v0.1.0-rc.9 --locked
You can choose another tag from the
releases. Without --tag, you
get the unreleased code from main.
Set the data folder and the address you will open. oneloop doesn’t read .env
files, so set these in your shell or service manager:
export ONELOOP_DATA_DIR="$HOME/oneloop-data"
export ONELOOP_PUBLIC_URL=http://localhost:8080
Create the database and your admin account, then start the server:
oneloop db migrate
oneloop user add admin --admin --name "Your Name"
oneloop serve
The server runs until you press Ctrl+C. Run every oneloop command with the
same ONELOOP_DATA_DIR as the server. Otherwise the command works on a
different, empty instance.
First steps
- Open http://localhost:8080 and sign in with your admin account.
- Choose Create project. Enter a name and a task prefix of 2 to 4 letters
or digits, such as
APP. Tasks in the project get IDs likeAPP-001.
If oneloop runs on a remote server, open an SSH tunnel with
ssh -L 8080:localhost:8080 you@your-server, and use the same address.
Where to go next:
- Learn the Roadmap and the Board in the User guide.
- Add your teammates with the Admin guide.
- Set up HTTPS and start oneloop at boot with Production setup.
- Protect your data with Backups and upgrades.