feat: add Flatnotes blueprint with TOTP authentication (#387)

* feat: add Flatnotes blueprint with TOTP authentication

Introduces a new blueprint for deploying Flatnotes with TOTP-based 2FA, including compose, template, and metadata files.

* feat: add Flatnotes self-hosted markdown note-taking app
This commit is contained in:
Jainil Prajapati
2025-09-26 08:06:48 +05:30
committed by GitHub
parent 149654a580
commit dd19067f60
7 changed files with 149 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
version: "3.8"
services:
flatnotes:
image: dullage/flatnotes:latest
restart: unless-stopped
environment:
PUID: ${PUID}
PGID: ${PGID}
FLATNOTES_AUTH_TYPE: "totp"
FLATNOTES_USERNAME: ${FLATNOTES_USERNAME}
FLATNOTES_PASSWORD: ${FLATNOTES_PASSWORD}
FLATNOTES_SECRET_KEY: ${FLATNOTES_SECRET_KEY}
FLATNOTES_TOTP_KEY: ${FLATNOTES_TOTP_KEY}
FLATNOTES_SESSION_EXPIRY_DAYS: ${FLATNOTES_SESSION_EXPIRY_DAYS}
FLATNOTES_PATH_PREFIX: ${FLATNOTES_PATH_PREFIX}
expose:
- 8080
volumes:
- flatnotes-data:/data
volumes:
flatnotes-data: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,28 @@
[variables]
main_domain = "${domain}"
username = "${username}"
password = "${password:16}"
secret_key = "${password:32}"
totp_key = "${password:32}"
[config]
[[config.domains]]
serviceName = "flatnotes"
port = 8080
host = "${main_domain}"
path = "/"
[config.env]
PUID = "1000"
PGID = "1000"
FLATNOTES_AUTH_TYPE = "totp"
FLATNOTES_USERNAME = "${username}"
FLATNOTES_PASSWORD = "${password}"
FLATNOTES_SECRET_KEY = "${secret_key}"
FLATNOTES_TOTP_KEY = "${totp_key}"
FLATNOTES_SESSION_EXPIRY_DAYS = "30"
FLATNOTES_PATH_PREFIX = ""
[[config.mounts]]
name = "flatnotes-data"
mountPath = "/data"

View File

@@ -0,0 +1,28 @@
version: "3.8"
services:
flatnotes:
image: dullage/flatnotes:latest
restart: unless-stopped
environment:
PUID: ${PUID}
PGID: ${PGID}
FLATNOTES_AUTH_TYPE: ${FLATNOTES_AUTH_TYPE}
FLATNOTES_USERNAME: ${FLATNOTES_USERNAME}
FLATNOTES_PASSWORD: ${FLATNOTES_PASSWORD}
FLATNOTES_SECRET_KEY: ${FLATNOTES_SECRET_KEY}
FLATNOTES_SESSION_EXPIRY_DAYS: ${FLATNOTES_SESSION_EXPIRY_DAYS}
FLATNOTES_TOTP_KEY: ${FLATNOTES_TOTP_KEY}
FLATNOTES_PATH_PREFIX: ${FLATNOTES_PATH_PREFIX}
FLATNOTES_QUICK_ACCESS_HIDE: ${FLATNOTES_QUICK_ACCESS_HIDE}
FLATNOTES_QUICK_ACCESS_TITLE: ${FLATNOTES_QUICK_ACCESS_TITLE}
FLATNOTES_QUICK_ACCESS_TERM: ${FLATNOTES_QUICK_ACCESS_TERM}
FLATNOTES_QUICK_ACCESS_SORT: ${FLATNOTES_QUICK_ACCESS_SORT}
FLATNOTES_QUICK_ACCESS_LIMIT: ${FLATNOTES_QUICK_ACCESS_LIMIT}
expose:
- 8080
volumes:
- flatnotes-data:/data
volumes:
flatnotes-data: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,32 @@
[variables]
main_domain = "${domain}"
username = "${username}"
password = "${password:16}"
secret_key = "${password:32}"
[config]
[[config.domains]]
serviceName = "flatnotes"
port = 8080
host = "${main_domain}"
path = "/"
[config.env]
PUID = "1000"
PGID = "1000"
FLATNOTES_AUTH_TYPE = "password"
FLATNOTES_USERNAME = "${username}"
FLATNOTES_PASSWORD = "${password}"
FLATNOTES_SECRET_KEY = "${secret_key}"
FLATNOTES_SESSION_EXPIRY_DAYS = "30"
FLATNOTES_TOTP_KEY = ""
FLATNOTES_PATH_PREFIX = ""
FLATNOTES_QUICK_ACCESS_HIDE = "false"
FLATNOTES_QUICK_ACCESS_TITLE = "RECENTLY MODIFIED"
FLATNOTES_QUICK_ACCESS_TERM = "*"
FLATNOTES_QUICK_ACCESS_SORT = "lastModified"
FLATNOTES_QUICK_ACCESS_LIMIT = "4"
[[config.mounts]]
name = "flatnotes-data"
mountPath = "/data"

View File

@@ -2003,6 +2003,44 @@
"ddos-guard"
]
},
{
"id": "flatnotes",
"name": "Flatnotes",
"version": "latest",
"description": "A self-hosted, modern note-taking web app that saves your notes as plain text Markdown files.",
"logo": "image.png",
"links": {
"github": "https://github.com/dullage/flatnotes",
"website": "https://flatnotes.io",
"docs": "https://github.com/dullage/flatnotes"
},
"tags": [
"notes",
"productivity",
"markdown",
"self-hosted"
]
},
{
"id": "flatnotes-totp",
"name": "Flatnotes (TOTP)",
"version": "latest",
"description": "Flatnotes with TOTP authentication enabled (username + password + one-time passcode).",
"logo": "image.png",
"links": {
"github": "https://github.com/dullage/flatnotes",
"website": "https://flatnotes.io",
"docs": "https://github.com/dullage/flatnotes"
},
"tags": [
"notes",
"productivity",
"markdown",
"self-hosted",
"totp",
"2fa"
]
},
{
"id": "flowise",
"name": "Flowise",