🦈🏠🐜 Initial Commit 🐜🦈🏠

This commit is contained in:
2026-01-22 13:19:16 -05:00
commit ee98df8672
46 changed files with 4768 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202601221300-git
# @@Author : CasjaysDev
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
# @@License : MIT
# @@Copyright : Copyright 2026 CasjaysDev
# @@Created : Wed Jan 22 01:00:00 PM EST 2026
# @@File : 01-dockerd.sh
# @@Description : Init script to start Docker daemon (optional)
# @@Changelog : newScript
# @@TODO : Better documentation
# @@Other :
# @@Resource :
# @@Terminal App : no
# @@sudo/root : yes
# - - - - - - - - - - - - - - - - - - - - - - - - -
# shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2090,SC2115,SC2120,SC2155,SC2199,SC2229,SC2317,SC2329
# - - - - - - - - - - - - - - - - - - - - - - - - -
SCRIPT_NAME="$(basename "$0" 2>/dev/null)"
SCRIPT_PID_FILE="/run/init.d/$SCRIPT_NAME.pid"
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Set env/config variables
DOCKER_SOCKET="${DOCKER_SOCKET:-}"
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Check if Docker socket is already available from host
if [ -S "/var/run/docker.sock" ]; then
# Check if it's actually writable (not just mounted)
if docker info >/dev/null 2>&1; then
echo "Using existing Docker daemon from host socket"
exit 0
fi
fi
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Ensure we're running with proper privileges for DinD
if [ ! -w "/var/run" ]; then
echo "ERROR: Cannot start Docker-in-Docker daemon - insufficient privileges"
echo "This container requires --privileged flag for full Docker-in-Docker support"
echo "Example: docker run --privileged ..."
exit 1
fi
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Create required directories for Docker
mkdir -p /var/lib/docker 2>/dev/null || true
mkdir -p /var/run 2>/dev/null || true
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Check if Docker daemon is already running
if [ -f "/var/run/docker.pid" ]; then
pid=$(cat /var/run/docker.pid)
if kill -0 "$pid" 2>/dev/null; then
echo "Docker daemon is already running (PID: $pid)"
exit 0
fi
fi
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Write PID file
echo $$ >"$SCRIPT_PID_FILE"
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Start Docker daemon in DinD mode
echo "Starting Docker-in-Docker (DinD) daemon..."
echo "Full Docker environment initializing..."
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Start dockerd in the background
dockerd \
--host=unix:///var/run/docker.sock \
--storage-driver=vfs \
>/data/logs/dockerd.log 2>&1 &
DOCKERD_PID=$!
echo "$DOCKERD_PID" > /var/run/docker.pid
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Wait for Docker daemon to be ready
echo "Waiting for Docker daemon to be ready..."
for i in {1..30}; do
if docker info >/dev/null 2>&1; then
echo "Docker daemon is ready (PID: $DOCKERD_PID)"
exit 0
fi
sleep 1
done
# - - - - - - - - - - - - - - - - - - - - - - - - -
echo "ERROR: Docker daemon failed to start within 30 seconds"
exit 1
# - - - - - - - - - - - - - - - - - - - - - - - - -
# ex: ts=2 sw=2 et filetype=sh
+98
View File
@@ -0,0 +1,98 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202601221200-git
# @@Author : CasjaysDev
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
# @@License : MIT
# @@Copyright : Copyright 2026 CasjaysDev
# @@Created : Wed Jan 22 12:00:00 PM EST 2026
# @@File : 99-claude.sh
# @@Description : Init script to run Claude Code CLI
# @@Changelog : newScript
# @@TODO : Better documentation
# @@Other :
# @@Resource :
# @@Terminal App : no
# @@sudo/root : no
# - - - - - - - - - - - - - - - - - - - - - - - - -
# shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2090,SC2115,SC2120,SC2155,SC2199,SC2229,SC2317,SC2329
# - - - - - - - - - - - - - - - - - - - - - - - - -
SCRIPT_NAME="$(basename "$0" 2>/dev/null)"
SCRIPT_PID_FILE="/run/init.d/$SCRIPT_NAME.pid"
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Set env/config variables
CLAUDE_CONFIG_DIR="${CLAUDE_CONFIG_DIR:-/config/claude}"
CLAUDE_SETTINGS_FILE="${CLAUDE_SETTINGS_FILE:-$CLAUDE_CONFIG_DIR/settings.json}"
CLAUDE_WORK_DIR="${CLAUDE_WORK_DIR:-${PWD:-/app}}"
CLAUDE_ADDITIONAL_ARGS="${CLAUDE_ADDITIONAL_ARGS:-}"
ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY:-}"
# Tell init system this service doesn't use traditional PID tracking
SERVICE_USES_PID="no"
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Show authentication info
if [ -n "$ANTHROPIC_API_KEY" ]; then
echo "Using Anthropic API key from environment"
else
echo "No API key detected - Claude Code will prompt for authentication"
echo "You can use either:"
echo " 1. Anthropic API key: -e ANTHROPIC_API_KEY=your_key"
echo " 2. Claude Pro subscription: Claude Code will authenticate interactively"
fi
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Ensure claude config directory exists
mkdir -p "$CLAUDE_CONFIG_DIR" 2>/dev/null || true
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Initialize settings.json if it doesn't exist
if [ ! -f "$CLAUDE_SETTINGS_FILE" ]; then
if [ -f "/usr/local/share/template-files/config/claude/settings.json" ]; then
echo "Initializing Claude Code settings from template"
cp -f "/usr/local/share/template-files/config/claude/settings.json" "$CLAUDE_SETTINGS_FILE"
fi
fi
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Set up symlink for settings in home directory
mkdir -p "$HOME/.claude" 2>/dev/null || true
if [ ! -L "$HOME/.claude/settings.json" ]; then
ln -sf "$CLAUDE_SETTINGS_FILE" "$HOME/.claude/settings.json" 2>/dev/null || true
fi
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Change to working directory
cd "$CLAUDE_WORK_DIR" || exit 1
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Write PID file
echo $$ >"$SCRIPT_PID_FILE"
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Start Claude Code CLI
echo "Starting Claude Code CLI in persistent screen session..."
echo "Working directory: $CLAUDE_WORK_DIR"
echo "Settings: $CLAUDE_SETTINGS_FILE"
echo ""
echo "To attach to Claude session: docker exec -it <container> screen -r claude"
echo "To detach from session: Ctrl+A then D"
echo "To list sessions: screen -ls"
echo "---"
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Check if screen session already exists
if screen -list | grep -q "\.claude[[:space:]]"; then
echo "Claude screen session already running"
exit 0
else
# Start claude in a detached screen session named "claude"
screen -dmS claude bash -c "cd '$CLAUDE_WORK_DIR' && claude --dangerously-skip-permissions $CLAUDE_ADDITIONAL_ARGS"
# Wait a moment for screen to initialize
sleep 2
# Verify screen session was created
if screen -list | grep -q "\.claude[[:space:]]"; then
echo "Claude screen session started successfully"
echo "Attach with: screen -r claude"
exit 0
else
echo "Failed to start Claude screen session" >&2
exit 1
fi
fi
# - - - - - - - - - - - - - - - - - - - - - - - - -
# ex: ts=2 sw=2 et filetype=sh