# Scripts Directory This folder contains utility scripts for database management, event management, Docker builds, and LXC container deployment. ## Database Management ### Database Management Tool (manage-db.ts) This is a consolidated database management tool that handles all database-related operations. It combines the functionality of the previous separate scripts into a single, more intelligent script that can check, fix, and initialize the database as needed. #### Features - **Check Mode**: Validates the existence and integrity of the database - **Init Mode**: Creates the database only if it doesn't already exist - **Fix Mode**: Corrects database file location issues - **Reset Users Mode**: Removes all users and their data - **Auto Mode**: Automatically checks, fixes, and initializes the database if needed #### Running the Database Management Tool You can execute the database management tool using your package manager with various commands: ```bash # Checks database status (default action if no command is specified) bun run manage-db # Check database status bun run check-db # Initialize the database (only if it doesn't exist) bun run init-db # Fix database location issues bun run fix-db # Automatic check, fix, and initialize if needed bun run db-auto # Reset all users (for testing signup flow) bun run reset-users # Remove database files completely bun run cleanup-db # Complete setup (install dependencies and initialize database) bun run setup # Start development server with a fresh database bun run dev:clean # Start production server with a fresh database bun run start:fresh ``` #### Database File Location The database file should be located in the `./data/gitea-mirror.db` directory. If the file is found in the root directory, the fix mode will move it to the correct location. ## Event Management The following scripts help manage events in the SQLite database: ### Event Inspection (check-events.ts) Displays all events currently stored in the database. ```bash bun scripts/check-events.ts ``` ### Event Cleanup (cleanup-events.ts) Removes old events from the database to prevent it from growing too large. ```bash # Remove events older than 7 days (default) bun scripts/cleanup-events.ts # Remove events older than X days bun scripts/cleanup-events.ts 14 ``` This script can be scheduled to run periodically (e.g., daily) using cron or another scheduler. ### Mark Events as Read (mark-events-read.ts) Marks all unread events as read. ```bash bun scripts/mark-events-read.ts ``` ### Make Events Appear Older (make-events-old.ts) For testing purposes, this script modifies event timestamps to make them appear older. ```bash bun scripts/make-events-old.ts ``` ## Deployment Scripts ### Docker Deployment - **build-docker.sh**: Builds the Docker image for the application - **docker-diagnostics.sh**: Provides diagnostic information for Docker deployments ### LXC Container Deployment Two scripts are provided for deploying Gitea Mirror in LXC containers: 1. **gitea-mirror-lxc-proxmox.sh**: For online deployment on a Proxmox VE host - Pulls everything from GitHub - Creates a privileged container with the application - Sets up systemd service 2. **gitea-mirror-lxc-local.sh**: For offline/LAN-only deployment on a developer laptop - Pushes your local checkout + Bun ZIP to the container - Useful for testing without internet access For detailed instructions on LXC deployment, see [README-lxc.md](./README-lxc.md).