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>
91 lines
1.5 KiB
Markdown
91 lines
1.5 KiB
Markdown
# Installation
|
|
|
|
## Prerequisites
|
|
|
|
- Python 3.11+
|
|
- git
|
|
|
|
For container deployment:
|
|
- podman
|
|
- podman-compose
|
|
|
|
## Bare Metal
|
|
|
|
```bash
|
|
cd ~/git/derp
|
|
make install
|
|
```
|
|
|
|
This creates a `.venv`, installs derp in editable mode, and adds dev tools.
|
|
|
|
### Symlink
|
|
|
|
```bash
|
|
make link
|
|
```
|
|
|
|
Installs `derp` to `~/.local/bin/`. Verify:
|
|
|
|
```bash
|
|
which derp
|
|
derp --version
|
|
```
|
|
|
|
### Manual Install
|
|
|
|
```bash
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -e .
|
|
```
|
|
|
|
## Container (Podman)
|
|
|
|
### With podman-compose
|
|
|
|
```bash
|
|
cp config/derp.toml.example config/derp.toml
|
|
# Edit config/derp.toml
|
|
make up
|
|
```
|
|
|
|
### Manual
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
cp config/derp.toml.example config/derp.toml
|
|
```
|
|
|
|
Config search order:
|
|
|
|
1. Path given via `--config`
|
|
2. `./config/derp.toml`
|
|
3. `~/.config/derp/derp.toml`
|
|
4. Built-in defaults
|
|
|
|
## Verification
|
|
|
|
```bash
|
|
derp --version # Check install
|
|
make test # Run test suite
|
|
make lint # Lint check
|
|
```
|