feat: switch FISTO to dolphin-mistral with dolphin-phi fallback
Benchmarked uncensored models for the gregtime FISTO bot. dolphin-mistral produces the best uncensored creative content, dolphin-phi is faster fallback. Added OLLAMA_NUM_PREDICT env var (300) and bumped image to 3.3.0. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
17
CLAUDE.md
17
CLAUDE.md
@@ -9,7 +9,7 @@ This is a home infrastructure deployment repository using Ansible for automated
|
|||||||
## Development Commands
|
## Development Commands
|
||||||
|
|
||||||
### Core Commands
|
### Core Commands
|
||||||
- `make` or `make lint` - Run linting (yamllint + ansible-lint) on all YAML files
|
- `make` or `make lint` - Run yamllint on all YAML files. Output may only show "Running yamllint..." and "Done." with no errors listed — this means linting passed. Do NOT run yamllint or ansible-lint manually; `make lint` is the only lint step needed.
|
||||||
- `make deploy` - Deploy all configurations to the home server
|
- `make deploy` - Deploy all configurations to the home server
|
||||||
- `make deploy TAGS=sometag` - Deploy only specific tagged tasks
|
- `make deploy TAGS=sometag` - Deploy only specific tagged tasks
|
||||||
- `make deploy TARGET=specific-host` - Deploy to specific host instead of all
|
- `make deploy TARGET=specific-host` - Deploy to specific host instead of all
|
||||||
@@ -96,9 +96,22 @@ Tasks are tagged by service/component for selective deployment:
|
|||||||
|
|
||||||
## Target Environment
|
## Target Environment
|
||||||
|
|
||||||
- Single target host: `home.bdebyl.net`
|
- Single target host: `home.debyl.io`
|
||||||
- OS: Fedora (ansible_user: fedora)
|
- OS: Fedora (ansible_user: fedora)
|
||||||
- Container runtime: Podman
|
- Container runtime: Podman
|
||||||
- Web server: Caddy with automatic HTTPS and built-in security (replaced nginx + ModSecurity)
|
- Web server: Caddy with automatic HTTPS and built-in security (replaced nginx + ModSecurity)
|
||||||
- All services accessible via HTTPS with automatic certificate renewal
|
- All services accessible via HTTPS with automatic certificate renewal
|
||||||
- ~~CI/CD: Drone CI infrastructure completely decommissioned~~
|
- ~~CI/CD: Drone CI infrastructure completely decommissioned~~
|
||||||
|
|
||||||
|
### Remote SSH Commands for Service Users
|
||||||
|
|
||||||
|
The `podman` user (and other service users) have `/bin/nologin` as their shell. To run commands as these users via SSH:
|
||||||
|
|
||||||
|
- **One-off commands**: `sudo -H -u podman bash -c 'command here'`
|
||||||
|
- **Interactive shell**: `sudo -H -u podman bash -c 'cd; bash'`
|
||||||
|
- **systemctl --user** requires `XDG_RUNTIME_DIR`:
|
||||||
|
```bash
|
||||||
|
sudo -H -u podman bash -c 'export XDG_RUNTIME_DIR=/run/user/$(id -u); systemctl --user <action> <service>'
|
||||||
|
```
|
||||||
|
|
||||||
|
Podman is a user-specific (rootless) container runtime, not a system service like Docker. The user context matters for all podman and systemctl --user operations. The default SSH user (`fedora`) has sudo access and can run commands directly.
|
||||||
1
Makefile
1
Makefile
@@ -70,6 +70,7 @@ vault: ${ANSIBLE_VAULT} ${VAULT_FILE}
|
|||||||
lint: ${LINT_YAML} ${SKIP_FILE}
|
lint: ${LINT_YAML} ${SKIP_FILE}
|
||||||
@printf "Running yamllint...\n"
|
@printf "Running yamllint...\n"
|
||||||
-@${LINT_YAML} ${YAML_FILES}
|
-@${LINT_YAML} ${YAML_FILES}
|
||||||
|
@printf "Done.\n"
|
||||||
|
|
||||||
# Git-crypt management
|
# Git-crypt management
|
||||||
git-crypt-backup:
|
git-crypt-backup:
|
||||||
|
|||||||
6
ansible/roles/ollama/defaults/main.yml
Normal file
6
ansible/roles/ollama/defaults/main.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
ollama_models:
|
||||||
|
- dolphin-phi
|
||||||
|
- dolphin-mistral
|
||||||
|
ollama_host: "127.0.0.1"
|
||||||
|
ollama_port: 11434
|
||||||
@@ -40,8 +40,12 @@
|
|||||||
- host
|
- host
|
||||||
env:
|
env:
|
||||||
TZ: America/New_York
|
TZ: America/New_York
|
||||||
# Gemini AI for @bot ask command
|
# Ollama + SearXNG for FISTO AI responses
|
||||||
GEMINI_API_KEY: "{{ gemini_api_key }}"
|
OLLAMA_HOST: "http://127.0.0.1:11434"
|
||||||
|
OLLAMA_MODEL: "dolphin-mistral"
|
||||||
|
OLLAMA_FALLBACK_MODEL: "dolphin-phi"
|
||||||
|
OLLAMA_NUM_PREDICT: "300"
|
||||||
|
SEARXNG_URL: "http://127.0.0.1:8080"
|
||||||
# Zomboid RCON configuration for Discord restart command
|
# Zomboid RCON configuration for Discord restart command
|
||||||
ZOMBOID_RCON_HOST: "127.0.0.1"
|
ZOMBOID_RCON_HOST: "127.0.0.1"
|
||||||
ZOMBOID_RCON_PORT: "{{ zomboid_rcon_port }}"
|
ZOMBOID_RCON_PORT: "{{ zomboid_rcon_port }}"
|
||||||
|
|||||||
@@ -96,12 +96,18 @@
|
|||||||
image: docker.io/graylog/graylog:7.0.1
|
image: docker.io/graylog/graylog:7.0.1
|
||||||
tags: debyltech, graylog
|
tags: debyltech, graylog
|
||||||
|
|
||||||
|
- import_tasks: containers/home/searxng.yml
|
||||||
|
vars:
|
||||||
|
image: docker.io/searxng/searxng:latest
|
||||||
|
tags: searxng
|
||||||
|
|
||||||
- import_tasks: containers/home/gregtime.yml
|
- import_tasks: containers/home/gregtime.yml
|
||||||
vars:
|
vars:
|
||||||
image: localhost/greg-time-bot:3.0.2
|
image: localhost/greg-time-bot:3.3.0
|
||||||
tags: gregtime
|
tags: gregtime
|
||||||
|
|
||||||
- import_tasks: containers/home/zomboid.yml
|
- import_tasks: containers/home/zomboid.yml
|
||||||
vars:
|
vars:
|
||||||
image: docker.io/cm2network/steamcmd:root
|
image: docker.io/cm2network/steamcmd:root
|
||||||
tags: zomboid
|
tags: zomboid
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user