Link Shortener — FAS @ UniTN
Self-hosted URL shortener with a production-grade observability stack
What is this project?
A self-hosted link shortener built as the group project for the System Administration Fundamentals course at UniTN. The Flask application exposes a REST API (documented with Swagger/OpenAPI) to create and resolve short links, persisting data in MySQL. The full stack runs on Docker Compose and can be deployed to a remote server via Ansible playbooks.
Observability Stack
The primary course focus was building and operating a production-grade observability stack alongside the application itself — not just shipping the app, but being able to see it run.
- Prometheus scrapes custom application metrics: request rate, P50/P95/P99 latency, total links created, total redirects.
- Loki + Promtail aggregate structured JSON application logs into a centralized, queryable log store.
- Grafana dashboards are auto-provisioned at stack startup — no manual configuration required.
- Sentry captures and groups application exceptions with full stack traces for rapid debugging.
Tech Stack
Deployment
The full stack — application, database, and observability pipeline — is defined in Docker Compose. A set of Ansible playbooks handles provisioning and deployment to a remote Linux server: a repeatable, infrastructure-as-code approach where the entire system state is described in version-controlled files.
Team
Group project developed with Ismaele De Giorgi.