CtrlK
BlogDocsLog inGet started
Tessl Logo

netalertx-idempotent-setup

Reprovision and reset the devcontainer environment. Use this when asked to re-run startup, reprovision, setup devcontainer, fix permissions, or reset runtime state.

65

Quality

77%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.github/skills/devcontainer-setup/SKILL.md
SKILL.md
Quality
Evals
Security

Devcontainer Setup

The setup script forcefully resets all runtime state (services, tmpfs ramdisks, symlinks, log files) unconditionally on every run. Persistent DB/config content under /data is the one exception - it's preserved by default; see step 7 below.

Command

/workspaces/NetAlertX/.devcontainer/scripts/setup.sh

What It Does

  1. Kills all services (php-fpm, nginx, crond, python3)
  2. Mounts tmpfs ramdisks for /tmp/log, /tmp/api, /tmp/run, /tmp/nginx
  3. Creates critical subdirectories
  4. Links /entrypoint.d and /app symlinks
  5. Creates /data, /data/config, /data/db directories
  6. Creates all log files
  7. Runs /entrypoint.sh to start services - by default this preserves existing DB/config content; entrypoint.d/25-first-run-db.sh and 20-first-run-config.sh only wipe them when ALWAYS_FRESH_INSTALL=true is set in the environment
  8. Writes version to .VERSION

When to Use

  • After modifying setup scripts
  • After container rebuild
  • When environment is in broken state
  • To pick up a database/config reset done another way (setup.sh itself won't reset them - see step 7)

Philosophy

Runtime state (services, tmpfs, symlinks, logs) has no conditional logic - everything is recreated unconditionally, every run. DB/config are the one deliberate exception, gated behind ALWAYS_FRESH_INSTALL. If something in runtime state doesn't work, run setup again.

Repository
netalertx/NetAlertX
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.