Adding new templates (#247)
* Remove duplicate GitLab CI entry and add Link Stack entry to meta.json * Update Movary blueprint with simplified Docker Compose and environment configuration * Add OpenGist entry to meta.json * Add Snapp self-hosted screenshot sharing service entry to meta.json * Add CommaFeed feed reader entry to meta.json * Add ConvertX media conversion service entry to meta.json * Add MeTube YouTube downloader entry to meta.json * Add Pinchflat YouTube entry to meta.json * Add yt-dlp-webui entry to meta.json * Add FlareSolverr proxy service entry to meta.json * Add Neko virtual browser entry to meta.json * Add Omni-Tools entry to meta.json * Add OpenHands AI agents platform entry to meta.json * Add Web-Check website analyzer entry to meta.json * Add DumbDrop file sharing service entry to meta.json * Add DumbAssets entry to meta.json * Add DumbPad notepad service entry to meta.json * Add DumbBudget self-hosted budget tracking service entry to meta.json * Add Tianji web analytics and uptime monitoring service entry to meta.json * Add Directory Lister entry to meta.json * Add Grimoire bookmarking app entry to meta.json * Clean Up * Update Movary blueprint with environment variables and MySQL configuration
9
blueprints/commafeed/docker-compose.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
commafeed:
|
||||
image: athou/commafeed:latest-h2
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ../files/commafeed-data:/commafeed/data
|
||||
ports:
|
||||
- 8082
|
||||
7
blueprints/commafeed/logo.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<svg height='512' width='512' viewBox='0 0 6.5625 6.5625' xmlns='http://www.w3.org/2000/svg'>
|
||||
<rect fill='#f88a14' rx='0.7' ry='0.7' height='6.5625' width='6.5625' />
|
||||
<path d='m1.9761,1.5289c2.9002,0,2.9002,2.9101,2.9002,2.9101' fill='none' stroke='#FFF' stroke-linecap='round' stroke-width='0.78125' />
|
||||
<path d='m1.9688,2.875c1.5705-0.00908,1.5705,1.5639,1.5705,1.5639' fill='none' stroke='#FFF' stroke-linecap='round' stroke-width='0.78125' />
|
||||
<path d='m2.6503,4.4062c0,0.23366-0.10712,0.47418-0.24663,0.6537-0.1814,0.2333-0.5705,0.5618-0.6913,0.5653,0.0402-0.0662,0.263-0.5654,0.2563-0.5654-0.36423,0-0.6595-0.29265-0.6595-0.65365s0.29527-0.65365,0.6595-0.65365,0.68159,0.29265,0.68159,0.65365z' fill='#FFF' />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 776 B |
17
blueprints/commafeed/template.toml
Normal file
@@ -0,0 +1,17 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "commafeed"
|
||||
port = 8082
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
# No environment variables specified for CommaFeed; add if needed
|
||||
# Example: COMMAFEED_ADMIN_USER = "${username}"
|
||||
# Example: COMMAFEED_ADMIN_PASSWORD = "${password:32}"
|
||||
|
||||
[[config.mounts]]
|
||||
filePath = "/files/commafeed-data"
|
||||
content = ""
|
||||
19
blueprints/convertx/docker-compose.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
convertx:
|
||||
image: ghcr.io/c4illin/convertx
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3000
|
||||
environment:
|
||||
- JWT_SECRET=${JWT_SECRET}
|
||||
- ACCOUNT_REGISTRATION=${ACCOUNT_REGISTRATION}
|
||||
- HTTP_ALLOWED=${HTTP_ALLOWED}
|
||||
- ALLOW_UNAUTHENTICATED=${ALLOW_UNAUTHENTICATED}
|
||||
- AUTO_DELETE_EVERY_N_HOURS=${AUTO_DELETE_EVERY_N_HOURS}
|
||||
- WEBROOT=${WEBROOT}
|
||||
- FFMPEG_ARGS=${FFMPEG_ARGS}
|
||||
- HIDE_HISTORY=${HIDE_HISTORY}
|
||||
- LANGUAGE=${LANGUAGE}
|
||||
volumes:
|
||||
- ../files/data:/app/data
|
||||
BIN
blueprints/convertx/logo.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
33
blueprints/convertx/template.toml
Normal file
@@ -0,0 +1,33 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
jwt_secret = "${jwt:32}"
|
||||
account_registration = "false"
|
||||
http_allowed = "true"
|
||||
allow_unauthenticated = "false"
|
||||
auto_delete_every_n_hours = "24"
|
||||
webroot = ""
|
||||
ffmpeg_args = ""
|
||||
hide_history = "false"
|
||||
language = "en"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "convertx"
|
||||
port = 3000
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
JWT_SECRET = "${jwt_secret}"
|
||||
ACCOUNT_REGISTRATION = "${account_registration}"
|
||||
HTTP_ALLOWED = "${http_allowed}"
|
||||
ALLOW_UNAUTHENTICATED = "${allow_unauthenticated}"
|
||||
AUTO_DELETE_EVERY_N_HOURS = "${auto_delete_every_n_hours}"
|
||||
WEBROOT = "${webroot}"
|
||||
FFMPEG_ARGS = "${ffmpeg_args}"
|
||||
HIDE_HISTORY = "${hide_history}"
|
||||
LANGUAGE = "${language}"
|
||||
|
||||
[[config.mounts]]
|
||||
source = "../files/data"
|
||||
target = "/app/data"
|
||||
type = "bind"
|
||||
14
blueprints/directory-lister/docker-compose.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
services:
|
||||
directory-lister:
|
||||
image: directorylister/directorylister:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
# The internal port of the application.
|
||||
- 80
|
||||
volumes:
|
||||
# Mounts a persistent named volume to store directory data.
|
||||
- directory-lister-data:/data
|
||||
|
||||
volumes:
|
||||
# Defines the Docker-managed volume for data persistence.
|
||||
directory-lister-data: {}
|
||||
BIN
blueprints/directory-lister/logo.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
19
blueprints/directory-lister/template.toml
Normal file
@@ -0,0 +1,19 @@
|
||||
[variables]
|
||||
app_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "directory-lister" # Must match the service name in docker-compose.yml
|
||||
port = 80
|
||||
host = "${app_domain}"
|
||||
|
||||
[config.env]
|
||||
# See configuration docs for additional variables: https://www.directorylister.com/docs/configuration
|
||||
APP_LANGUAGE = "en"
|
||||
DISPLAY_READMES = "true"
|
||||
READMES_FIRST = "false"
|
||||
ZIP_DOWNLOADS = "true"
|
||||
TIMEZONE = "UTC"
|
||||
|
||||
|
||||
[[config.mounts]]
|
||||
12
blueprints/dumbassets/docker-compose.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
dumbassets:
|
||||
image: dumbwareio/dumbassets:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3000
|
||||
volumes:
|
||||
- dumbassets-data:/app/data
|
||||
|
||||
volumes:
|
||||
dumbassets-data: {}
|
||||
1
blueprints/dumbassets/logo.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="700" viewBox="410,175,520,520"><defs><clipPath id="clip-1"><rect x="426" y="185.5" width="500" height="500" id="clip-1" fill="none" stroke-width="1"/></clipPath><clipPath id="clip-2"><rect x="22.28453" y="-63.09825" transform="rotate(90) scale(12.93586,12.93586)" width="24" height="24" id="clip-2" fill="none"/></clipPath></defs><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="none" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g><g id="stage"><g id="layer1 1"><g clip-path="url(#clip-1)" id="Group 1"><circle cx="688.579" cy="444.165" r="219.498" id="Shape 1" fill="#fd96a9" stroke-width="1" opacity="0.2"/><path d="M673.527,194.641c-133.189,0 -241.476,108.289 -241.476,241.478c0,133.189 108.287,241.476 241.476,241.476c133.19,0 241.476,-108.287 241.476,-241.476c0,-133.189 -108.286,-241.478 -241.476,-241.478M673.527,633.827c-108.947,0 -197.614,-88.666 -197.614,-197.614c0,-108.947 88.667,-197.616 197.614,-197.616c108.947,0 197.614,88.575 197.614,197.616c0,108.948 -88.667,197.614 -197.614,197.614" id="CompoundPath 1" fill="#fd96a9" stroke-width="1"/><path d="" id="Path 1" fill="#ff4b91" stroke-width="4"/><path d="M117.65819,483.58962l-18.40732,-12.23549l92.77574,-132.16827l84.96726,-14.982l3.87044,21.95039l-75.62735,13.33512zM234.4318,603.29473l-116.53934,-81.6009l100.8393,-141.95213l98.9279,-17.44364l17.17848,97.4241zM265.8098,436.36088c8.82993,6.18365 20.97568,4.01969 27.16106,-4.80039c6.18266,-8.82975 4.04037,-20.97933 -4.78956,-27.16297c-8.83074,-6.18249 -20.98031,-4.04019 -27.16297,4.78956c-6.18347,8.83091 -4.03736,21.00215 4.79147,27.17381zM199.20946,498.13235l31.9765,-45.64004l-9.12649,-6.3913l-31.97731,45.64119zM204.68233,529.17054l44.75859,-63.89597l-9.12747,-6.39113l-44.75859,63.89597zM222.96068,541.95883l44.73519,-63.902l-9.12747,-6.39113l-44.73519,63.902z" id="CompoundPath 1" fill="#fd96a9" stroke-width="1"/></g><g clip-path="url(#clip-2)" id="Group 1" stroke-width="1"><path d="M537.28139,438.35153l-18.5759,-17.69626l132.6961,-132.38564h100.14947v25.87173h-89.14104zM646.64119,598.73038l-116.77205,-116.77205l143.88562,-141.94524h116.60389v114.83167zM716.15853,414.22614c8.84813,8.84813 23.16813,8.82226 32.01627,-0.01294c8.84813,-8.84813 8.84813,-23.16813 0,-32.01627c-8.84813,-8.84813 -23.16813,-8.84813 -32.01627,0c-8.84813,8.84813 -8.84813,23.19401 0,32.0292zM627.57373,471.4156l45.75415,-45.72828l-9.14566,-9.14566l-45.75415,45.72828zM627.57373,507.99822l64.04547,-64.01959l-9.14566,-9.14566l-64.04547,64.01959zM645.89091,526.30247l64.01959,-64.03253l-9.14566,-9.14566l-64.01959,64.03253z" id="CompoundPath 1" fill="#fd96a9"/></g></g></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
27
blueprints/dumbassets/template.toml
Normal file
@@ -0,0 +1,27 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
default_pin = "${password:4}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "dumbassets"
|
||||
port = 3000
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
NODE_ENV = "production"
|
||||
DEBUG = "false"
|
||||
SITE_TITLE = "DumbAssets"
|
||||
BASE_URL = "https://${main_domain}"
|
||||
DUMBASSETS_PIN = "${default_pin}"
|
||||
ALLOWED_ORIGINS = "*"
|
||||
DEMO_MODE = "false"
|
||||
APPRISE_URL = ""
|
||||
CURRENCY_CODE = "USD"
|
||||
CURRENCY_LOCALE = "en-US"
|
||||
|
||||
[[config.mounts]]
|
||||
serviceName = "dumbassets"
|
||||
type = "volume"
|
||||
source = "dumbassets-data"
|
||||
target = "/app/data"
|
||||
12
blueprints/dumbbudget/docker-compose.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
dumbbudget:
|
||||
image: dumbwareio/dumbbudget:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3000
|
||||
volumes:
|
||||
- dumbbudget-data:/app/data
|
||||
|
||||
volumes:
|
||||
dumbbudget-data: {}
|
||||
20
blueprints/dumbbudget/logo.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#50AD3D;enable-background:new ;}
|
||||
.st1{fill:#50AD3D;}
|
||||
</style>
|
||||
<g>
|
||||
<circle class="st0" cx="256" cy="256" r="232.7"/>
|
||||
<path class="st1" d="M256,512C114.8,512,0,397.2,0,256S114.8,0,256,0s256,114.8,256,256S397.2,512,256,512z M256,46.6
|
||||
c-115.5,0-209.5,94-209.5,209.5s94,209.5,209.5,209.5s209.5-94,209.5-209.5C465.5,140.5,371.5,46.6,256,46.6z"/>
|
||||
<path class="st1" d="M281.1,240.4c-11.2-4.7-52.5-11.2-52.5-29.3c0-13.3,15.4-17.2,24.7-17.2c8.4,0,18.5,2.7,23.9,8
|
||||
c3.4,3.2,4.8,5.6,5.9,8.9c1.4,3.8,2.3,8,7.6,8h27.5c6.5,0,8.1-1.2,8.1-8.3c0-30.4-23.9-47.6-51.1-53.5v-23.7c0-5.3-1.7-8.6-8.1-8.6
|
||||
h-21.9c-6.5,0-8.1,3.2-8.1,8.6V156c-29.2,5.6-53.6,23.9-53.6,57.1c0,37.5,26.1,49.4,54.4,58.8c23.9,8,48.8,8.3,48.8,24.8
|
||||
c0,16.6-12.3,20.1-27.5,20.1c-10.4,0-21.9-2.7-27.5-9.8c-3.6-4.4-5-8.3-5.3-12.1c-0.6-7.4-3.6-8.3-10.1-8.3h-27.2
|
||||
c-6.5,0-8.1,1.5-8.1,8.3c0,33.7,27,54.1,56.1,60.6v23.1c0,5.3,1.7,8.6,8.1,8.6h21.9c6.5,0,8.1-3.3,8.1-8.6v-22.4
|
||||
c33.1-5,55.8-25.1,55.8-60.6C331.1,255.4,301.4,246.8,281.1,240.4z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
24
blueprints/dumbbudget/template.toml
Normal file
@@ -0,0 +1,24 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
# PIN used to access the site
|
||||
dumbbudget_pin = "${password:16}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "dumbbudget"
|
||||
port = 3000
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
DUMBBUDGET_PIN = "${dumbbudget_pin}"
|
||||
BASE_URL = "${main_domain}"
|
||||
CURRENCY = "USD"
|
||||
SITE_TITLE = "DumbBudget"
|
||||
INSTANCE_NAME = ""
|
||||
# (OPTIONAL) Restrict origins - ex: https://subdomain.domain.tld
|
||||
ALLOWED_ORIGINS = "${main_domain}"
|
||||
|
||||
# The named volume 'dumbbudget-data' is defined in the docker-compose.yml.
|
||||
# According to Dokploy's template examples, volumes declared in the compose
|
||||
# file are automatically managed and do not require a separate entry here.
|
||||
[[config.mounts]]
|
||||
10
blueprints/dumbdrop/docker-compose.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
services:
|
||||
dumbdrop:
|
||||
image: dumbwareio/dumbdrop:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3000
|
||||
volumes:
|
||||
- dumbdrop-uploads:/app/uploads
|
||||
volumes:
|
||||
dumbdrop-uploads: {}
|
||||
20
blueprints/dumbdrop/logo.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#487BB7;enable-background:new ;}
|
||||
.st1{fill:#487BB7;}
|
||||
</style>
|
||||
<g>
|
||||
<circle class="st0" cx="256" cy="256" r="232.7"/>
|
||||
<path class="st1" d="M256,512C114.8,512,0,397.2,0,256S114.8,0,256,0s256,114.8,256,256S397.2,512,256,512z M256,46.6
|
||||
c-115.5,0-209.5,94-209.5,209.5s94,209.5,209.5,209.5s209.5-94,209.5-209.5C465.5,140.5,371.5,46.6,256,46.6z"/>
|
||||
<g>
|
||||
<path class="st1" d="M175.9,353H336c3.3,0,5.9,2.9,5.9,6.5V377c0,3.6-2.6,6.5-5.9,6.5H175.9c-3.3,0-5.9-2.9-5.9-6.5v-17.5
|
||||
C170,356,172.7,353,175.9,353z"/>
|
||||
<path class="st1" d="M251.2,114.4l-79.3,81.1c-4.1,4.2-1.1,11.3,4.8,11.3h36.9c3.7,0,6.7,3,6.7,6.7v108.4c0,3.7,3,6.7,6.7,6.7h58
|
||||
c3.7,0,6.7-3,6.7-6.7V213.5c0-3.7,3-6.7,6.7-6.7h36.9c5.9,0,8.9-7.1,4.8-11.3l-79.3-81.1C258.2,111.8,253.8,111.8,251.2,114.4z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
24
blueprints/dumbdrop/template.toml
Normal file
@@ -0,0 +1,24 @@
|
||||
[variables]
|
||||
main_domain = "https://${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "dumbdrop"
|
||||
port = 3000
|
||||
host = "${domain}"
|
||||
|
||||
[config.env]
|
||||
UPLOAD_DIR = "/app/uploads"
|
||||
DUMBDROP_TITLE = "DumbDrop"
|
||||
MAX_FILE_SIZE = "1024"
|
||||
DUMBDROP_PIN = "${password:6}"
|
||||
AUTO_UPLOAD = "true"
|
||||
BASE_URL = "${main_domain}"
|
||||
ALLOWED_ORIGINS = ""
|
||||
|
||||
APPRISE_URL = ""
|
||||
APPRISE_MESSAGE = "New file uploaded {filename} ({size}), Storage used {storage}"
|
||||
APPRISE_SIZE_UNIT = "Auto"
|
||||
ALLOWED_EXTENSIONS = ""
|
||||
|
||||
[[config.mounts]]
|
||||
12
blueprints/dumbpad/docker-compose.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
dumbpad:
|
||||
image: dumbwareio/dumbpad:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3000
|
||||
volumes:
|
||||
- dumbpad-data:/app/data
|
||||
|
||||
volumes:
|
||||
dumbpad-data: {}
|
||||
27
blueprints/dumbpad/logo.svg
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#BF2E4E;enable-background:new ;}
|
||||
.st1{fill:#BF2E4E;}
|
||||
.st2{opacity:0.7;fill:#BF2E4E;enable-background:new ;}
|
||||
.st3{opacity:0.8;fill:#BF2E4E;enable-background:new ;}
|
||||
.st4{opacity:0.9;fill:#BF2E4E;enable-background:new ;}
|
||||
</style>
|
||||
<g>
|
||||
<circle class="st0" cx="256" cy="256" r="232.7"/>
|
||||
<path class="st1" d="M256,512C114.8,512,0,397.2,0,256S114.8,0,256,0s256,114.8,256,256S397.2,512,256,512z M256,46.6
|
||||
c-115.5,0-209.5,94-209.5,209.5s94,209.5,209.5,209.5s209.5-94,209.5-209.5C465.5,140.5,371.5,46.6,256,46.6z"/>
|
||||
<g>
|
||||
<path class="st2" d="M150.8,330.2h120.3c8.4,0,15.1,6.7,15.1,15.1l0,0c0,8.4-6.7,15.1-15.1,15.1H150.8c-8.4,0-15.1-6.7-15.1-15.1
|
||||
l0,0C136,337.2,142.6,330.2,150.8,330.2z"/>
|
||||
<path class="st3" d="M150.8,270.7h180.3c8.4,0,15.1,6.7,15.1,15.1l0,0c0,8.4-6.7,15.1-15.1,15.1H150.8c-8.4,0-15.1-6.7-15.1-15.1
|
||||
l0,0C136,277.4,142.6,270.7,150.8,270.7z"/>
|
||||
<path class="st2" d="M150.8,211.2h150.5c8.4,0,15.1,6.7,15.1,15.1l0,0c0,8.4-6.7,15.1-15.1,15.1H150.8c-8.4,0-15.1-6.7-15.1-15.1
|
||||
l0,0C136,217.8,142.6,211.2,150.8,211.2z"/>
|
||||
<path class="st4" d="M150.8,151.6h210.5c8.4,0,15.1,6.7,15.1,15.1l0,0c0,8.4-6.7,15.1-15.1,15.1H150.8c-8.4,0-15.1-6.7-15.1-15.1
|
||||
l0,0C136,158.6,142.6,151.6,150.8,151.6z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
21
blueprints/dumbpad/template.toml
Normal file
@@ -0,0 +1,21 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "dumbpad"
|
||||
port = 3000
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
NODE_ENV = "production"
|
||||
SITE_TITLE = "DumbPad"
|
||||
BASE_URL = "https://${main_domain}"
|
||||
# Set a PIN (4-10 digits) for access protection. Leave empty to disable.
|
||||
DUMBPAD_PIN = ""
|
||||
LOCKOUT_TIME = "15"
|
||||
MAX_ATTEMPTS = "5"
|
||||
COOKIE_MAX_AGE = "24"
|
||||
PAGE_HISTORY_COOKIE_AGE = "365"
|
||||
|
||||
[[config.mounts]]
|
||||
7
blueprints/flaresolverr/docker-compose.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
flaresolverr:
|
||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
ports:
|
||||
- 8191
|
||||
restart: unless-stopped
|
||||
BIN
blueprints/flaresolverr/logo.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
16
blueprints/flaresolverr/template.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "flaresolverr"
|
||||
port = 8191
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
LOG_LEVEL = "info"
|
||||
LOG_HTML = "false"
|
||||
CAPTCHA_SOLVER = "none"
|
||||
TZ = "Europe/London"
|
||||
|
||||
[[config.mounts]]
|
||||
10
blueprints/grimoire/docker-compose.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
services:
|
||||
grimoire:
|
||||
image: goniszewski/grimoire:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- grimoire_data:/app/data
|
||||
ports:
|
||||
- "5173"
|
||||
volumes:
|
||||
grimoire_data: {}
|
||||
BIN
blueprints/grimoire/logo.webp
Normal file
|
After Width: | Height: | Size: 16 KiB |
16
blueprints/grimoire/template.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "grimoire"
|
||||
port = 5173
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
PORT = "5173"
|
||||
PUBLIC_ORIGIN = "https://${main_domain}"
|
||||
PUBLIC_HTTPS_ONLY = "true"
|
||||
PUBLIC_SIGNUP_DISABLED = "false"
|
||||
|
||||
[[config.mounts]]
|
||||
30
blueprints/linkstack/docker-compose.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
linkstack:
|
||||
image: linkstackorg/linkstack:latest
|
||||
environment:
|
||||
TZ: "Europe/Berlin"
|
||||
SERVER_ADMIN: "${admin_email}"
|
||||
HTTP_SERVER_NAME: "${main_domain}"
|
||||
HTTPS_SERVER_NAME: "${main_domain}"
|
||||
LOG_LEVEL: "info"
|
||||
PHP_MEMORY_LIMIT: "256M"
|
||||
UPLOAD_MAX_FILESIZE: "8M"
|
||||
volumes:
|
||||
- linkstack-data:/htdocs
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mysql
|
||||
|
||||
mysql:
|
||||
image: mysql:8
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${mysql_root_password}
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
linkstack-data: {}
|
||||
mysql-data: {}
|
||||
105
blueprints/linkstack/logo.svg
Normal file
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 238.86 216.13"><script xmlns="" id="__gaOptOutExtension"/>
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: url(#linear-gradient-2);
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: url(#linear-gradient-3);
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
mix-blend-mode: hard-light;
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
opacity: .86;
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
fill: #fff;
|
||||
opacity: .68;
|
||||
}
|
||||
|
||||
.cls-7 {
|
||||
fill: url(#linear-gradient-5);
|
||||
}
|
||||
|
||||
.cls-8 {
|
||||
fill: url(#linear-gradient);
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: url(#linear-gradient-4);
|
||||
}
|
||||
|
||||
.cls-5, .cls-2, .cls-3 {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
animation: slideInDown 1s ease forwards;
|
||||
animation-delay: 0s;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
animation: slideInDown 1s ease forwards;
|
||||
animation-delay: 0.5s;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
animation: slideInDown 1s ease forwards;
|
||||
animation-delay: 1s;
|
||||
}
|
||||
|
||||
@keyframes slideInDown {
|
||||
0% {
|
||||
transform: translateY(-100%);
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
<linearGradient id="linear-gradient" x1="175.51" y1="30.59" x2="64.11" y2="184.49" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#340b4e"/>
|
||||
<stop offset="1" stop-color="#06051c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-2" x1="0" y1="108.06" x2="238.86" y2="108.06" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#ee17fe"/>
|
||||
<stop offset="1" stop-color="#19d0e0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-3" x1="55.86" y1="107.93" x2="183" y2="107.93" xlink:href="#linear-gradient-2"/>
|
||||
<linearGradient id="linear-gradient-4" x1="55.86" y1="133.28" x2="183" y2="133.28" xlink:href="#linear-gradient-2"/>
|
||||
<linearGradient id="linear-gradient-5" x1="119.43" y1="54.36" x2="119.43" y2="107.06" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#ee17fe"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g class="cls-4">
|
||||
<g id="Ebene_1" data-name="Ebene 1">
|
||||
<g>
|
||||
<path class="cls-8" d="m151.05,197.42h-63.24c-12.36,0-23.78-6.59-29.96-17.3l-31.62-54.76c-6.18-10.7-6.18-23.89,0-34.59l31.62-54.76c6.18-10.7,17.6-17.3,29.96-17.3h63.24c12.36,0,23.78,6.59,29.96,17.3l31.62,54.76c6.18,10.7,6.18,23.89,0,34.59l-31.62,54.76c-6.18,10.7-17.6,17.3-29.96,17.3Z"/>
|
||||
<path class="cls-1" d="m161.85,0h-84.84c-12.36,0-23.78,6.59-29.96,17.3L4.63,90.76c-6.18,10.7-6.18,23.89,0,34.59l42.42,73.47c6.18,10.7,17.6,17.3,29.96,17.3h84.84c12.36,0,23.78-6.59,29.96-17.3l42.42-73.47c6.18-10.7,6.18-23.89,0-34.59l-42.42-73.47c-6.18-10.7-17.6-17.3-29.96-17.3Zm-10.8,197.42h-63.24c-12.36,0-23.78-6.59-29.96-17.3l-31.62-54.76c-6.18-10.7-6.18-23.89,0-34.59l31.62-54.76c6.18-10.7,17.6-17.3,29.96-17.3h63.24c12.36,0,23.78,6.59,29.96,17.3l31.62,54.76c6.18,10.7,6.18,23.89,0,34.59l-31.62,54.76c-6.18,10.7-17.6,17.3-29.96,17.3Z"/>
|
||||
<g>
|
||||
<path class="cls-2" d="m182.13,106.91l-61.4-27.2c-.77-.34-1.84-.34-2.61,0l-61.4,27.2c-.55.24-.87.62-.87,1.03s.32.78.87,1.03l61.4,27.2c.77.34,1.84.34,2.61,0l61.4-27.2c.55-.24.87-.62.87-1.03s-.32-.78-.87-1.03Z"/>
|
||||
<path class="cls-3" d="m182.13,132.25l-61.4-27.2c-.77-.34-1.84-.34-2.61,0l-61.4,27.2c-.55.24-.87.62-.87,1.03s.32.78.87,1.03l61.4,27.2c.77.34,1.84.34,2.61,0l61.4-27.2c.55-.24.87-.62.87-1.03s-.32-.78-.87-1.03Z"/>
|
||||
<g class="cls-5">
|
||||
<path class="cls-7" d="m182.13,81.57l-61.4-27.2c-.77-.34-1.84-.34-2.61,0l-61.4,27.2c-.55.24-.87.62-.87,1.03s.32.78.87,1.03l61.4,27.2c.77.34,1.84.34,2.61,0l61.4-27.2c.55-.24.87-.62.87-1.03s-.32-.78-.87-1.03Z"/>
|
||||
<path class="cls-6" d="m182.13,81.57l-61.4-27.2c-.77-.34-1.84-.34-2.61,0l-61.4,27.2c-.55.24-.87.62-.87,1.03s.32.78.87,1.03l61.4,27.2c.77.34,1.84.34,2.61,0l61.4-27.2c.55-.24.87-.62.87-1.03s-.32-.78-.87-1.03Z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
28
blueprints/linkstack/template.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
admin_email = "${email}"
|
||||
mysql_root_password = "${password:32}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "linkstack"
|
||||
port = 80
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
TZ = "Europe/Berlin"
|
||||
SERVER_ADMIN = "${admin_email}"
|
||||
HTTP_SERVER_NAME = "${main_domain}"
|
||||
HTTPS_SERVER_NAME = "${main_domain}"
|
||||
LOG_LEVEL = "info"
|
||||
PHP_MEMORY_LIMIT = "256M"
|
||||
UPLOAD_MAX_FILESIZE = "8M"
|
||||
MYSQL_ROOT_PASSWORD = "${mysql_root_password}"
|
||||
|
||||
[[config.mounts]]
|
||||
volume = "linkstack-data"
|
||||
target = "/htdocs"
|
||||
|
||||
[[config.mounts]]
|
||||
volume = "mysql-data"
|
||||
target = "/var/lib/mysql"
|
||||
9
blueprints/metube/docker-compose.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
metube:
|
||||
image: ghcr.io/alexta69/metube
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8081
|
||||
volumes:
|
||||
- ../files/downloads:/downloads
|
||||
BIN
blueprints/metube/logo.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
43
blueprints/metube/template.toml
Normal file
@@ -0,0 +1,43 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "metube"
|
||||
port = 8081
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
UID = "1000"
|
||||
GID = "1000"
|
||||
UMASK = "022"
|
||||
DEFAULT_THEME = "auto"
|
||||
DOWNLOAD_DIR = "/downloads"
|
||||
AUDIO_DOWNLOAD_DIR = "/downloads"
|
||||
DOWNLOAD_DIRS_INDEXABLE = "false"
|
||||
CUSTOM_DIRS = "true"
|
||||
CREATE_CUSTOM_DIRS = "true"
|
||||
CUSTOM_DIRS_EXCLUDE_REGEX = "(^|/)[.@].*$" # Regex to exclude certain directories
|
||||
STATE_DIR = "/downloads/.metube"
|
||||
TEMP_DIR = "/downloads"
|
||||
DELETE_FILE_ON_TRASHCAN = "false" # Delete files when trashed from UI
|
||||
URL_PREFIX = "/"
|
||||
PUBLIC_HOST_URL = "" # Base URL for download links (optional)
|
||||
HTTPS = "false" # Use HTTPS (requires CERTFILE and KEYFILE)
|
||||
CERTFILE = ""
|
||||
KEYFILE = ""
|
||||
PUBLIC_HOST_AUDIO_URL = ""
|
||||
OUTPUT_TEMPLATE = "%(title)s.%(ext)s" # Filename template for videos
|
||||
OUTPUT_TEMPLATE_CHAPTER = "%(title)s - %(section_number)s %(section_title)s.%(ext)s"
|
||||
OUTPUT_TEMPLATE_PLAYLIST = "%(playlist_title)s/%(title)s.%(ext)s"
|
||||
DEFAULT_OPTION_PLAYLIST_STRICT_MODE = "false"
|
||||
DEFAULT_OPTION_PLAYLIST_ITEM_LIMIT = "0"
|
||||
YTDL_OPTIONS = "{}" # Additional yt-dlp options in JSON format
|
||||
YTDL_OPTIONS_FILE = ""
|
||||
ROBOTS_TXT = ""
|
||||
DOWNLOAD_MODE = "limited"
|
||||
MAX_CONCURRENT_DOWNLOADS = "3"
|
||||
LOGLEVEL = "INFO"
|
||||
ENABLE_ACCESSLOG = "false"
|
||||
|
||||
[[config.mounts]]
|
||||
@@ -19,4 +19,4 @@ mounts = []
|
||||
[[config.domains]]
|
||||
serviceName = "movary"
|
||||
port = 8080
|
||||
host = "${main_domain}"
|
||||
host = "${main_domain}"
|
||||
9
blueprints/neko/docker-compose.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
neko:
|
||||
image: "ghcr.io/m1k1o/neko/firefox:latest"
|
||||
restart: "unless-stopped"
|
||||
shm_size: "2gb"
|
||||
ports:
|
||||
- "8080"
|
||||
- "52000-52100:52000-52100/udp"
|
||||
BIN
blueprints/neko/logo.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
22
blueprints/neko/template.toml
Normal file
@@ -0,0 +1,22 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
admin_password = "${password:16}"
|
||||
user_password = "${password:16}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "neko"
|
||||
port = 8080
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
NEKO_MEMBER_PROVIDER = "multiuser"
|
||||
NEKO_DESKTOP_SCREEN = "1920x1080@30"
|
||||
# API keys used for authentication
|
||||
NEKO_MEMBER_MULTIUSER_USER_PASSWORD = "${user_password}"
|
||||
# API keys used for authentication
|
||||
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD = "${admin_password}"
|
||||
NEKO_WEBRTC_EPR = "52000-52100"
|
||||
NEKO_WEBRTC_ICELITE = "1"
|
||||
|
||||
[[config.mounts]]
|
||||
6
blueprints/omni-tools/docker-compose.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
services:
|
||||
omni-tools:
|
||||
image: iib0011/omni-tools:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 80
|
||||
BIN
blueprints/omni-tools/logo.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
14
blueprints/omni-tools/template.toml
Normal file
@@ -0,0 +1,14 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "omni-tools"
|
||||
port = 80
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
# API Key
|
||||
LOCIZE_API_KEY = ""
|
||||
|
||||
[[config.mounts]]
|
||||
17
blueprints/opengist/docker-compose.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
# docker-compose.yml
|
||||
version: "3.8"
|
||||
services:
|
||||
opengist:
|
||||
image: ghcr.io/thomiceli/opengist:1
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 6157 # HTTP port
|
||||
- 2222 # SSH port (optional)
|
||||
volumes:
|
||||
- opengist-data:/opengist
|
||||
environment:
|
||||
- UID=${UID}
|
||||
- GID=${GID}
|
||||
- OG_LOG_LEVEL=${OG_LOG_LEVEL}
|
||||
volumes:
|
||||
opengist-data: {}
|
||||
29
blueprints/opengist/logo.svg
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
</style>
|
||||
<g id="document" transform="scale(1.6666666666666667 1.6666666666666667) translate(150.0 150.0)">
|
||||
<path class="st0" d="M131.3,24.3c13.7-71-33.9-139.5-106.4-152.9C-47.7-142-117.6-95.3-131.3-24.3s33.9,139.5,106.4,152.9
|
||||
C47.7,142,117.6,95.3,131.3,24.3z"/>
|
||||
<path class="st0" d="M128.9,0c0,55.7-36.8,103-88,119.8c0.2-1.2,0.3-2.5,0.3-4c0.1-22.3,0.2-36.2,0.2-52.8
|
||||
c0-11.7-0.2-18.1-0.2-18.1c1.8,0,21.1-6,29.9-12.1S89.2,15.1,90.5-1.4c1.3-16.6-6-36.2-12.4-47.8C65.3-72.4,54.7-86.6,45.4-94.5
|
||||
c-9.3-7.8-16.1-6.1-22.1-1.4S8.5-76.9,2.2-71.2c-3,2.8-10.6,12-20.4,3.3C-21-70.3-38-93.6-48.5-90.6c-13.1,3.7-28.1,27.3-35.1,43.8
|
||||
c-9,21-10.8,33.6-6.1,63.5c4.7,29.9,7.5,60,11.8,76.4c1,4,2.3,7.4,4,10.4c-33.2-22.8-55-60.7-55-103.5
|
||||
c0-69.7,57.7-126.3,128.9-126.3S128.9-69.7,128.9,0z"/>
|
||||
<path d="M0-145c-81.8,0-148.1,64.9-148.1,145S-81.8,145,0,145S148.1,80.1,148.1,0S81.8-145,0-145z M40.9,119.8
|
||||
c0.2-1.2,0.3-2.5,0.3-4c0.1-22.3,0.2-36.2,0.2-52.8c0-11.7-0.2-18.1-0.2-18.1c1.8,0,21.1-6,29.9-12.1S89.2,15.1,90.5-1.4
|
||||
c1.3-16.6-6-36.2-12.4-47.8C65.3-72.4,54.7-86.6,45.4-94.5c-9.3-7.8-16.1-6.1-22.1-1.4S8.5-76.9,2.2-71.2c-3,2.8-10.6,12-20.4,3.3
|
||||
C-21-70.3-38-93.6-48.5-90.6c-13.1,3.7-28.1,27.3-35.1,43.8c-9,21-10.8,33.6-6.1,63.5c4.7,29.9,7.5,60,11.8,76.4
|
||||
c1,4,2.3,7.4,4,10.4c-33.2-22.8-55-60.7-55-103.5c0-69.7,57.7-126.3,128.9-126.3S128.9-69.7,128.9,0
|
||||
C128.9,55.7,92.1,103,40.9,119.8z"/>
|
||||
<path class="st0" d="M-102.8-7.2l91.2-9.4l-0.3-7l-91.2,9.4L-102.8-7.2z"/>
|
||||
<path class="st0" d="M12-17.3c0.8-9.6-6.5-18-16.3-18.8s-18.4,6.4-19.2,16S-17-2.1-7.2-1.3S11.2-7.7,12-17.3z"/>
|
||||
<path class="st0" d="M62.9-24.6c0.8-9.6-6.5-18-16.3-18.8c-9.8-0.8-18.4,6.4-19.2,16c-0.8,9.6,6.5,18,16.3,18.8S62.1-15,62.9-24.6z
|
||||
"/>
|
||||
<path class="st0" d="M-11.8-16.8l67.6-7.3l-0.5-6.3l-67.5,7.3L-11.8-16.8z"/>
|
||||
<path class="st0" d="M53.1-23.6l49.5-12.2l-0.6-6.3L52.5-29.9L53.1-23.6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
18
blueprints/opengist/template.toml
Normal file
@@ -0,0 +1,18 @@
|
||||
# template.toml
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "opengist"
|
||||
port = 6157
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
UID = "1001"
|
||||
GID = "1001"
|
||||
OG_LOG_LEVEL = "info"
|
||||
|
||||
[[config.mounts]]
|
||||
# This template uses a named volume defined in the docker-compose.yml,
|
||||
# so no file mounts need to be configured here.
|
||||
36
blueprints/openhands/docker-compose.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
# The 'version' attribute is obsolete and has been removed.
|
||||
services:
|
||||
openhands:
|
||||
# Corrected the Docker image to what appears to be the official registry path.
|
||||
# This was the cause of the "pull access denied" error.
|
||||
image: docker.all-hands.dev/all-hands-ai/openhands:latest
|
||||
restart: unless-stopped
|
||||
|
||||
# The port is exposed without mapping. Dokploy handles the routing via the domain.
|
||||
ports:
|
||||
- "3000"
|
||||
|
||||
# Environment variables are sourced from the template.toml file.
|
||||
environment:
|
||||
- SANDBOX_RUNTIME_CONTAINER_IMAGE=${SANDBOX_RUNTIME_CONTAINER_IMAGE}
|
||||
- WORKSPACE_MOUNT_PATH=/opt/workspace_base
|
||||
|
||||
# Allows the container to communicate with the host's Docker daemon.
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
|
||||
# Volumes for persistent data. Named volumes are used instead of host mounts.
|
||||
# The docker socket is mounted to allow OpenHands to manage other containers.
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- openhands-config:/.openhands
|
||||
- openhands-workspace:/opt/workspace_base
|
||||
|
||||
# These flags are necessary for the interactive shell functionality of OpenHands.
|
||||
stdin_open: true
|
||||
tty: true
|
||||
|
||||
# Named volumes are defined here to persist configuration and workspace data.
|
||||
volumes:
|
||||
openhands-config: {}
|
||||
openhands-workspace: {}
|
||||
BIN
blueprints/openhands/image.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
153
blueprints/openhands/template.toml
Normal file
@@ -0,0 +1,153 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
openhands_api_key = "${password:64}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "openhands"
|
||||
port = 3000
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
SANDBOX_RUNTIME_CONTAINER_IMAGE="docker.all-hands.dev/all-hands-ai/runtime:0.50-nikolaik"
|
||||
|
||||
# Defines a file mount to create the OpenHands configuration file inside the container.
|
||||
# The file will be placed within the 'openhands-config' volume.
|
||||
[[config.mounts]]
|
||||
filePath = "/.openhands/config.toml"
|
||||
content = """
|
||||
###################### OpenHands Configuration Example ######################
|
||||
#
|
||||
# All settings have default values, so you only need to uncomment and
|
||||
# modify what you want to change
|
||||
# The fields within each section are sorted in alphabetical order.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
#################################### Core ####################################
|
||||
# General core configurations
|
||||
##############################################################################
|
||||
[core]
|
||||
# workspace_base = "./workspace"
|
||||
# cache_dir = "/tmp/cache"
|
||||
# debug = false
|
||||
# disable_color = false
|
||||
# save_trajectory_path="./trajectories"
|
||||
# save_screenshots_in_trajectory = false
|
||||
# replay_trajectory_path = ""
|
||||
# file_store_path = "/tmp/file_store"
|
||||
# file_store = "memory"
|
||||
# file_uploads_max_file_size_mb = 0
|
||||
# enable_browser = true
|
||||
# max_budget_per_task = 0.0
|
||||
# max_iterations = 500
|
||||
# workspace_mount_path_in_sandbox = "/workspace"
|
||||
# workspace_mount_path = ""
|
||||
# workspace_mount_rewrite = ""
|
||||
# run_as_openhands = true
|
||||
# runtime = "docker"
|
||||
# default_agent = "CodeActAgent"
|
||||
# jwt_secret = ""
|
||||
# file_uploads_restrict_file_types = false
|
||||
# file_uploads_allowed_extensions = [".*"]
|
||||
# enable_default_condenser = true
|
||||
# max_concurrent_conversations = 3
|
||||
# conversation_max_age_seconds = 864000 # 10 days
|
||||
|
||||
#################################### LLM #####################################
|
||||
# Configuration for LLM models (group name starts with 'llm')
|
||||
##############################################################################
|
||||
[llm]
|
||||
# API key to use. It is being sourced from the Dokploy template variables.
|
||||
api_key = "${openhands_api_key}" # API Key
|
||||
# base_url = ""
|
||||
# api_version = ""
|
||||
# reasoning_effort = "medium"
|
||||
# input_cost_per_token = 0.0
|
||||
# output_cost_per_token = 0.0
|
||||
# custom_llm_provider = ""
|
||||
# max_message_chars = 10000
|
||||
# max_input_tokens = 0
|
||||
# max_output_tokens = 0
|
||||
model = "gpt-4o"
|
||||
# num_retries = 8
|
||||
# retry_max_wait = 120
|
||||
# retry_min_wait = 15
|
||||
# retry_multiplier = 2.0
|
||||
# drop_params = false
|
||||
# modify_params = true
|
||||
# caching_prompt = true
|
||||
# ollama_base_url = ""
|
||||
# temperature = 0.0
|
||||
# timeout = 0
|
||||
# top_p = 1.0
|
||||
# disable_vision = true
|
||||
# custom_tokenizer = ""
|
||||
# native_tool_calling = None
|
||||
# safety_settings = []
|
||||
|
||||
[llm.draft_editor]
|
||||
# correct_num = 5
|
||||
|
||||
[llm.gpt4o-mini]
|
||||
api_key = "${openhands_api_key}" # API Key
|
||||
model = "gpt-4o"
|
||||
|
||||
#################################### Agent ###################################
|
||||
# Configuration for agents
|
||||
##############################################################################
|
||||
[agent]
|
||||
enable_Browse = true
|
||||
# enable_llm_editor = false
|
||||
enable_editor = true
|
||||
enable_jupyter = true
|
||||
enable_cmd = true
|
||||
enable_think = true
|
||||
enable_finish = true
|
||||
# llm_config = 'your-llm-config-group'
|
||||
# enable_prompt_extensions = true
|
||||
# disabled_microagents = []
|
||||
enable_history_truncation = true
|
||||
# enable_condensation_request = false
|
||||
|
||||
#################################### Sandbox ###################################
|
||||
# Configuration for the sandbox
|
||||
##############################################################################
|
||||
[sandbox]
|
||||
# timeout = 120
|
||||
# user_id = 1000
|
||||
# base_container_image = "nikolaik/python-nodejs:python3.12-nodejs22"
|
||||
# use_host_network = false
|
||||
# runtime_extra_build_args = ["--network=host", "--add-host=host.docker.internal:host-gateway"]
|
||||
# enable_auto_lint = false
|
||||
# initialize_plugins = true
|
||||
# runtime_extra_deps = ""
|
||||
# runtime_startup_env_vars = {}
|
||||
# browsergym_eval_env = ""
|
||||
# platform = ""
|
||||
# force_rebuild_runtime = false
|
||||
# runtime_container_image = ""
|
||||
# keep_runtime_alive = false
|
||||
# pause_closed_runtimes = false
|
||||
# close_delay = 300
|
||||
# rm_all_containers = false
|
||||
# enable_gpu = false
|
||||
# cuda_visible_devices = ''
|
||||
# docker_runtime_kwargs = {}
|
||||
# vscode_port = 41234
|
||||
# volumes = "/my/host/dir:/workspace:rw,/path2:/workspace/path2:ro"
|
||||
|
||||
#################################### Security ###################################
|
||||
# Configuration for security features
|
||||
##############################################################################
|
||||
[security]
|
||||
# confirmation_mode = false
|
||||
# security_analyzer = ""
|
||||
# enable_security_analyzer = false
|
||||
|
||||
#################################### Condenser #################################
|
||||
# Condensers control how conversation history is managed
|
||||
##############################################################################
|
||||
[condenser]
|
||||
type = "noop"
|
||||
"""
|
||||
7
blueprints/pinchflat/docker-compose.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
version: "3"
|
||||
services:
|
||||
pinchflat:
|
||||
image: ghcr.io/kieraneglin/pinchflat:latest
|
||||
volumes:
|
||||
- ../files/config:/config
|
||||
- ../files/downloads:/downloads
|
||||
BIN
blueprints/pinchflat/logo.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
31
blueprints/pinchflat/template.toml
Normal file
@@ -0,0 +1,31 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
basic_auth_password = "${password:32}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "pinchflat"
|
||||
port = 8945
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
TZ = "America/New_York"
|
||||
LOG_LEVEL = "debug"
|
||||
UMASK = "022"
|
||||
BASIC_AUTH_USERNAME = ""
|
||||
BASIC_AUTH_PASSWORD = "${basic_auth_password}"
|
||||
EXPOSE_FEED_ENDPOINTS = "false"
|
||||
ENABLE_IPV6 = "false"
|
||||
JOURNAL_MODE = "wal"
|
||||
TZ_DATA_DIR = "/etc/elixir_tzdata_data"
|
||||
BASE_ROUTE_PATH = "/"
|
||||
YT_DLP_WORKER_CONCURRENCY = "2"
|
||||
ENABLE_PROMETHEUS = "false"
|
||||
|
||||
[[config.mounts]]
|
||||
filePath = "/files/config"
|
||||
content = ""
|
||||
|
||||
[[config.mounts]]
|
||||
filePath = "/files/downloads"
|
||||
content = ""
|
||||
28
blueprints/snapp/docker-compose.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
snapp:
|
||||
image: uraniadev/snapp:0.9-rc-020
|
||||
ports:
|
||||
- 3000
|
||||
environment:
|
||||
- DATABASE_URL=${DATABASE_URL}
|
||||
- DATABASE_PROVIDER=${DATABASE_PROVIDER}
|
||||
- TOKEN_SECRET=${TOKEN_SECRET} # API Key for authentication token
|
||||
- ORIGIN=${ORIGIN}
|
||||
- DISABLED_EMAIL_AND_PASSWORD=${DISABLED_EMAIL_AND_PASSWORD}
|
||||
- LOG_LEVEL=${LOG_LEVEL}
|
||||
- PORT=${PORT}
|
||||
- ADMIN_USERNAME=${ADMIN_USERNAME}
|
||||
- ADMIN_EMAIL=${ADMIN_EMAIL}
|
||||
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
||||
- ENABLE_SIGNUP=${ENABLE_SIGNUP}
|
||||
- ENABLED_MFA=${ENABLED_MFA}
|
||||
- PUBLIC_URL=${PUBLIC_URL}
|
||||
- APPNAME=${APPNAME}
|
||||
- PUBLIC_EXTRA_GROUPS_EDITABLE=${PUBLIC_EXTRA_GROUPS_EDITABLE}
|
||||
- URLS_VIA_GROUPS_ONLY=${URLS_VIA_GROUPS_ONLY}
|
||||
- HOST=${HOST}
|
||||
volumes:
|
||||
- ../files/snapp-db:/app/db.sqlite
|
||||
volumes:
|
||||
snapp-db: {}
|
||||
BIN
blueprints/snapp/logo.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
34
blueprints/snapp/template.toml
Normal file
@@ -0,0 +1,34 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
token_secret = "${password:32}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "snapp"
|
||||
port = 3000
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
DATABASE_URL = "file:./db.sqlite"
|
||||
DATABASE_PROVIDER = "sqlite" # Options: postgres | mysql | sqlite
|
||||
DISABLED_EMAIL_AND_PASSWORD = "false"
|
||||
LOG_LEVEL = "debug"
|
||||
ORIGIN = "http://${main_domain}"
|
||||
PORT = "3000"
|
||||
ADMIN_USERNAME = "admin"
|
||||
ADMIN_EMAIL = "info@example.org"
|
||||
ADMIN_PASSWORD = "${password:16}"
|
||||
TOKEN_SECRET = "${token_secret}" # API Key for authentication token
|
||||
ENABLE_SIGNUP = "true"
|
||||
ENABLED_MFA = "false"
|
||||
PUBLIC_URL = "${main_domain}"
|
||||
APPNAME = "Snapp"
|
||||
PUBLIC_EXTRA_GROUPS_EDITABLE = "true"
|
||||
URLS_VIA_GROUPS_ONLY = "false"
|
||||
HOST = "0.0.0.0"
|
||||
|
||||
[[config.mounts]]
|
||||
filePath = "/files/snapp-db/db.sqlite"
|
||||
content = """
|
||||
# SQLite database file for Snapp
|
||||
"""
|
||||
24
blueprints/tianji/docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
version: '3'
|
||||
services:
|
||||
tianji:
|
||||
image: moonrailgun/tianji
|
||||
ports:
|
||||
- "12345"
|
||||
environment:
|
||||
DATABASE_URL: postgresql://tianji:tianji@postgres:5432/tianji
|
||||
# API Key
|
||||
JWT_SECRET: ${jwt_secret}
|
||||
ALLOW_REGISTER: "false"
|
||||
ALLOW_OPENAPI: "true"
|
||||
depends_on:
|
||||
- postgres
|
||||
postgres:
|
||||
image: postgres:15.4-alpine
|
||||
environment:
|
||||
POSTGRES_DB: tianji
|
||||
POSTGRES_USER: tianji
|
||||
POSTGRES_PASSWORD: tianji
|
||||
volumes:
|
||||
- tianji-db-data:/var/lib/postgresql/data
|
||||
volumes:
|
||||
tianji-db-data: {}
|
||||
16
blueprints/tianji/logo.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M257.106 206.055C277.953 206.822 330.317 199.265 373.004 162.897C404.216 168.882 434.586 174.598 445.87 176.708C389.643 210.083 298.416 268.202 257.106 268.202C212.577 268.202 114.242 210.083 53.6336 176.708C65.7966 174.598 98.5337 168.882 132.178 162.897C178.191 199.265 234.636 206.822 257.106 206.055Z" fill="black"/>
|
||||
<path d="M257.106 289.493C270.303 289.493 303.236 287.997 347.759 270.503C338.579 282.012 327.104 319.415 318.498 332.65C297.843 361.422 274.089 379.145 257.106 392.495C238.8 379.145 213.196 361.422 190.931 332.65C181.654 319.415 169.285 282.012 159.39 270.503C207.382 287.997 243.91 289.493 257.106 289.493Z" fill="#D9D9D9"/>
|
||||
<path d="M375.299 235.402C388.113 232.717 415.691 226.655 423.494 223.893C403.986 282.587 312.186 392.495 265.139 450.039L275.466 391.344C275.466 391.344 306.449 367.176 321.366 344.159C336.284 321.142 375.299 235.402 375.299 235.402Z" fill="black"/>
|
||||
<path d="M441.28 194.546C456.771 204.904 476.853 212.96 478 221.591C462.509 243.458 395.38 315.387 395.38 315.387L426.936 337.829C370.135 378.685 310.465 411.485 265.139 465C265.139 465 350.054 355.092 373.004 324.594C438.823 237.128 441.28 194.546 441.28 194.546Z" fill="black"/>
|
||||
<path d="M257.106 48.3858L273.745 34L324.809 51.8385L352.349 159.445C336.284 175.557 303.465 194.546 257.106 194.546C207.135 194.546 171.759 175.557 154.442 159.445L184.128 51.8385L239.171 34L257.106 48.3858Z" fill="black"/>
|
||||
<path d="M129.704 235.402C115.892 232.717 86.1645 226.655 77.7535 223.893C98.7811 282.587 197.734 392.495 248.448 450.039L237.316 391.344C237.316 391.344 203.919 367.176 187.839 344.159C171.759 321.142 129.704 235.402 129.704 235.402Z" fill="black"/>
|
||||
<path d="M58.5813 194.546C41.8829 204.904 20.2369 212.96 19 221.591C35.6984 243.458 108.058 315.387 108.058 315.387L74.0427 337.829C135.27 378.685 199.59 411.485 248.448 465C248.448 465 156.916 355.092 132.178 324.594C61.2302 237.128 58.5813 194.546 58.5813 194.546Z" fill="black"/>
|
||||
<path d="M257.106 206.055C277.953 206.822 330.317 199.265 373.004 162.897C404.216 168.882 434.586 174.598 445.87 176.708C389.643 210.083 298.416 268.202 257.106 268.202C212.577 268.202 114.242 210.083 53.6336 176.708C65.7966 174.598 98.5337 168.882 132.178 162.897C178.191 199.265 234.636 206.822 257.106 206.055Z" stroke="white" stroke-opacity="0.5" stroke-width="2"/>
|
||||
<path d="M257.106 289.493C270.303 289.493 303.236 287.997 347.759 270.503C338.579 282.012 327.104 319.415 318.498 332.65C297.843 361.422 274.089 379.145 257.106 392.495C238.8 379.145 213.196 361.422 190.931 332.65C181.654 319.415 169.285 282.012 159.39 270.503C207.382 287.997 243.91 289.493 257.106 289.493Z" stroke="white" stroke-opacity="0.5" stroke-width="2"/>
|
||||
<path d="M375.299 235.402C388.113 232.717 415.691 226.655 423.494 223.893C403.986 282.587 312.186 392.495 265.139 450.039L275.466 391.344C275.466 391.344 306.449 367.176 321.366 344.159C336.284 321.142 375.299 235.402 375.299 235.402Z" stroke="white" stroke-opacity="0.5" stroke-width="2"/>
|
||||
<path d="M441.28 194.546C456.771 204.904 476.853 212.96 478 221.591C462.509 243.458 395.38 315.387 395.38 315.387L426.936 337.829C370.135 378.685 310.465 411.485 265.139 465C265.139 465 350.054 355.092 373.004 324.594C438.823 237.128 441.28 194.546 441.28 194.546Z" stroke="white" stroke-opacity="0.5" stroke-width="2"/>
|
||||
<path d="M257.106 48.3858L273.745 34L324.809 51.8385L352.349 159.445C336.284 175.557 303.465 194.546 257.106 194.546C207.135 194.546 171.759 175.557 154.442 159.445L184.128 51.8385L239.171 34L257.106 48.3858Z" stroke="white" stroke-opacity="0.5" stroke-width="2"/>
|
||||
<path d="M129.704 235.402C115.892 232.717 86.1645 226.655 77.7535 223.893C98.7811 282.587 197.734 392.495 248.448 450.039L237.316 391.344C237.316 391.344 203.919 367.176 187.839 344.159C171.759 321.142 129.704 235.402 129.704 235.402Z" stroke="white" stroke-opacity="0.5" stroke-width="2"/>
|
||||
<path d="M58.5813 194.546C41.8829 204.904 20.2369 212.96 19 221.591C35.6984 243.458 108.058 315.387 108.058 315.387L74.0427 337.829C135.27 378.685 199.59 411.485 248.448 465C248.448 465 156.916 355.092 132.178 324.594C61.2302 237.128 58.5813 194.546 58.5813 194.546Z" stroke="white" stroke-opacity="0.5" stroke-width="2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
16
blueprints/tianji/template.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
# API Key: Used for session security.
|
||||
jwt_secret = "${password:32}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "tianji"
|
||||
port = 12345
|
||||
host = "${main_domain}"
|
||||
|
||||
[[config.mounts]]
|
||||
serviceName = "postgres"
|
||||
type = "volume"
|
||||
source = "tianji-db-data"
|
||||
target = "/var/lib/postgresql/data"
|
||||
7
blueprints/web-check/docker-compose.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
version: '3.9'
|
||||
services:
|
||||
web-check:
|
||||
image: lissy93/web-check
|
||||
ports:
|
||||
- 3000
|
||||
restart: unless-stopped
|
||||
BIN
blueprints/web-check/logo.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
31
blueprints/web-check/template.toml
Normal file
@@ -0,0 +1,31 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "web-check"
|
||||
port = 3000
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
GOOGLE_CLOUD_API_KEY = ""
|
||||
TORRENT_IP_API_KEY = ""
|
||||
SECURITY_TRAILS_API_KEY = ""
|
||||
BUILT_WITH_API_KEY = ""
|
||||
URL_SCAN_API_KEY = ""
|
||||
TRANCO_USERNAME = ""
|
||||
TRANCO_API_KEY = ""
|
||||
CLOUDMERSIVE_API_KEY = ""
|
||||
|
||||
REACT_APP_SHODAN_API_KEY = ""
|
||||
REACT_APP_WHO_API_KEY = ""
|
||||
|
||||
# CHROME_PATH = "/usr/bin/chromium"
|
||||
PORT = "3000"
|
||||
DISABLE_GUI = "false"
|
||||
API_TIMEOUT_LIMIT = "10000"
|
||||
API_CORS_ORIGIN = "*"
|
||||
API_ENABLE_RATE_LIMIT = "true"
|
||||
ENABLE_ANALYTICS = "false"
|
||||
|
||||
[[config.mounts]]
|
||||
16
blueprints/yt-dlp-webui/docker-compose.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
yt-dlp-webui:
|
||||
image: marcobaobao/yt-dlp-webui
|
||||
ports:
|
||||
- 3033
|
||||
volumes:
|
||||
- downloads:/downloads
|
||||
- config:/config
|
||||
healthcheck:
|
||||
test: curl -f http://localhost:3033 || exit 1
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
downloads: {}
|
||||
config: {}
|
||||
BIN
blueprints/yt-dlp-webui/logo.ico
Normal file
|
After Width: | Height: | Size: 66 KiB |
12
blueprints/yt-dlp-webui/template.toml
Normal file
@@ -0,0 +1,12 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
|
||||
[config]
|
||||
[[config.domains]]
|
||||
serviceName = "yt-dlp-webui"
|
||||
port = 3033
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
|
||||
[[config.mounts]]
|
||||
382
meta.json
@@ -28,13 +28,7 @@
|
||||
"docs": "https://cap.so/docs/"
|
||||
},
|
||||
"logo": "capso.png",
|
||||
"tags": [
|
||||
"web",
|
||||
"s3",
|
||||
"mysql",
|
||||
"development",
|
||||
"self-hosted"
|
||||
]
|
||||
"tags": ["web", "s3", "mysql", "development", "self-hosted"]
|
||||
},
|
||||
{
|
||||
"id": "authentik",
|
||||
@@ -3322,16 +3316,16 @@
|
||||
{
|
||||
"id": "movary",
|
||||
"name": "Movary",
|
||||
"version": "0.66.2",
|
||||
"description": "Self-hosted web app to track, rate and explore your movie watch history. Offers detailed statistics, third-party integrations for platforms like Trakt, Letterboxd, Netflix, and automated play tracking for Plex, Jellyfin, Emby or Kodi.",
|
||||
"version": "latest",
|
||||
"description": "Movary is a self-hosted platform for tracking and managing your watched movies using TMDB.",
|
||||
"logo": "movary.png",
|
||||
"links": {
|
||||
"github": "https://github.com/leepeuker/movary",
|
||||
"website": "https://movary.org/",
|
||||
"docs": "https://movary.org/docs/",
|
||||
"demo": "https://demo.movary.org/"
|
||||
"docs": "https://docs.movary.org/"
|
||||
},
|
||||
"tags": [
|
||||
"media",
|
||||
"movies",
|
||||
"movie-tracker",
|
||||
"self-hosted",
|
||||
@@ -3517,24 +3511,6 @@
|
||||
"aggregator"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "gitlab-ce",
|
||||
"name": "GitLab CE",
|
||||
"version": "latest",
|
||||
"description": "GitLab Community Edition is a free and open source platform for managing Git repositories, CI/CD pipelines, and project management.",
|
||||
"logo": "gitlab-ce.svg",
|
||||
"links": {
|
||||
"github": "https://gitlab.com/gitlab-org/gitlab-ce",
|
||||
"website": "https://gitlab.com/",
|
||||
"docs": "https://docs.gitlab.com/ee/"
|
||||
},
|
||||
"tags": [
|
||||
"git",
|
||||
"ci-cd",
|
||||
"version-control",
|
||||
"project-management"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "memos",
|
||||
"name": "Memos",
|
||||
@@ -3546,10 +3522,352 @@
|
||||
"website": "https://www.usememos.com/",
|
||||
"docs": "https://www.usememos.com/docs"
|
||||
},
|
||||
"tags": ["productivity", "notes", "bookmarks"]
|
||||
},
|
||||
{
|
||||
"id": "linkstack",
|
||||
"name": "LinkStack",
|
||||
"version": "latest",
|
||||
"description": "LinkStack is an open-source link-in-bio platform for sharing multiple links using a customizable landing page.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/linkstackorg/linkstack",
|
||||
"website": "https://linkstack.org/",
|
||||
"docs": "https://docs.linkstack.org/"
|
||||
},
|
||||
"tags": ["bio", "personal", "cms", "php"]
|
||||
},
|
||||
{
|
||||
"id": "opengist",
|
||||
"name": "OpenGist",
|
||||
"version": "1",
|
||||
"description": "OpenGist is a self-hosted pastebin alternative.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/thomiceli/opengist",
|
||||
"website": "https://github.com/thomiceli/opengist",
|
||||
"docs": "https://github.com/thomiceli/opengist"
|
||||
},
|
||||
"tags": [
|
||||
"productivity",
|
||||
"notes",
|
||||
"bookmarks"
|
||||
"pastebin",
|
||||
"code",
|
||||
"snippets",
|
||||
"self-hosted"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "snapp",
|
||||
"name": "Snapp",
|
||||
"version": "0.9-rc-020",
|
||||
"description": "Snapp is a self-hosted screenshot sharing service with user management and authentication.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/UraniaDev/snapp",
|
||||
"website": "https://github.com/UraniaDev/snapp",
|
||||
"docs": "https://github.com/UraniaDev/snapp"
|
||||
},
|
||||
"tags": [
|
||||
"screenshot",
|
||||
"sharing",
|
||||
"self-hosted",
|
||||
"authentication"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "commafeed",
|
||||
"name": "CommaFeed",
|
||||
"version": "latest",
|
||||
"description": "CommaFeed is an open-source feed reader and news aggregator, designed to be lightweight and extensible, with PostgreSQL as its database.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/Athou/commafeed",
|
||||
"website": "https://www.commafeed.com/",
|
||||
"docs": "https://github.com/Athou/commafeed/wiki"
|
||||
},
|
||||
"tags": [
|
||||
"feed-reader",
|
||||
"news-aggregator",
|
||||
"rss"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "convertx",
|
||||
"name": "ConvertX",
|
||||
"version": "latest",
|
||||
"description": "ConvertX is a service for converting media files, with optional user registration and file management features.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/c4illin/ConvertX",
|
||||
"website": "https://github.com/c4illin/ConvertX",
|
||||
"docs": "https://github.com/c4illin/ConvertX#environment-variables"
|
||||
},
|
||||
"tags": [
|
||||
"media",
|
||||
"converter",
|
||||
"ffmpeg"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "metube",
|
||||
"name": "MeTube",
|
||||
"version": "latest",
|
||||
"description": "MeTube is a web-based YouTube downloader that allows downloading videos and audio using yt-dlp.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/alexta69/metube",
|
||||
"website": "https://github.com/alexta69/metube",
|
||||
"docs": "https://github.com/alexta69/metube/wiki"
|
||||
},
|
||||
"tags": [
|
||||
"downloader",
|
||||
"youtube",
|
||||
"media"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pinchflat",
|
||||
"name": "Pinchflat",
|
||||
"version": "latest",
|
||||
"description": "Pinchflat is a self-hosted YouTube downloader that allows you to download videos and playlists with a simple web interface.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/kieraneglin/pinchflat",
|
||||
"website": "https://github.com/kieraneglin/pinchflat",
|
||||
"docs": "https://github.com/kieraneglin/pinchflat"
|
||||
},
|
||||
"tags": [
|
||||
"youtube",
|
||||
"downloader",
|
||||
"media"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "yt-dlp-webui",
|
||||
"name": "yt-dlp-webui",
|
||||
"version": "latest",
|
||||
"description": "yt-dlp-webui is a web interface for yt-dlp, allowing you to download videos and audio from various platforms with a simple web UI.",
|
||||
"logo": "logo.ico",
|
||||
"links": {
|
||||
"github": "https://github.com/marcopiovanello/yt-dlp-web-ui",
|
||||
"website": "https://github.com/marcopiovanello/yt-dlp-web-ui",
|
||||
"docs": "https://github.com/marcopiovanello/yt-dlp-web-ui"
|
||||
},
|
||||
"tags": [
|
||||
"downloader",
|
||||
"youtube",
|
||||
"media",
|
||||
"webui"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "flaresolverr",
|
||||
"name": "FlareSolverr",
|
||||
"version": "latest",
|
||||
"description": "FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/FlareSolverr/FlareSolverr",
|
||||
"website": "https://github.com/FlareSolverr/FlareSolverr",
|
||||
"docs": "https://github.com/FlareSolverr/FlareSolverr"
|
||||
},
|
||||
"tags": [
|
||||
"proxy",
|
||||
"cloudflare",
|
||||
"bypass",
|
||||
"ddos-guard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "neko",
|
||||
"name": "Neko",
|
||||
"version": "latest",
|
||||
"description": "Neko is a self-hosted virtual browser that runs in Docker and allows you to share browser sessions with others.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/m1k1o/neko",
|
||||
"website": "https://github.com/m1k1o/neko",
|
||||
"docs": "https://github.com/m1k1o/neko"
|
||||
},
|
||||
"tags": [
|
||||
"browser",
|
||||
"virtual",
|
||||
"sharing",
|
||||
"remote"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "omni-tools",
|
||||
"name": "Omni-Tools",
|
||||
"version": "latest",
|
||||
"description": "Omni-Tools is a collection of useful tools in a single self-hosted web application.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/iib0011/omni-tools",
|
||||
"website": "https://github.com/iib0011/omni-tools",
|
||||
"docs": "https://github.com/iib0011/omni-tools"
|
||||
},
|
||||
"tags": [
|
||||
"tools",
|
||||
"utilities",
|
||||
"collection",
|
||||
"self-hosted"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "openhands",
|
||||
"name": "OpenHands",
|
||||
"version": "0.1.1",
|
||||
"description": "OpenHands is an open-source platform for running and managing AI agents.",
|
||||
"logo": "image.png",
|
||||
"links": {
|
||||
"github": "https://github.com/all-hands-ai/OpenHands",
|
||||
"website": "https://github.com/all-hands-ai/OpenHands",
|
||||
"docs": "https://github.com/all-hands-ai/OpenHands"
|
||||
},
|
||||
"tags": [
|
||||
"ai",
|
||||
"agents",
|
||||
"llm",
|
||||
"openai"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "web-check",
|
||||
"name": "Web-Check",
|
||||
"version": "latest",
|
||||
"description": "Web-Check is a powerful all-in-one website analyzer that provides detailed insights into any website's security, performance, and functionality.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/lissy93/web-check",
|
||||
"website": "https://github.com/lissy93/web-check",
|
||||
"docs": "https://github.com/lissy93/web-check"
|
||||
},
|
||||
"tags": [
|
||||
"website-analyzer",
|
||||
"security",
|
||||
"performance",
|
||||
"seo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "dumbdrop",
|
||||
"name": "DumbDrop",
|
||||
"version": "latest",
|
||||
"description": "DumbDrop is a simple, self-hosted file sharing service with no database or authentication required.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/dumbwareio/dumbdrop",
|
||||
"website": "https://www.dumbware.io/software/DumbDrop/",
|
||||
"docs": "https://github.com/dumbwareio/dumbdrop"
|
||||
},
|
||||
"tags": [
|
||||
"file-sharing",
|
||||
"self-hosted",
|
||||
"simple"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "dumbassets",
|
||||
"name": "DumbAssets",
|
||||
"version": "latest",
|
||||
"description": "DumbAssets is a simple, self-hosted asset tracking service with no database or authentication required.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/dumbwareio/dumbassets",
|
||||
"website": "https://www.dumbware.io/software/DumbAssets/",
|
||||
"docs": "https://github.com/dumbwareio/dumbassets"
|
||||
},
|
||||
"tags": [
|
||||
"asset-tracking",
|
||||
"self-hosted",
|
||||
"simple"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "dumbpad",
|
||||
"name": "DumbPad",
|
||||
"version": "latest",
|
||||
"description": "DumbPad is a simple, self-hosted notepad service with PIN protection and no database required.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/dumbwareio/dumbpad",
|
||||
"website": "https://www.dumbware.io/software/DumbPad/",
|
||||
"docs": "https://github.com/dumbwareio/dumbpad"
|
||||
},
|
||||
"tags": [
|
||||
"notepad",
|
||||
"self-hosted",
|
||||
"simple"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "dumbbudget",
|
||||
"name": "DumbBudget",
|
||||
"version": "latest",
|
||||
"description": "DumbBudget is a simple, self-hosted budget tracking service with PIN protection and no database required.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/dumbwareio/dumbbudget",
|
||||
"website": "https://www.dumbware.io/software/DumbBudget/",
|
||||
"docs": "https://github.com/dumbwareio/dumbbudget"
|
||||
},
|
||||
"tags": [
|
||||
"budget",
|
||||
"finance",
|
||||
"self-hosted",
|
||||
"simple"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "tianji",
|
||||
"name": "Tianji",
|
||||
"version": "latest",
|
||||
"description": "Tianji is a lightweight web analytic service and uptime monitoring tool.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/msgbyte/tianji",
|
||||
"website": "https://github.com/msgbyte/tianji",
|
||||
"docs": "https://github.com/msgbyte/tianji"
|
||||
},
|
||||
"tags": [
|
||||
"analytics",
|
||||
"monitoring",
|
||||
"web",
|
||||
"uptime"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "directory-lister",
|
||||
"name": "Directory Lister",
|
||||
"version": "latest",
|
||||
"description": "Directory Lister is a simple PHP application that lists the contents of any web-accessible directory and allows navigation there within.",
|
||||
"logo": "logo.png",
|
||||
"links": {
|
||||
"github": "https://github.com/DirectoryLister/DirectoryLister",
|
||||
"website": "https://www.directorylister.com/",
|
||||
"docs": "https://docs.directorylister.com/"
|
||||
},
|
||||
"tags": [
|
||||
"file-manager",
|
||||
"directory-listing",
|
||||
"php"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "grimoire",
|
||||
"name": "Grimoire",
|
||||
"version": "latest",
|
||||
"description": "Grimoire is a self-hosted bookmarking app designed for speed and simplicity.",
|
||||
"logo": "logo.webp",
|
||||
"links": {
|
||||
"github": "https://github.com/goniszewski/grimoire",
|
||||
"website": "https://github.com/goniszewski/grimoire",
|
||||
"docs": "https://github.com/goniszewski/grimoire"
|
||||
},
|
||||
"tags": [
|
||||
"bookmarks",
|
||||
"self-hosted",
|
||||
"knowledge-management"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||