mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-11-08 06:08:05 +00:00
Add new web-app-mini-qr role
- Introduced new role 'web-app-mini-qr' to deploy the lightweight, self-hosted Mini-QR application. - Added dedicated subnet and localhost port mapping (8059) in group_vars. - Ensured proper dependency structure and run_once handling in MIG role. - Included upstream reference and CSP whitelist for temporary clarity.ms removal tracking. - Added README.md and meta information following the Infinito.Nexus web-app schema. See: https://chatgpt.com/share/68f890ab-5960-800f-85f8-ba30bd4350fe
This commit is contained in:
@@ -23,3 +23,5 @@
|
||||
- name: Build data (single async task)
|
||||
include_tasks: 02_build_data.yml
|
||||
when: MIG_BUILD_DATA | bool
|
||||
|
||||
- include_tasks: utils/run_once.yml
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
---
|
||||
- block:
|
||||
- include_tasks: 01_core.yml
|
||||
- include_tasks: utils/run_once.yml
|
||||
name: "Setup Meta Infinite Graph"
|
||||
- include_tasks: 01_core.yml
|
||||
when: run_once_web_app_mig is not defined
|
||||
|
||||
26
roles/web-app-mini-qr/README.md
Normal file
26
roles/web-app-mini-qr/README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Mini-QR
|
||||
|
||||
## Description
|
||||
|
||||
**Mini-QR** is a lightweight, self-hosted web application for generating QR codes instantly and privately.
|
||||
It provides a minimal and elegant interface to convert any text, URL, or message into a QR code — directly in your browser, without external tracking or dependencies.
|
||||
|
||||
## Overview
|
||||
|
||||
Mini-QR is designed for simplicity, privacy, and speed.
|
||||
It offers an ad-free interface that works entirely within your local environment, making it ideal for individuals, organizations, and educational institutions that value data sovereignty.
|
||||
The app runs as a single Docker container and requires no database or backend setup, enabling secure and frictionless QR generation anywhere.
|
||||
|
||||
## Features
|
||||
|
||||
- **Instant QR code creation** — simply type or paste your content.
|
||||
- **Privacy-friendly** — all generation happens client-side; no data leaves your server.
|
||||
- **Open Source** — fully auditable and modifiable for custom integrations.
|
||||
- **Responsive Design** — optimized for both desktop and mobile devices.
|
||||
- **Docker-ready** — can be deployed in seconds using the official image.
|
||||
|
||||
## Further Resources
|
||||
|
||||
- 🧩 Upstream project: [lyqht/mini-qr](https://github.com/lyqht/mini-qr)
|
||||
- 📦 Upstream Dockerfile: [View on GitHub](https://github.com/lyqht/mini-qr/blob/main/Dockerfile)
|
||||
- 🌐 Docker Image: `ghcr.io/lyqht/mini-qr:latest`
|
||||
2
roles/web-app-mini-qr/TODO.md
Normal file
2
roles/web-app-mini-qr/TODO.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# To-dos
|
||||
- Remove clarity.ms
|
||||
37
roles/web-app-mini-qr/config/main.yml
Normal file
37
roles/web-app-mini-qr/config/main.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
docker:
|
||||
services:
|
||||
redis:
|
||||
enabled: false
|
||||
database:
|
||||
enabled: false
|
||||
features:
|
||||
matomo: true
|
||||
css: true
|
||||
desktop: true
|
||||
logout: false
|
||||
server:
|
||||
csp:
|
||||
whitelist:
|
||||
script-src-elem:
|
||||
# Propably some tracking code
|
||||
# Anyhow implemented to pass CSP checks
|
||||
# @todo Remove
|
||||
- https://www.clarity.ms/
|
||||
- https://scripts.clarity.ms/
|
||||
connect-src:
|
||||
- https://q.clarity.ms
|
||||
- https://n.clarity.ms
|
||||
style-src-elem: []
|
||||
font-src: []
|
||||
frame-ancestors: []
|
||||
flags:
|
||||
style-src:
|
||||
unsafe-inline: true
|
||||
script-src-elem:
|
||||
unsafe-inline: true
|
||||
script-src:
|
||||
unsafe-eval: true
|
||||
domains:
|
||||
canonical:
|
||||
- "qr.{{ PRIMARY_DOMAIN }}"
|
||||
aliases: []
|
||||
27
roles/web-app-mini-qr/meta/main.yml
Normal file
27
roles/web-app-mini-qr/meta/main.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: >
|
||||
Mini-QR is a minimalist, self-hosted web application that allows users to
|
||||
instantly generate QR codes in a privacy-friendly way.
|
||||
license: "Infinito.Nexus NonCommercial License"
|
||||
license_url: "https://s.infinito.nexus/license"
|
||||
company: |
|
||||
Kevin Veen-Birkenbach
|
||||
Consulting & Coaching Solutions
|
||||
https://www.veen.world
|
||||
galaxy_tags:
|
||||
- infinito
|
||||
- qr
|
||||
- webapp
|
||||
- privacy
|
||||
- utility
|
||||
- education
|
||||
- lightweight
|
||||
repository: "https://github.com/lyqht/mini-qr"
|
||||
issue_tracker_url: "https://github.com/lyqht/mini-qr/issues"
|
||||
documentation: "https://github.com/lyqht/mini-qr"
|
||||
logo:
|
||||
class: "fa-solid fa-qrcode"
|
||||
run_after: []
|
||||
|
||||
dependencies: []
|
||||
7
roles/web-app-mini-qr/tasks/01_core.yml
Normal file
7
roles/web-app-mini-qr/tasks/01_core.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
- name: "load docker, proxy for '{{ application_id }}'"
|
||||
include_role:
|
||||
name: sys-stk-full-stateless
|
||||
vars:
|
||||
docker_compose_flush_handlers: false
|
||||
|
||||
- include_tasks: utils/run_once.yml
|
||||
4
roles/web-app-mini-qr/tasks/main.yml
Normal file
4
roles/web-app-mini-qr/tasks/main.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
- include_tasks: 01_core.yml
|
||||
when: run_once_web_app_mini_qr is not defined
|
||||
|
||||
12
roles/web-app-mini-qr/templates/docker-compose.yml.j2
Normal file
12
roles/web-app-mini-qr/templates/docker-compose.yml.j2
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
{% include 'roles/docker-compose/templates/base.yml.j2' %}
|
||||
{% set container_port = 8080 %}
|
||||
{{ application_id | get_entity_name }}:
|
||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||
image: "{{ MINI_QR_IMAGE }}:{{ MINI_QR_VERSION }}"
|
||||
container_name: "{{ MINI_QR_CONTAINER }}"
|
||||
ports:
|
||||
- 127.0.0.1:{{ ports.localhost.http[application_id] }}:{{ container_port }}
|
||||
{% include 'roles/docker-container/templates/networks.yml.j2' %}
|
||||
|
||||
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||
12
roles/web-app-mini-qr/vars/main.yml
Normal file
12
roles/web-app-mini-qr/vars/main.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
# General
|
||||
application_id: web-app-mini-qr
|
||||
entity_name: "{{ application_id | get_entity_name }}"
|
||||
|
||||
# Docker
|
||||
docker_compose_flush_handlers: false
|
||||
docker_pull_git_repository: false
|
||||
|
||||
# Helper variables
|
||||
MINI_QR_IMAGE: "ghcr.io/lyqht/mini-qr"
|
||||
MINI_QR_VERSION: "latest"
|
||||
MINI_QR_CONTAINER: "{{ entity_name }}"
|
||||
Reference in New Issue
Block a user