- 🎯 Adversarial Adaptive Blind Watermarking: Context-aware multi-stage processing algorithms
- 🔒 Zero Trust Security: JWT authentication, rate limiting
- 🐳 Production-Ready Containers: Pre-built multi-arch Docker images for AMD64, ARM64, ARMv7 architectures
- 🖥️ Interactive Web UI: Intuitive browser-based interface
- 🔌 API Support: Supports API calls to provide processing support for low-powered devices.
- 📦 Format Support: JPEG, PNG, BMP, WebP with automatic format detection
- 🍎 Shortcut: Provides Apple Shortcut for rapidly invoking APIs to process images.
Live Demo: Demo Site
docker run -d \
--name antimg \
-p 8080:8080 \
-e JWT_SECRET="your-32-character-ultra-secure-key" \
-e ADMIN_PASSWORD="strong-password-here" \
--restart unless-stopped \
ghcr.io/neurocoda/antimg:latest# 1. Clone repository (optional for custom config)
git clone https://github.com/Neurocoda/Antimg.git && cd Antimg
# 2. Initialize environment
cp .env.example .env && nano .env # Configure security parameters
# 3. Launch stack
docker-compose up -d --build- Access
http://localhost:8080 - Upload source image (max 100MB)
- Select processing intensity (0.1 - 1.0)
- Download processed result
Authenticated administrators can manage API tokens (view/regenerate) through the web console post-login.
Apple Shortcut: https://www.icloud.com/shortcuts/778f82e2dd924a28a41ed0682ba5ff31
curl -X POST http://localhost:8080/api/attack \
-H "Authorization: Bearer API_TOKEN" \
-F "image=@input.jpg" \
-F "attackLevel=0.75" \
-o processed_image.jpgNote: The term
API_TOKENhere does not refer to JWT. For details, refer to the web interface after administrator login.
server {
listen 80;
server_name watermark.example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 200M;
}
# HTTPS
# listen 443 ssl;
# ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}| Variable | Description | Default | Required |
|---|---|---|---|
PORT |
Application port | 8080 | No |
JWT_SECRET |
32+ character JWT signing key | - | Yes |
ADMIN_USERNAME |
Administrator username | admin | No |
ADMIN_PASSWORD |
Administrator password | - | Yes |
- 🔐 JWT Authentication with Refresh Tokens
- 🛡️ Rate Limiting (API: 60 RPM, Processing: 20 RPM)
- 🕒 30s Processing Timeout
- 🔒 Non-root Container Execution
- 📦 Resource Isolation via Docker
- Go 1.21+
- Docker 23+
# Clone repository
git clone https://github.com/Neurocoda/Antimg.git
cd antimg
# Install dependencies
go mod download
# Set environment variables
export JWT_SECRET="your-development-jwt-secret-key-32-chars"
export ADMIN_PASSWORD="dev123456"
# Run application
go run main.goWe welcome contributions! Please follow these steps:
- Fork the repository
- Create feature branch (
git checkout -b feat/your-feature) - Commit changes with semantic messages
- Push to your fork (
git push origin feat/your-feature) - Create descriptive pull request
Distributed under MIT License. See LICENSE for full text.
- Bug Reports: GitHub Issues
- Discussion Forum: GitHub Discussions
- Live Demo: Demo Site
Neurocoda © 2025. Created with ❤️ & Go and AI Assistant.


