Golang application that converts any Lichess game to an animated GIF with a modern web interface.
Try it out at https://gif.chesstools.org/.
- Web Interface: User-friendly HTML form for easy GIF generation
- Board Flipping: Option to view games from Black's perspective
- Responsive Design: Works on desktop and mobile devices
- Fast Processing: Optimized for quick GIF generation
- Docker Ready: Containerized for easy deployment
- Heroku Compatible: Deploy to Heroku with one command
- API Endpoints: RESTful API for programmatic access
- Web Interface: Access the modern web UI at your deployed instance
- API Access: Use RESTful endpoints for integration
# Build for production
docker build -t giflichess:latest .
# Run in production
docker run -d -p 8080:8080 --name giflichess-prod giflichess:latest serve
# Or with docker-compose
docker-compose up -dThis application is configured for easy Heroku deployment using heroku.yml:
-
Prerequisites:
# Install Heroku CLI # Login to Heroku heroku login
-
Deploy:
# Create Heroku app (if not exists) heroku create your-app-name # Deploy using Git git push heroku main # Open your deployed app heroku open
-
View logs:
heroku logs --tail
Build and run the server from the repo root (working directory must contain ./static; templates ship inside the binary):
go build -o giflichess .
./giflichess serve --port 8080 --concurrency 10
# or
go run main.go serve --port 8080 --concurrency 10Override static files directory if needed:
GIFCHESS_STATIC_DIR=/path/to/static ./giflichess serve --port 8080- Home HTML:
server/templates/index.gohtmlcomposespartials/nav.gohtmlandpartials/footer.gohtml({{template "nav" .}}, etc.). - Chrome: Edit nav/footer in
server/templates/partials/only. There is no symlink or vendoredchesstools-uitree; everything understatic/ships in this repository. - Assets:
static/chesstools.svg(logo),static/css/(theme.css,theme-root.css),static/js/(tailwind-shell.js,shell.js). Served at/chesstools.svg,/css/*, and/js/*.
