Installing from GitHub Releases
This project publishes release artifacts on GitHub Releases.
Releases page: https://github.com/darkmusic/ai-forgot-these-cards/releases
Example release: https://github.com/darkmusic/ai-forgot-these-cards/releases/tag/v0.1.2
A typical release includes:
ai-forgot-these-cards-<version>-exec.war(runnable WAR; run withjava -jar)ai-forgot-these-cards-<version>.war(standard WAR; deploy to an external Tomcat)checksums.sha256(SHA-256 checksums for artifacts)
Verify downloads
Download the artifacts you want (for example via the GitHub UI).
Then verify checksums.
Linux:
macOS:
If checksums.sha256 contains multiple entries, the checker will validate all files that are present in the current directory.
Option A: Run the runnable WAR (*-exec.war)
Requirements
Java 17+ (required by Spring Boot 3)
A database:
PostgreSQL (default), or
SQLite single-file mode (optional)
SQLite single-file mode (simplest standalone)
This runs without Postgres.
Notes:
SQLITE_DB_PATHis optional; default is./db/cards.db.Ensure the directory is writable; the app will create the DB file if it doesn’t exist.
Postgres mode
Run with an existing Postgres instance.
Notes:
The schema is managed by Hibernate (
ddl-auto=update).If you want the app to listen on a different port, set
APP_SERVER_PORT.
Optional: AI configuration
Hosted provider (easy mode):
Local/remote OpenAI-compatible server (e.g. llama.cpp):
Option B: Deploy the standard WAR (*.war) to Tomcat
WAR deployment requirements
An external Tomcat 10+ (Jakarta / Servlet 6)
Java 17+
A database (Postgres or SQLite)
Deploy
Copy the WAR into Tomcat’s
webapps/directory.(Optional) If you want the app at
/instead of/<war-name>/, rename it toROOT.war.Configure environment variables for Tomcat.
On Linux/macOS, create or edit TOMCAT/bin/setenv.sh:
Then start Tomcat.
Verify
UI:
http://localhost:8080/(or Tomcat’s configured port)Swagger UI:
/swagger-ui/index.htmlActuator:
/actuator
Default admin credentials:
Username:
cardsPassword:
cards
Versioning tips
Prefer using a matching version across components (WAR, images, etc.).
Pin exact versions (e.g.
v0.1.2) for repeatable deployments.