Bind-mount src/ and data/ alongside plugins/ and config so the container picks up code changes without rebuilding. Update Makefile targets, compose file, and INSTALL.md to match. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
Installation
Prerequisites
- Python 3.11+
- git
For container deployment:
- podman
- podman-compose
Bare Metal
cd ~/git/derp
make install
This creates a .venv, installs derp in editable mode, and adds dev tools.
Symlink
make link
Installs derp to ~/.local/bin/. Verify:
which derp
derp --version
Manual Install
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Container (Podman)
With podman-compose
cp config/derp.toml.example config/derp.toml
# Edit config/derp.toml
make up
Manual
podman build -t derp .
podman run -d --name derp \
-v ./src:/app/src:ro,Z \
-v ./plugins:/app/plugins:ro,Z \
-v ./config/derp.toml:/app/config/derp.toml:ro,Z \
-v ./data:/app/data:Z \
derp --verbose
The image contains only the Python runtime and compiled dependencies. Source
code, plugins, config, and data are bind-mounted at runtime. Code and plugin
edits on the host take effect on restart (or via !reload for plugins).
Only rebuild the image when adding or updating pip dependencies.
Configuration
Copy and edit the example config:
cp config/derp.toml.example config/derp.toml
Config search order:
- Path given via
--config ./config/derp.toml~/.config/derp/derp.toml- Built-in defaults
Verification
derp --version # Check install
make test # Run test suite
make lint # Lint check