build 1
This commit is contained in:
103
README.md
103
README.md
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user