This commit is contained in:
2026-03-28 01:06:30 -05:00
parent 796c374d38
commit ecb708790d
35 changed files with 2347 additions and 37 deletions

103
README.md
View File

@@ -1,47 +1,76 @@
# Drop-In Agent Instruction Suite
# Memer
This repository is a portable markdown instruction pack for coding agents.
A self-hosted meme gallery with quick-share for text message and Telegram. Runs as a single Docker container, designed for Unraid.
Copy these files into another repository to give the agent:
- a root `AGENTS.md` entrypoint,
- a central skill index,
- category hubs for routing,
- specialized skill files for common software, docs, UX, marketing, and ideation tasks.
## Features
## Structure
- **Masonry gallery** — responsive, dark-themed grid
- **Upload** — drag & drop or click, supports JPG/PNG/GIF/WebP (up to 100 MB)
- **Tags** — organize with comma-separated tags, filter by tag in the gallery
- **Search** — full-text search across titles and descriptions
- **Quick share** — copy link, Telegram, SMS, or download from any card or detail view
- **Non-destructive rescale** — creates a child image at a new size without touching the original
- **Persistent** — SQLite database + image files on Docker volumes (easy to back up or export)
- `AGENTS.md` - base instructions and routing rules
- `DEPLOYMENT-PROFILE.md` - agent-readable prefilled deployment defaults
- `INSTALL.md` - copy and customization guide for other repositories
- `PROJECT-PROFILE-WORKBOOK.md` - one-time questionnaire for staging defaults
- `SKILLS.md` - canonical skill index
- `ROUTING-EXAMPLES.md` - representative prompt-to-skill routing examples
- `hubs/` - category-level routing guides
- `skills/` - specialized reusable skill files
## Quick Start
## Design Goals
```bash
cp .env.example .env
# Edit .env: set PUBLIC_URL to your domain
docker compose up --build -d
```
- Plain markdown only
- Cross-agent portability
- Implementation-first defaults
- On-demand skill loading instead of loading everything every session
- Context-efficient routing for large skill libraries
- Prefilled deployment defaults without per-install questioning
- Repo-local instructions take precedence over this bundle
Open `http://localhost:3000`.
## Intended Workflow
## Unraid Setup
1. The agent reads `AGENTS.md`.
2. The agent reads `DEPLOYMENT-PROFILE.md` when it is filled in.
3. The agent checks `SKILLS.md`.
4. The agent opens only the relevant hub and skill files for the task.
5. The agent combines multiple skills when the task spans several domains.
1. In Unraid, go to **Docker > Add Container** (or use Community Applications).
2. Use the image `memer:latest` (build locally or push to a registry).
3. Map port **3000** to your desired host port.
4. Add two path mappings:
- `/data/images``/mnt/user/appdata/memer/images`
- `/data/db``/mnt/user/appdata/memer/db`
5. Set environment variable `PUBLIC_URL` to `https://meme.alwisp.com`.
6. Set up your reverse proxy (Nginx Proxy Manager, Swag, etc.) to point `meme.alwisp.com` → port 3000.
## Core Categories
## Environment Variables
- Software development
- Debugging
- Documentation
- UI/UX
- Marketing
- Brainstorming
| Variable | Default | Description |
|---|---|---|
| `PUBLIC_URL` | `http://localhost:3000` | Used to build absolute share links |
| `PORT` | `3000` | Port the server listens on |
| `DATA_DIR` | `/data` | Root for images and DB inside the container |
## API
| Method | Path | Description |
|---|---|---|
| `GET` | `/api/memes` | List memes (`?tag=`, `?q=`, `?page=`, `?limit=`, `?parent_only=`) |
| `POST` | `/api/memes` | Upload meme (multipart: `file`, `title`, `description`, `tags`) |
| `GET` | `/api/memes/:id` | Get meme + children |
| `PUT` | `/api/memes/:id` | Update title/description/tags |
| `DELETE` | `/api/memes/:id` | Delete meme and all rescaled copies |
| `POST` | `/api/memes/:id/rescale` | Create rescaled child (`{ width?, height?, quality?, label? }`) |
| `GET` | `/api/tags` | List tags with counts |
| `DELETE` | `/api/tags/:id` | Delete tag |
## Local Development
```bash
# Terminal 1 — backend
cd backend && npm install && npm run dev
# Terminal 2 — frontend (proxies /api and /images to :3000)
cd frontend && npm install && npm run dev
```
Frontend dev server: `http://localhost:5173`
Backend API: `http://localhost:3000`
## Backup
All data lives in two directories:
- `memer-images` volume — the actual image files
- `memer-db` volume — `memer.db` (SQLite)
Copy these two directories to back up everything.