Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qurl

Open-source, self-hosted QR code generator. Register, design QR codes, download them as PNG/SVG, and point them wherever you want. Qurl codes are dynamic: they resolve through your own server, so targets, expiry, and special permissions stay under your control.

⚠️ Early development. Qurl is in active MVP development — see the roadmap. Things will change and break until the first release.

Features

  • Dynamic QR codes — a code points to your-host/r/<slug> and redirects from there, so you can change the target, expire it, or keep it permanent later.
  • QR designer — colors, logo, export as PNG and SVG.
  • vCard generator — build a digital business card and download the .vcf.
  • Landing pages — branded pages with configurable action buttons (save contact, call, email, website, …) instead of a bare redirect.
  • Accounts & roles — registration, login, and a premium tier for special rights (e.g. permanent codes).
  • Self-hosted & i18n — runs on your own infrastructure, German + English UI.

Tech stack

  • Backend: PHP / Symfony 7
  • Database: PostgreSQL + Doctrine ORM & Migrations
  • Frontend: Twig + Symfony UX (Turbo, Stimulus, Live Components) + Bootstrap
  • QR generation: endroid/qr-code (server-side)
  • Auth: Symfony Security (session-based, role-based permissions)
  • Deploy: Docker / Portainer (git-linked compose stack)

Roadmap

Planning and progress are public on the Qurl project board. The current scope is tracked under the MVP milestone.

Getting started

The application is still being scaffolded (see issues #1–#2). These steps describe the intended workflow.

Local development

git clone https://github.com/tom-schorn/Qurl.git
cd Qurl
cp .env.example .env.local   # adjust DB credentials etc.
docker compose up -d         # app + PostgreSQL

Self-hosting with Portainer

Qurl ships a compose.yaml in the repo root. In Portainer, create a Stack from a Git repository pointing at this repo and compose.yaml, then provide the required environment variables (database credentials, ADMIN_EMAIL, ADMIN_PASSWORD). The first start bootstraps the admin account from those variables.

See .env.example for all required variables.

Contributing

Contributions are welcome! Please read CONTRIBUTING.md and our Code of Conduct before opening an issue or pull request.

License

Qurl is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE. This means if you run a modified version as a network service, you must make your source changes available under the same license.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors