PageSourceSearch

https://easypanel-templates.netlify.app/_next/static/chunks/578-4ad4062313d3f3df.js

js easypanel-templates.netlify.app collected 2026-10-03 11:42:24 UTC 3,346,667 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[578],{5578:function(e,t,a){a.r(t),a.d(t,{default:function(){return pt}});var i=a(5893),o=a(3978),n=a(7747),r=a(3717),s=a(1293),c=a(3108),l=a(5281),p=a(9004),d=a(4025),u=a(4717),m=a(1163),g=a(7294),h=a(2418),f=a(3472),y=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t="abcdefghijklmnopqrstuvwxyz0123456789",a="",i=0;i<e;i++)a+=t[Math.floor(Math.random()*t.length)];return a},v=function(){return y(20)},b=function(e){return"string"!==typeof e?e:""===e.trim()?void 0:e},S=f.z.string().regex(/^[a-z0-9-_]+$/,"Invalid name. Use lowercase letters (a-z), digits (0-9), dash (-), underscore (_)."),w=f.z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,62}$/,"Invalid name."),A=f.z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,62}$/,"Invalid name."),I=f.z.string().regex(/^[\w-/]*$/,"Invalid name. Use lowercase letters (a-z), uppercase letters (A-Z), digits (0-9), dash (-), slash (/), underscore (_)."),E=f.z.string().regex(/^[a-z0-9-_]+$/,"Invalid name. Use lowercase letters (a-z), digits (0-9), dash (-), underscore (_)."),k=f.z.string().regex(/^[a-z0-9-_]+$/,"Invalid name. Use lowercase letters (a-z), digits (0-9), dash (-), underscore (_)."),N=f.z.string().regex(/^[a-z0-9-_]+$/,"Invalid name. Use lowercase letters (a-z), digits (0-9), dash (-), underscore (_)."),P=f.z.string().regex(/^[^\s*]+$/),_=(f.z.number().min(0).max(65535),f.z.preprocess(b,f.z.string().default(v))),T=f.z.array(f.z.union([f.z.object({type:f.z.literal("bind"),hostPath:f.z.string().min(1),mountPath:f.z.string().min(1)}),f.z.object({type:f.z.literal("volume"),name:N,mountPath:f.z.string().min(1)}),f.z.object({type:f.z.literal("file"),content:f.z.string(),mountPath:f.z.string().min(1)})])).default([]),R=f.z.object({replicas:f.z.number().default(1),command:f.z.string().nullable().default(null),zeroDowntime:f.z.boolean().default(!0),capAdd:f.z.array(f.z.string()).optional(),capDrop:f.z.array(f.z.string()).optional(),sysctls:f.z.record(f.z.string(),f.z.string()).optional(),groups:f.z.array(f.z.string()).optional(),tiniInit:f.z.boolean().optional()}).default({}),D=f.z.array(f.z.object({username:f.z.string(),password:f.z.string()})).optional(),O=(f.z.array(f.z.object({regex:f.z.string(),replacement:f.z.string(),permanent:f.z.boolean(),enabled:f.z.boolean()})).optional(),f.z.array(f.z.object({name:f.z.string().min(1),script:f.z.string().min(1)})).optional()),M=f.z.union([f.z.object({type:f.z.literal("image"),image:f.z.string(),username:f.z.string().optional(),password:f.z.string().optional()}),f.z.object({type:f.z.literal("github"),owner:f.z.string().min(1),repo:f.z.string().min(1),ref:f.z.string().min(1),path:f.z.string().regex(/^\//),autoDeploy:f.z.boolean()}),f.z.object({type:f.z.literal("git"),repo:f.z.string().min(1),ref:f.z.string().min(1),path:f.z.string().regex(/^\//)}),f.z.object({type:f.z.literal("dockerfile"),dockerfile:f.z.string().min(1)})]).optional(),C=f.z.union([f.z.object({type:f.z.literal("inline"),content:f.z.string()}),f.z.object({type:f.z.literal("git"),repo:f.z.string(),ref:f.z.string(),rootPath:f.z.string(),composeFile:f.z.string()})]).optional(),L=f.z.array(f.z.object({regex:f.z.string(),replacement:f.z.string(),permanent:f.z.boolean(),enabled:f.z.boolean()})).optional(),x=f.z.array(f.z.object({username:f.z.string(),password:f.z.string()})).optional(),U=f.z.union([f.z.object({type:f.z.literal("dockerfile"),file:f.z.string().optional()}),f.z.object({type:f.z.literal("heroku-buildpacks")}),f.z.object({type:f.z.literal("paketo-buildpacks")}),f.z.object({type:f.z.literal("nixpacks"),installCommand:f.z.string().optional(),buildCommand:f.z.string().optional(),startCommand:f.z.string().optional(),nixPackages:f.z.string().optional(),aptPackages:f.z.string().optional()})]).optional(),B=f.z.object({memoryReservation:f.z.number(),memoryLimit:f.z.number(),cpuReservation:f.z.number(),cpuLimit:f.z.number()}).optional(),z=(f.z.object({enabled:f.z.boolean(),schedule:f.z.string().min(1),destinationId:f.z.string().min(1),prefix:I,databaseName:f.z.string().optional()}).optional(),f.z.array(f.z.object({published:f.z.number(),target:f.z.number(),protocol:f.z.union([f.z.literal("tcp"),f.z.literal("udp")]).default("tcp")})).default([])),G=f.z.array(f.z.object({host:P,https:f.z.boolean().default(!0),port:f.z.number().default(80),path:f.z.string().startsWith("/").default("/"),middlewares:f.z.array(f.z.string()).optional(),certificateResolver:f.z.string().optional(),wildcard:f.z.boolean().default(!1)})).default([]),H=f.z.array(f.z.object({https:f.z.boolean().default(!0),host:P,port:f.z.number().default(80),service:f.z.string().default(""),path:f.z.string().startsWith("/").default("/"),middlewares:f.z.array(f.z.string()).optional(),certificateResolver:f.z.string().optional(),wildcard:f.z.boolean().default(!1)})).default([]),W=f.z.object({enabled:f.z.boolean(),title:f.z.string().optional(),subtitle:f.z.string().optional(),customLogo:f.z.string().optional(),customCss:f.z.string().optional(),hideLogo:f.z.boolean().optional(),hideLinks:f.z.boolean().optional()}).optional(),F=f.z.array(f.z.object({name:k,command:f.z.string(),directory:f.z.string(),enabled:f.z.boolean()})).default([]),j=f.z.array(f.z.object({name:f.z.string(),content:f.z.string(),webhookToken:f.z.string(),schedule:f.z.string().optional(),enabled:f.z.boolean()})).default([]),V=f.z.object({name:f.z.string().optional(),email:f.z.string().optional(),url:f.z.string().optional(),branch:f.z.string().optional()}).optional(),q="\nserver {\n\tlisten 80 default_server;\n\tlisten [::]:80 default_server;\n\n\troot {{ document_root }};\n\n\tindex index.php index.html;\n\n\tserver_name _;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ =404;\n\t}\n\n\tlocation ~ .php$ {\n\t\tinclude snippets/fastcgi-php.conf;\n\t\tfastcgi_pass {{ fpm_socket }};\n\t}\n}\n".trim(),Y=f.z.object({defaultFolder:f.z.string().default("/code"),token:f.z.string().default((function(){return y(20)})),enabled:f.z.boolean().default(!0)}).optional(),$=f.z.object({buildScript:f.z.string().default(""),startScript:f.z.string().default("")}).optional(),K=f.z.object({version:f.z.string().default("8.3"),maxUploadSize:f.z.string().default("128M"),maxExecutionTime:f.z.string().default("30"),opcache:f.z.boolean().default(!0),phpIni:f.z.string().default(""),enabled:f.z.boolean().default(!0),ioncube:f.z.boolean().default(!1),sqlsrv:f.z.boolean().default(!1)}).optional(),J=f.z.object({version:f.z.string().default("18"),yarn:f.z.boolean().default(!1),pnpm:f.z.boolean().default(!1),enabled:f.z.boolean().default(!0)}).optional(),Q=f.z.object({rootDocument:f.z.string().default("/code"),config:f.z.string().default(q),enabled:f.z.boolean().default(!0)}).optional(),X=f.z.object({version:f.z.string().default("3"),enabled:f.z.boolean().default(!1)}).optional(),Z=f.z.object({version:f.z.string().default("2.6"),enabled:f.z.boolean().default(!1)}).optional(),ee=f.z.object({ide:f.z.boolean().default(!1),advanced:f.z.boolean().default(!1),php:f.z.boolean().default(!1),nodejs:f.z.boolean().default(!1),nginx:f.z.boolean().default(!1),python:f.z.boolean().default(!1),ruby:f.z.boolean().default(!1),deployments:f.z.boolean().default(!1),git:f.z.boolean().default(!1),domains:f.z.boolean().default(!1),redirects:f.z.boolean().default(!1),basicAuth:f.z.boolean().default(!1),mounts:f.z.boolean().default(!1),processes:f.z.boolean().default(!1),scripts:f.z.boolean().default(!1),ports:f.z.boolean().default(!1),resources:f.z.boolean().default(!1),env:f.z.boolean().default(!1)}).default({}),te=f.z.object({script:f.z.string().default(""),token:f.z.string().default((function(){return y(20)}))}).default({}),ae=f.z.array(f.z.union([f.z.object({type:f.z.literal("bind"),hostPath:f.z.string(),mountPath:f.z.string()}),f.z.object({type:f.z.literal("volume"),name:f.z.string(),mountPath:f.z.string()}),f.z.object({type:f.z.literal("file"),content:f.z.string(),mountPath:f.z.string()})])).default([]),ie=f.z.array(f.z.object({regex:f.z.string(),replacement:f.z.string(),permanent:f.z.boolean(),enabled:f.z.boolean()})).default([]),oe=f.z.array(f.z.object({username:f.z.string(),password:f.z.string()})).default([]),ne=f.z.array(f.z.object({published:f.z.number(),target:f.z.number(),protocol:f.z.union([f.z.literal("tcp"),f.z.literal("udp")]).default("tcp")})).default([]),re=f.z.object({content:f.z.string().default("")}).optional(),se=(f.z.object({projectName:S,serviceName:E,codeInitialized:f.z.boolean().default(!1),deployment:te,git:V,domains:f.z.array(f.z.object({host:f.z.string(),https:f.z.boolean(),port:f.z.number(),path:f.z.string(),middlewares:f.z.array(f.z.string()).optional()})).default([]),redirects:ie,basicAuth:oe,mounts:ae,processes:F,scripts:j,ports:ne,resources:B,modules:ee,ide:Y,advanced:$,php:K,nodejs:J,nginx:Q,python:X,ruby:Z,env:re}),f.z.object({name:f.z.string().optional(),email:f.z.string().optional(),url:f.z.string().optional(),branch:f.z.string().optional()}).optional()),ce=f.z.array(f.z.object({regex:f.z.string(),replacement:f.z.string(),permanent:f.z.boolean(),enabled:f.z.boolean()})).default([]),le=f.z.array(f.z.object({username:f.z.string(),password:f.z.string()})).default([]),pe=f.z.object({content:f.z.string().default("")}).optional(),de=f.z.array(f.z.object({name:f.z.string(),content:f.z.string(),webhookToken:f.z.string(),schedule:f.z.string().optional(),enabled:f.z.boolean()})).default([]),ue=f.z.object({enabled:f.z.boolean().default(!0),defaultFolder:f.z.string().default("/code"),token:f.z.string().default((function(){return y(20)}))}).optional(),me=f.z.object({version:f.z.string().default("8.3"),maxUploadSize:f.z.string().default("128M"),maxExecutionTime:f.z.string().default("30"),opcache:f.z.boolean().default(!0),phpIni:f.z.string().default(""),ioncube:f.z.boolean().default(!1),sqlsrv:f.z.boolean().default(!1)}).optional(),ge=f.z.object({rootDocument:f.z.string().default("/code"),config:f.z.string().default(q)}).optional(),he=f.z.object({host:f.z.string(),https:f.z.boolean(),port:f.z.number(),path:f.z.string(),middlewares:f.z.array(f.z.string()).optional(),certificateResolver:f.z.string().optional()}),fe=(f.z.object({projectName:S,serviceName:E,codeInitialized:f.z.boolean().default(!1),initialVersion:f.z.string().default("latest"),git:se,domain:he,redirects:ce,basicAuth:le,scripts:de,resources:B,ide:ue,php:me,nginx:ge,env:pe}),f.z.object({projectName:S,serviceName:E,source:M,build:U,env:f.z.string().default(""),basicAuth:D,deploy:R,domains:G,mounts:T,ports:z,resources:B,maintenance:W,scripts:O})),ye=f.z.object({projectName:S,serviceName:E,source:C,env:f.z.string().default(""),createDotEnv:f.z.boolean().default(!1),domains:H,redirects:L,basicAuth:x,maintenance:W}),ve=f.z.object({projectName:S,serviceName:E,user:A.optional(),image:f.z.preprocess(b,f.z.string().default("mongo:8")),password:_,resources:B,env:f.z.string().optional(),command:f.z.string().optional()}),be=f.z.object({projectName:S,serviceName:E,databaseName:w.optional(),user:A.optional(),image:f.z.preprocess(b,f.z.string().default("mysql:9")),password:_,rootPassword:_,resources:B,env:f.z.string().optional(),command:f.z.string().optional()}),Se=f.z.object({projectName:S,serviceName:E,databaseName:w.optional(),user:A.optional(),image:f.z.preprocess(b,f.z.string().default("mariadb:11")),password:_,rootPassword:_,resources:B,env:f.z.string().optional(),command:f.z.string().optional()}),we=f.z.object({projectName:S,serviceName:E,databaseName:w.optional(),user:A.optional(),image:f.z.preprocess(b,f.z.string().default("postgres:17")),password:_,resources:B,env:f.z.string().optional(),command:f.z.string().optional()}),Ae=f.z.object({projectName:S,serviceName:E,image:f.z.preprocess(b,f.z.string().default("redis:7")),password:_,resources:B,env:f.z.string().optional(),command:f.z.string().optional()});f.z.object({services:f.z.array(f.z.union([f.z.object({type:f.z.literal("app"),data:fe.omit({projectName:!0})}),f.z.object({type:f.z.literal("mysql"),data:be.omit({projectName:!0})}),f.z.object({type:f.z.literal("mariadb"),data:Se.omit({projectName:!0})}),f.z.object({type:f.z.literal("mongo"),data:ve.omit({projectName:!0})}),f.z.object({type:f.z.literal("postgres"),data:we.omit({projectName:!0})}
1),f.z.object({type:f.z.literal("redis"),data:Ae.omit({projectName:!0})}),f.z.object({type:f.z.literal("compose"),data:ye.omit({projectName:!0})})]))}),f.z.object({id:f.z.string(),projectName:S,serviceName:E,subdomain:f.z.string(),domain:f.z.string(),path:f.z.string(),internalProtocol:f.z.enum(["http","https"]),internalPort:f.z.number(),zoneId:f.z.string(),dnsRecordId:f.z.string()});function Ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Ee(e){return function(e){if(Array.isArray(e))return Ie(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Ie(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ie(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Ne(e){return function(e){if(Array.isArray(e))return ke(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return ke(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return ke(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function _e(e){return function(e){if(Array.isArray(e))return Pe(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Pe(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Pe(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Te(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Re(e){return function(e){if(Array.isArray(e))return Te(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Te(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Te(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function De(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Oe(e){return function(e){if(Array.isArray(e))return De(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return De(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return De(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var Me=a(2474);function Ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Le(e){return function(e){if(Array.isArray(e))return Ce(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Ce(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ce(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var xe=function(e,t,a,i,o,n,r,s){return'server {\n  listen 80;\n  server_name _;\n  client_max_body_size 100M;
1\n\n  location / {\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection "upgrade";\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_pass http://'.concat(e,":8080;\n  }\n\n  location /_accounts {\n    proxy_http_version 1.1;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    rewrite ^/_accounts(/.*)$ $1 break;\n    proxy_pass http://").concat(t,':3000/;\n  }\n\n  location /_transactor {\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection "upgrade";\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_read_timeout 86400;\n    rewrite ^/_transactor(/.*)$ $1 break;\n    proxy_pass http://').concat(a,':3333/;\n  }\n\n  location ~ ^/eyJ {\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection "upgrade";\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_pass http://').concat(a,':3333;\n  }\n\n  location /_collaborator {\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection "upgrade";\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_read_timeout 86400;\n    rewrite ^/_collaborator(/.*)$ $1 break;\n    proxy_pass http://').concat(i,":3078/;\n  }\n\n  location /_rekoni {\n    proxy_http_version 1.1;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    rewrite ^/_rekoni(/.*)$ $1 break;\n    proxy_pass http://").concat(o,":4004/;\n  }\n\n  location /_stats {\n    proxy_http_version 1.1;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    rewrite ^/_stats(/.*)$ $1 break;\n    proxy_pass http://").concat(n,":4900/;\n  }\n").concat(s?"\n  location /_love {\n    proxy_http_version 1.1;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    rewrite ^/_love(/.*)$ $1 break;\n    proxy_pass http://".concat(s,":8096/;\n  }\n"):"","\n  location /files {\n    proxy_http_version 1.1;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_pass http://").concat(r,":9000;\n  }\n}\n")};function Ue(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Be(e){return function(e){if(Array.isArray(e))return Ue(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Ue(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ue(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var ze=a(1876).Buffer;function Ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function He(e){return function(e){if(Array.isArray(e))return Ge(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Ge(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ge(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function We(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Fe(e){return function(e){if(Array.isArray(e))return We(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return We(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return We(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function je(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Ve(e){return function(e){if(Array.isArray(e))return je(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return je(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return je(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Ye(e){return function(e){if(Array.isArray(e))return qe(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return qe(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return qe(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var $e=a(1876).Buffer;function Ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Je(e){return function(e){if(Array.isArray(e))return Ke(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Ke(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ke(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function Xe(e){return function(e){if(Array.isArray(e))return Qe(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Qe(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Qe(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=new Array(t);a<t;a++)i[a]=e[a];return i}function et(e){return function(e){if(Array.isArray(e))return Ze(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Ze(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ze(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var tt=function(e,t,a,i,o,n,r,s,c,l,p,d,u){return"\nservice:\n  env: hosted\n  secret: ".concat(y(32),"\n\nsite:\n  url: https://$(PRIMARY_DOMAIN)\n  ingest_url: https://$(PRIMARY_DOMAIN)?grpc=14317\n\nlisten:\n  http:\n    addr: :80\n  grpc:\n    addr: :4317\n\nauth: {}\n\nseed_data:\n  update: true\n  delete: true\n  users:\n    - key: user1\n      name: ").concat(s,"\n      email: ").concat(c,"\n      password: ").concat(l,"\n      email_confirmed: true\n  user_tokens:\n    - key: user_token1\n      user_key: user1\n      token: ").concat(y(32),"\n  orgs:\n    - key: org1\n      name: ").concat(p,"\n  org_users:\n    - key: org_user1\n      org_key: org1\n      user_key: user1\n      role: owner\n  projects:\n    - key: project1\n      name: ").concat(d,'\n      org_key: org1\n  project_tokens:\n    - key: project_token1\n      project_key: project1\n      token: "').concat(u,'"\n  project_users:\n    - key: project_user1\n      project_key: project1\n      org_user_key: org_user1\n      perm_level: admin\n\nch_cluster:\n  cluster: uptrace1\n  replicated: false\n  distributed: false\n  shards:\n    - replicas:\n        - addr: ').concat(e,":9000\n          database: uptrace\n          user: uptrace\n          password: ").concat(JSON.stringify(t),"\n\npg:\n  addr: ").concat(a,":5432\n  user: postgres\n  password: ").concat(i,"\n  database: $(PROJECT_NAME)\n\nch_schema:\n  compression: ZSTD(1)\n  spans_index: { storage_policy: default }\n  spans_data: { storage_policy: default }\n  span_links: { storage_policy: default }\n  logs_index: { storage_policy: default }\n  logs_data: { storage_policy: default }\n  events_index: { storage_policy: default }\n  events_data: { storage_policy: default }\n  metrics: { storage_policy: default }\n\nredis_cache:\n  addrs:\n    1: ").concat(o,":6379\n  username: default\n  password: ").concat(n,"\n  db: 0\n\nmailer:\n  smtp:\n    enabled: false\n    host: localhost\n    port: 1025\n    username: mailhog\n    password: mailhog\n    from: [email protected]\n\nself_monitoring:\n  dsn: http://").concat(u,"@").concat(r,":80?grpc=14317\n\nlogging:\n  level: INFO\n")},at=function(e,t){return"\nextensions:\n  health_check:\n\nreceivers:\n  otlp:\n    protocols:\n      grpc:\n      http:\n  hostmetrics:\n    collection_interval: 10s\n    scrapers:\n      cpu:\n      disk:\n      load:\n      filesystem:\n      memory:\n      network:\n      paging:\n\nprocessors:\n  resourcedetection:\n    detectors: ['system']\n  batch:\n    send_batch_size: 10000\n    timeout: 10s\n\nexporters:\n  otlp/uptrace:\n    endpoint: http://".concat(e,":4317\n    tls: { insecure_skip_verify: true }\n    headers: { 'uptrace-dsn': 'http://").concat(t,"@localhost?grpc=14317' }\n\nservice:\n  telemetry:\n    metrics:\n      address: ':8888'\n  pi
1pelines:\n    traces:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [otlp/uptrace]\n    metrics:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [otlp/uptrace]\n    metrics/hostmetrics:\n      receivers: [hostmetrics]\n      processors: [batch, resourcedetection]\n      exporters: [otlp/uptrace]\n    logs:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [otlp/uptrace]\n  extensions: [health_check]\n")},it=function(e,t){return'\n[sources.syslog_logs]\ntype = "demo_logs"\nformat = "syslog"\n\n[transforms.parse_logs]\ntype = "remap"\ninputs = ["syslog_logs"]\nsource = \'\'\'\n. = parse_syslog!(string!(.message))\n\'\'\'\n\n[sinks.uptrace]\ntype = "http"\nmethod = "post"\ninputs = ["parse_logs"]\nencoding.codec = "json"\nframing.method = "newline_delimited"\ncompression = "gzip"\nuri = "http://'.concat(e,':80/api/v1/vector/logs"\ntls.verify_certificate = false\nrequest.headers.uptrace-dsn = "http://').concat(t,'@localhost?grpc=14317"\n')},ot=function(e,t){return"\napiVersion: 1\n\ndatasources:\n  - name: Uptrace\n    type: prometheus\n    url: http://".concat(e,":80/api/v1/prometheus\n    access: proxy\n    isDefault: true\n    jsonData:\n      httpHeaderName1: 'uptrace-dsn'\n    secureJsonData:\n      httpHeaderValue1: 'http://").concat(t,"@localhost?grpc=14317'\n")},nt=function(e,t){return"\nglobal:\n  scrape_interval: 15s\n  evaluation_interval: 15s\n  external_labels:\n    monitor: 'uptrace'\n\nscrape_configs:\n  - job_name: 'prometheus'\n    scrape_interval: 15s\n    static_configs:\n      - targets: ['localhost:9090']\n\nremote_write:\n  - url: 'http://".concat(e,":80/api/v1/prometheus/write'\n    headers:\n      'uptrace-dsn': 'http://").concat(t,"@localhost?grpc=14317'\n")};var rt=[{slug:"13ft",meta:{name:"13ft",description:'13ft is a self-hosted paywall bypass and "read it later" style proxy. Paste an article URL and it fetches the page the way a search engine crawler would see it, falling back to Freedium or an archive.org/archive.today snapshot if the direct fetch is blocked. It\'s fully stateless with no login of its own, so it is protected with HTTP Basic Auth instead.',instructions:"Open the app URL and sign in with the HTTP Basic Auth prompt using username admin and the auto-generated password shown as this service's first basic auth entry in 
1Easypanel. Paste any article URL on the home page to fetch a de-paywalled version of it.",changeLog:[{date:"2026-07-21",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/wasi-master/13ft"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","locale"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"13ft"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/wasi-master/13ft:0.4.1"},locale:{type:"string",title:"Locale",oneOf:[{enum:["en"],title:"English"},{enum:["de"],title:"German"},{enum:["fr"],title:"French"},{enum:["ko"],title:"Korean"}],default:"en"}}},benefits:[{title:"No Account, No Data Kept",description:"There's no database and no user accounts \u2014 the app is fully stateless, so there's nothing to back up or lose."},{title:"Multiple Fallback Sources",description:"If the direct crawler-style fetch is blocked, it automatically tries Freedium, then archive.org and archive.today snapshots."},{title:"Self-Hosted, No Third-Party Proxy",description:"Requests go straight from your own server instead of through a shared public instance you don't control."}],features:[{title:"Crawler-Style Fetching",description:"Requests pages with a search-engine-crawler user agent, which many paywalls leave unblocked for indexing purposes."},{title:"Archive Fallbacks",description:"Automatically retries against Freedium, archive.org, and archive.today when the direct fetch fails or hits an anti-bot challenge."},{title:"Multi-Language UI",description:"Choose between English, German, French, and Korean."}],tags:["Paywall Bypass","Proxy","Self-Hosted","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(20);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["LOCALE=".concat(e.locale),"PORT=5000"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],basicAuth:[{username:"admin",password:a}]}}),{services:t}}},{slug:"2fauth",meta:{name:"2FAuth",description:"2FAuth is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop.",instructions:null,changeLog:[{date:"2024-03-17",description:"First Release"},{date:"2025-01-06",description:"Version bumped to 5.4.3"},{date:"2025-12-24",description:"Version bumped to 5.6.1"},{date:"2026-02-18",description:"Version bumped to 6.0.0"},{date:"2026-04-29",description:"Version bumped to 6.1.3"}],links:[{label:"Website",url:"https://2fauth.app/"},{label:"Documentation",url:"https://docs.2fauth.app/"},{label:"Github",url:"https://github.com/Bubka/2FAuth"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"2fauth"},appServiceImage:{type:"string",title:"App Service Image",default:"2fauth/2fauth:6.1.3"},appOwnerMail:{type:"string",title:"App Owner Mail",default:"[email protected]"},databaseType:{type:"string",title:"Database Type",default:"sqlite",oneOf:[{enum:["sqlite"],title:"SQLite"},{enum:["postgres"],title:"PostgreSQL"},{enum:["mariadb"],title:"MariaDB"},{enum:["mysql"],title:"MySQL"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"2fauth-db"},redis:{type:"boolean",title:"Enable Redis",default:!1},redisServiceName:{type:"string",title:"Database Service Name",default:"2fauth-redis"}}},benefits:[{title:"Increased Security",description:"Two-factor authentication provides a more secure method of access compared to using a password alone. By adding a second authentication factor, you protect your"},{title:"Account Protection",description:"Even if your password is compromised or stolen, a second authentication factor helps secure your account."}],features:[{title:"Generate passwords",description:"The main purpose of 2FAuth Serve you some fresh TOTP/HOTP security codes aka One-Time Passwords."},{title:"Work anywhere",description:"It's a Web App, it just works, whatever device you're on. You only need one device (not even yours) and an Internet connection."},{title:"QR codes scan",description:"Scan and decode QR codes to add a 2FA account in no time. Actually, it decodes any QR code, even non 2FA."},{title:"2FA management",description:"Manage your 2FA accounts, organize and classify them using Groups, edit & delete them. You can even manually add an account without scanning a QR code."},{title:"Protect your data",description:"2FAuth protects your data with Privacy, Self-hosting, WebAuthn authentication, OTP obfuscation, and Auto lock."},{title:"Multi-user",description:"Share your instance with your family, your friends. Everyone can have an account."},{title:"Import / Export",description:"Migrate from another 2FA app to 2FAuth or export your 2FA data in a breeze."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["APP_NAME=2FAuth","APP_ENV=production","APP_DEBUG=false","IS_DEMO_APP=false","SITE_OWNER=".concat(e.appOwnerMail),"APP_KEY=".concat(y(32)),"APP_URL=https://$(PRIMARY_DOMAIN)","LOG_CHANNEL=daily","LOG_LEVEL=notice","THROTTLE_API=60","LOGIN_THROTTLE=5","AUTHENTICATION_GUARD=web-guard","WEBAUTHN_NAME=2FAuth","WEBAUTHN_USER_VERIFICATION=preferred","BROADCAST_DRIVER=log","QUEUE_DRIVER=sync","SESSION_LIFETIME=120"];if("sqlite"===e.databaseType)a.push("DB_CONNECTION=sqlite",'DB_DATABASE="/srv/database/database.sqlite"');else{var i=v();t.push({type:e.databaseType,data:{serviceName:e.databaseServiceName,password:i}}),"postgres"===e.databaseType?a.push("DB_CONNECTION=pgsql","DB_PORT=5432","DB_DATABASE=$(PROJECT_NAME)","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_USERNAME=".concat(e.databaseType),"DB_PASSWORD=".concat(i)):a.push("DB_CONNECTION=mysql","DB_PORT=3306","DB_DATABASE=$(PROJECT_NAME)","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_USERNAME=".concat(e.databaseType),"DB_PASSWORD=".concat(i))}if(e.redis){var o=v();t.push({type:"redis",data:{serviceName:e.redisServiceName,password:o}}),a.push("REDIS_HOST=$(PROJECT_NAME)_".concat(e.redisServiceName),"REDIS_PASSWORD=".concat(o),"REDIS_PORT=6379")}return t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"2fauth",mountPath:"/2fauth"}]}}),{services:t}}},{slug:"4gaboards",meta:{name:"4ga Boards",description:"4ga Boards is a modern, open-source project management and collaboration platform inspired by Trello. It provides a powerful Kanban-style board system for organizing tasks, projects, and workflows. With its intuitive drag-and-drop interface, 4ga Boards makes it easy to visualize work, track progress, and collaborate with teams. The application features customizable boards, lists, and cards, along with support for attachments, user avatars, and project backgrounds. Built with modern web technologies, 4ga Boards offers a seamless experience for managing projects of any size. It's perfect for teams looking for a self-hosted alternative to commercial project management tools, providing full control over your data and workflows. Whether you're managing software development sprints, marketing campaigns, or personal todo lists, 4ga Boards provides the flexibility and features you need.",instructions:"Default credentials are demo/demo. Change the password after first login.",changeLog:[{date:"2025-10-23",description:"Initial Template Release"},{date:"2026-02-23",description:"Version bumped to v3.3.2"},{date:"2026-04-29",description:"Version bumped to v3.3.6"}],links:[{label:"Website",url:"https://4gaboards.com/#home"},{label:"Documentation",url:"https://docs.4gaboards.com"},{label:"GitHub",url:"https://github.com/RARgames/4gaboards"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"4gaboards"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/rargames/4gaboards:3.3.6",description:"4ga Boards Docker image from GitHub Container Registry"}}},benefits:[{title:"Self-Hosted Control",description:"Take full control of your project management data by hosting 4ga Boards on your own infrastructure, ensuring privacy and data sovereignty for your team."},{title:"Kanban Workflow",description:"Visualize your work with intuitive Kanban boards that make it easy to track tasks, manage workflows, and see progress at a glance with drag-and-drop functionality."},{title:"Team Collaboration",description:"Collaborate effectively with your team through shared boards, task assignments, and real-time updates that keep everyone aligned and productive."},{title:"Customizable Boards",description:"Personalize your workspace with custom board backgrounds, user avatars, and flexible organization structures that adapt to your team's unique workflow."}],features:[{title:"Kanban Boards",description:"Create and manage multiple boards with customizable lists and cards for organizing tasks and projects using the proven Kanban methodology."},{title:"Drag and Drop",description:"Intuitive drag-and-drop interface makes it easy to move cards between lists, reorder tasks, and reorganize your workflow without any friction."},{title:"File Attachments",description:"Attach files and documents directly to cards, keeping all project-related materials organized and accessible in one central location."},{title:"User Avatars",description:"Personalize your workspace with custom user avatars that help team members quickly identify who's working on what and build team identity."}
1,{title:"Project Backgrounds",description:"Customize board appearance with project background images that help distinguish different projects and make your workspace more visually appealing."},{title:"PostgreSQL Database",description:"Built on reliable PostgreSQL database backend ensuring data integrity, performance, and scalability for teams of any size."},{title:"Modern Interface",description:"Clean, responsive web interface built with modern technologies provides an excellent user experience across desktop and mobile devices."},{title:"Open Source",description:"Fully open-source project allows you to customize, extend, and contribute to the platform while benefiting from community-driven improvements."}],tags:["Project Management","Kanban","Productivity","Collaboration","Task Management","Self-Hosted","Team Tools","Workflow"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1337}],env:["BASE_URL=https://$(PRIMARY_DOMAIN)","SECRET_KEY=".concat(i),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat("".concat(e.appServiceName,"-db"),":5432/$(PROJECT_NAME)"),"NODE_ENV=production"].join("\n"),mounts:[{type:"volume",name:"user-avatars",mountPath:"/app/public/user-avatars"},{type:"volume",name:"project-background-images",mountPath:"/app/public/project-background-images"},{type:"volume",name:"attachments",mountPath:"/app/private/attachments"}]}}),{services:t}}},{slug:"8mblocal",meta:{name:"8MB Local",description:"8MB Local is a self-hosted file processing and conversion application that provides tools for handling files and generating outputs. Built with modern architecture, 8MB Local offers a web-based interface accessible on port 8001 for processing files and managing uploads and outputs. The system stores uploaded files and generated outputs in separate persistent volumes, ensuring your data is preserved across container restarts. Perfect for individuals and organizations looking for a self-hosted solution for file processing and management.",instructions:null,changeLog:[{date:"2025-01-23",description:"Initial Template Release"},{date:"2026-04-29",description:"Version bumped to v137"},{date:"2026-09-14",description:"Version bumped to v142"}],links:[{label:"Website",url:"https://8mb.campuscal.tech/"},{label:"GitHub",url:"https://github.com/JMS1717/8mb.local"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"8mblocal"},appServiceImage:{type:"string",title:"App Service Image",default:"jms1717/8mblocal:v142"}}},benefits:[{title:"File Processing",description:"Process and convert files with a self-hosted solution that gives you complete control over your file processing workflows."},{title:"Self-Hosted Solution",description:"Keep your files and processing data private and under your control with a self-hosted deployment."},{title:"Separate Storage Volumes",description:"Uploads and outputs are stored in separate persistent volumes, making it easy to manage and backup your data."},{title:"Web-Based Interface",description:"Access and manage your file processing through a modern web interface accessible on port 8001."}],features:[{title:"File Upload Management",description:"Upload and manage files through the web interface with dedicated storage for uploads."},{title:"Output Generation",description:"Generate and manage processed outputs with dedicated storage for output files."},{title:"Persistent Storage",description:"Uploads are stored in a dedicated volume at /app/uploads and outputs at /app/outputs for reliable data persistence."},{title:"Containerized Deployment",description:"Easily deploy 8MB Local in any environment that supports Docker with minimal configuration requirements."}],tags:["File Processing","Self-Hosted","File Management","Conversion","Docker"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8001}],mounts:[{type:"volume",name:"uploads",mountPath:"/app/uploads"},{type:"volume",name:"outputs",mountPath:"/app/outputs"}]}}),{services:t}}},{slug:"accent",meta:{name:"Accent",description:"Accent is a free and open-source web-based collaboration platform for translation and localization projects. It provides a clean interface for translators to work together on various file formats including JSON, YAML, Properties, Gettext PO, and many more. Accent supports real-time collaboration, version control integration, and automated workflows to streamline the translation process. It features role-based access control, translation memory, and comprehensive reporting tools to help manage translation projects efficiently.",instructions:null,changeLog:[{date:"2025-07-14",description:"Initial template release"},{date:"2026-04-29",description:"Version bumped to v1.29.0"}],links:[{label:"Website",url:"https://www.accent.reviews"},{label:"Documentation",url:"https://www.accent.reviews/guides/getting-started"},{label:"GitHub",url:"https://github.com/mirego/accent"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"accent"},appServiceImage:{type:"string",title:"App Service Image",default:"mirego/accent:v1.29.0"}}},benefits:[{title:"Real-time Collaboration",description:"Multiple translators can work on the same project simultaneously with real-time updates and conflict resolution."},{title:"Version Control Integration",description:"Seamlessly integrates with Git repositories to sync translations with your development workflow."},{title:"Multiple File Formats",description:"Supports JSON, YAML, Properties, Gettext PO, and many other translation file formats."},{title:"Translation Memory",description:"Leverage previous translations to speed up the translation process and ensure consistency across projects."},{title:"API and CLI Tools",description:"Comprehensive API and command-line tools for automation and integration with existing development workflows."}],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(128);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PORT=4000","DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"CANONICAL_URL=https://$(PRIMARY_DOMAIN)","STATIC_URL=https://$(PRIMARY_DOMAIN)","DUMMY_LOGIN_ENABLED=true","SECRET_KEY_BASE=".concat(i)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"ackee",meta:{name:"Ackee",description:"Ackee is a self-hosted, Node.js based analytics tool designed for those who value privacy. It operates on your own server, analyzing the traffic of your websites and providing valuable statistics through a minimalistic interface. Ackee offers an overview of all your websites, allowing you to analyze their collective performance. It provides insights into views, referrers, durations, and more. You can easily add, edit, and delete your domains, with a new tracking code just a few clicks away. Ackee's minimal UI allows you to analyze your data without losing focus, and its multi-step anonymization process ensures your users' privacy. The app allows you to analyze as many domains and apps as you want, and its interface is designed to be fast and easy to navigate. Ackee also offers a centralized GraphQL API, perfect for collecting data from a variety of sources. It uses a multi-step process to keep tracked data anonymized while still providing helpful analytics.",instructions:null,changeLog:[{date:"2022-06-04",description:"first release"},{date:"2024-12-24",description:"updated to Ackee 3.5.1"},{date:"2026-04-29",description:"updated to Ackee 3.6.0"}],links:[{label:"Website",url:"https://ackee.electerious.com/"},{label:"Documentation",url:"https://docs.ackee.electerious.com/"},{label:"Github",url:"https://github.com/electerious/Ackee"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"}],schema:{type:"object",required:["ackeeUsername","ackeePassword","appServiceName","appServiceImage","databaseServiceName"],properties:{ackeeUsername:{type:"string",title:"Ackee Username"},ackeePassword:{type:"string",title:"Ackee Password"}
1,appServiceName:{type:"string",title:"App Service Name",default:"ackee"},appServiceImage:{type:"string",title:"App Service Image",default:"electerious/ackee:3.6.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"ackee-db"}}},benefits:[{title:"Privacy-Focused Analytics",description:"Ackee is a self-hosted, Node.js based analytics tool designed for those who prioritize privacy. It runs on your own server, analyzing the traffic of your websites and providing useful statistics in a minimal interface."},{title:"Data Control",description:"With Ackee, your data remains in your hands. It's 100% open-source and self-hosted, ensuring complete transparency and control over your data."},{title:"Anonymized Tracking",description:"Ackee uses a multi-step anonymization process to keep tracked data anonymized, ensuring that your users stay anonymous while still providing helpful analytics."}],features:[{title:"Dashboard Overview",description:"Ackee provides an overview of all your websites, allowing you to analyze their performance collectively."},{title:"Insights",description:"Ackee offers insights into views, referrers, durations and more, providing all the details you need to understand your website's traffic."},{title:"Domain Management",description:"Ackee allows you to add, edit, and delete your domains. Generating a new tracking code is just a few clicks away."},{title:"Beautiful UI",description:"Ackee's minimal user interface allows you to analyze your data without losing focus, providing insights at a glance."},{title:"Unlimited Domains",description:"With Ackee, you can analyze as many domains and apps as you want, without any restrictions."},{title:"GraphQL API",description:"Ackee features a fully documented GraphQL API that allows you to collect data from a variety of sources, including websites, services, and apps."}],tags:["Analytics","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["WAIT_HOSTS=$(PROJECT_NAME)_".concat(e.databaseServiceName,":27017"),"ACKEE_MONGODB=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":27017"),"ACKEE_USERNAME=".concat(e.ackeeUsername),"ACKEE_PASSWORD=".concat(e.ackeePassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"mongo",data:{serviceName:e.databaseServiceName,image:"mongo:4",password:a}}),{services:t}}},{slug:"activepieces",meta:{name:"Activepieces",description:"Activepieces is a powerful open-source business automation tool designed to streamline your work without the need for coding. It serves as an excellent alternative to Zapier, allowing you to automate your daily tasks or even your entire business with just a few clicks on the user interface. With Activepieces, you can enjoy the flexibility of using our 3rd party no-code apps to quickly read and write to your favorite apps. Currently, we support 74 apps and counting. The tool is self-hosted, ensuring your data remains on your machine, providing an added layer of security. Activepieces also offers infinite flexibility and powerful logging, making it a robust solution for business automation without limits.",instructions:null,changeLog:[{date:"2023-2-27",description:"first release"},{date:"2023-3-16",description:"Fixed startup, added domain properties and version bump to 0.3.6"},{date:"2023-4-6",description:"Various error corrections were made and version was upgraded to 0.3.9."},{date:"2023-5-02",description:"Fixed executing flow, and version bumped to 0.3.13"},{date:"2023-6-03",description:"Version bumped to 0.3.15"},{date:"2023-7-26",description:"Version bumped to 0.5.3"},{date:"2024-3-3",description:"Version bumped to 0.20.3"},{date:"2024-8-1",description:"Version bumped to latest"},{date:"2024-9-30",description:"Changed latest tag to latest bumped version 0.9.1"},{date:"2025-01-06",description:"Changed latest tag to latest bumped version 0.38.6"},{date:"2025-02-21",description:"Version bumped to 0.44.0"},{date:"2025-12-24",description:"Version bumped to 0.74.3"},{date:"2026-02-18",description:"Version bumped to 0.78.1"},{date:"2026-04-29",description:"Version bumped to 0.82.1"}],links:[{label:"Website",url:"https://activepieces.com"},{label:"Documentation",url:"https://activepieces.com/docs"},{label:"Github",url:"https://github.com/activepieces/activepieces"}],contributors:[{name:"abuaboud",url:"https://github.com/abuaboud"},{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"activepieces"},appServiceImage:{type:"string",title:"App Service Image",default:"activepieces/activepieces:0.82.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"activepieces-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"activepieces-redis"}}},benefits:[{title:"Business Automation Without Limits",description:"Automate your daily tasks or your entire business with just a few clicks on the user interface. This app allows you to streamline your operations without interrupting your IT team."},{title:"Infinite Flexibility",description:"The app offers infinite flexibility, allowing you to customize your automation processes to suit your specific needs. It's a powerful tool that can adapt to any business model or workflow."},{title:"Data Security",description:"Keep your data on your machine. With this app, you have full control over your data, ensuring it remains secure and private."},{title:"Free and Open Source",description:"This app is a free and open-source alternative to other business automation tools. It's a cost-effective solution for businesses looking to automate their processes without incurring high costs."}],features:[{title:"No-Code Powerful Logging",description:"The app provides powerful logging features without the need for coding. This makes it easy for anyone to automate their work, regardless of their technical skills."},{title:"Self-Hosted",description:"The app is self-hosted, meaning you can run it on your own server. This gives you complete control over your data and ensures it remains secure."},{title:"74 Apps And Counting",description:"The app supports integration with over 74 apps and counting. This allows you to automate tasks across multiple platforms, making your workflow more efficient."},{title:"Open Source Connectors",description:"The app features open source connectors, allowing you to easily integrate it with other apps and platforms. This makes it a versatile tool that can be used in a variety of business contexts."}],tags:["No-Code","Business Apps","Automation"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=y(64),o=v(),n=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["AP_ENVIRONMENT=prod","AP_ENCRYPTION_KEY=".concat(a),"AP_JWT_SECRET=".concat(i),"AP_FRONTEND_URL=https://$(PRIMARY_DOMAIN)","AP_POSTGRES_DATABASE=$(PROJECT_NAME)","AP_POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"AP_POSTGRES_PORT=5432","AP_EXECUTION_MODE=UNSANDBOXED","AP_POSTGRES_USERNAME=postgres","AP_POSTGRES_PASSWORD=".concat(n),"AP_SANDBOX_RUN_TIME_SECONDS=600","AP_TELEMENTRY=false","AP_REDIS_URL=redis://default:".concat(o,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"AP_SIGN_UP_ENABLED=false","AP_NODE_EXECUTABLE_PATH=/usr/local/bin/node","AP_ENGINE_EXECUTABLE_PATH=dist/packages/engine/main.js"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:o}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:n}}),{services:t}}},{slug:"actualbudget",meta:{name:"Actual Budget",description:"Actual is a personal finance tool designed to help you manage your finances with ease and convenience. This local-first application is 100% free and open-source, providing you with a reliable platform to keep track of your financial transactions. It's written in NodeJS and features a synchronization element that allows your changes to seamlessly move between devices. This means you can access and manage your financial data from any device without any hassle. The app is not just about tracking your expenses, it also includes features for budgeting, account management, and generating reports and filters. With Actual, managing your personal finances becomes a breeze.",instructions:null,changeLog:[{date:"2023-1-25",description:"first release"},{date:"2024-03-10",description:"Version bumped to 24.3.0"},{date:"2024-09-30",description:"Version bumped to 24.9.0"},{date:"2025-01-06",description:"Version bumped to 24.12.0"},{date:"2025-02-21",description:"Version bumped to 25.2.1"},{date:"2025-12-24",description:"Version bumped to 25.12.0"},{date:"2026-02-18",description:"Version bumped to 26.2.1"}],links:[{label:"Github",url:"https://github.com/actualbudget/actual"},{label:"Documentation",url:"https://actualbudget.github.io/docs"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"actualbudget"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/actualbudget/actual-server:26.2.1"}}},benefits:[{title:"Local-First Personal Finance",description:"Actual is a personal finance tool that operates on a local-first basis. This means that all your financial data is stored on your device, giving you full control over your information."},{title:"Free and Open-Source",description:"Actual is 100% free and open-source. This means you can use it without any cost and also have the freedom to modify it according to your needs."},{title:"Synchronization Across Devices",description:"Actual has a synchronization feature that allows your changes to move between devices seamlessly. This means you can access and manage your financial data from any device."}],features:[{title:"Budgeting",description:"Actual provides a comprehensive budgeting tool that helps you manage your finances effectively. You can set budget limits, track your spending, and get insights into your financial habits."},{title:"Account Management",description:"With Actual, you can manage all your financial accounts in one place. It allows you to keep track of your income, expenses, savings, and investments."},{title:"Reports and Filters",description:"Actual offers detailed reports and filters to help you analyze your financial data. You can generate reports based on different criteria and filter your data to find specific information."},{title:"Backup and Restore",description:"Actual provides a backup and restore feature to ensure the safety of your financial data. You can easily backup your data and restore it whenever needed."}],tags:["Finance"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5006}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"adguardhome-sync",meta:{name:"AdGuard Home Sync",description:"AdGuard Home Sync is a tool designed to synchronize filters, blocklists, and configuration between multiple AdGuard Home instances. It allows you to maintain consistent filtering across different AdGuard Home deployments by synchronizing configuration from an origin instance to one or more replica instances.",instructions:"Modify the config file to add your own AdGuard Home instances and cron schedule.",changeLog:[{date:"2025-05-09",description:"first release"},{date:"2026-04-29",description:"Version bumped to 0.9.0"}],links:[{label:"Documentation",url:"https://github.com/bakito/adguardhome-sync/wiki/FAQ"},{label:"Github",url:"https://github.com/bakito/adguardhome-sync"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","apiUsername","apiPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"adguardhome-sync"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/adguardhome-sync:0.9.0"},apiUsername:{type:"string",title:"API Username",default:"username"},apiPassword:{type:"string",title:"API Password",default:"password"}}},benefits:[{title:"Consistent Filtering",description:"Maintain consistent filtering rules across multiple AdGuard Home instances automatically."},{title:"Automated Synchronization",description:"Set it and forget it with customizable cron schedules that keep your AdGuard Home instances in sync without manual intervention."},{title:"Centralized Management",description:"Manage your filtering rules from a single origin instance and have them propagate to all your replica instances."}],features:[{title:"Multi-Instance Synchronization",description:"Sync configuration from one origin AdGuard Home instance to one or more replica instances."},{title:"Scheduled Synchronization",description:"Configure how frequently synchronization occurs using cron expressions."},{title:"API Access",description:"Access the synchronization process via a secure API with basic authentication."}],tags:["AdGuard Home","DNS","Ad-blocking","Synchronization","Configuration Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a='cron: "*/10 * * * *"\n\norigin:\n  # url of the origin instance\n  url: https://192.168.1.2:3000\n  # apiPath: define an api path if other than "/control"\n  # insecureSkipVerify: true # disable tls check\n  username: username\n  password: password\n\n# replica instance (optional, if only one)\nreplica:\n  # url of the replica instance\n  url: http://192.168.1.3\n  username: username\n  password: password\n\n# replicas instances (optional, if more than one)\n# replicas:\n#   # url of the replica instance\n#   - url: http://192.168.1.3\n#     username: username\n#     password: password\n#   - url: http://192.168.1.4\n#     username: '.concat(e.apiUsername,"\n#     password: ").concat(e.apiPassword,"\n\n# Configure the sync API server, disabled if api port is 0\napi:\n  # Port, default 8080\n  port: 8080\n  # if username and password are defined, basic auth is applied to the sync API\n  username: username\n  password: password");return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC","CONFIGFILE=/config/adguardhome-sync.yaml"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"file",content:a,mountPath:"/config/adguardhome-sync.yaml"}]}}),{services:t}}},{slug:"adguardhome",meta:{name:"AdGuard Home",description:"AdGuard Ad Blocker is a comprehensive solution designed to enhance your online browsing experience by eliminating all kinds of ads, from annoying banners and pop-ups to intrusive video ads. It not only removes these distractions but also maintains the functionality and appearance of the websites you visit. The app also offers privacy protection, shielding your data from web analytics and online trackers. In addition, AdGuard ensures browsing security by protecting against phishing and malicious sites. It also includes a parental control feature, providing a safe online environment for children by blocking inappropriate and adult content. The app is designed to work across all browsers and apps, offering a seamless ad-free experience. Moreover, it saves traffic and speeds up page loading by filtering ads before they reach your device. AdGuard is more than just an ad blocker; it's a tool that enhances your online safety and browsing speed.",instructions:"During the setup phase, if the instance, does not start, you have to disable the service using port 53 on your host server, so adguard can bind the port 53. Then setup the admin account on port 3000, then change it to port 80. To use the DHCP feature, you must also open ports 67/udp 68/tcp-udp.",changeLog:[{date:"2023-07-11",description:"First Release"},{date:"2025-06-21",description:"Update the instructions for the setup phase"},{date:"2025-12-24",description:"Switched from latest to v0.107.71"},{date:"2026-04-29",description:"Switched from latest to v0.107.74"}],links:[{label:"Website",url:"https://adguard.com"},{label:"Github",url:"https://github.com/AdguardTeam/AdGuardHome"},{label:"Docker",url:"https://hub.docker.com/r/adguard/adguardhome"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"adguardhome"},appServiceImage:{type:"string",title:"App Service Image",default:"adguard/adguardhome:v0.107.74"}}},benefits:[{title:"Ad-Free Browsing",description:"AdGuard Ad Blocker ensures a smooth, uninterrupted browsing experience by eliminating all kinds of ads, including banners, pop-ups, and video ads."},{title:"Privacy Protection",description:"AdGuard safeguards your personal data from web analytics and online trackers, ensuring your online activities remain private."},{title:"Browsing Security",description:"AdGuard provides robust protection against phishing and malicious sites, keeping your online interactions safe and secure."},{title:"Parental Control",description:"AdGuard offers a reliable parental control feature that shields children from inappropriate and adult content on the web."},{title:"Traffic Saving and Speed",description:"AdGuard not only blocks ads but also reduces traffic and speeds up page loading, enhancing your overall browsing experience."}],features:[{title:"Ad Blocking",description:"AdGuard effectively wipes out annoying banners, pop-ups, and video ads, providing a clean, ad-free browsing environment."},{title:"Privacy Protection",description:"AdGuard has robust privacy protection features that shield your data from web analytics and online trackers."},{title:"Browsing Security",description:"AdGuard's browsing security feature protects against phishing and malicious sites, ensuring your online safety."},{title:"Parental Control",description:"AdGuard's parental control feature shields children from inappropriate and adult content, providing a safe online environment for kids."},{title:"Traffic Saving and Speed",description:"AdGuard filters ads before they get pulled by your browser to your device, saving traffic and speeding up page loading."}],tags:["Privacy","Security"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],ports:[{protocol:"tcp",published:53,target:53},{protocol:"udp",published:53,target:53},{protocol:"udp",published:784,target:784},{protocol:"tcp",published:853,target:853},{protocol:"udp",published:853,target:853},{protocol:"udp",published:8853,target:8853},{protocol:"tcp",published:5443,target:5443},{protocol:"udp",published:5443,target:5443}],mounts:[{type:"volume",name:"work",mountPath:"/opt/adguardhome/work"},{type:"volume",name:"conf",mountPath:"/opt/adguardhome/conf"}]}}),{services:t}}},{slug:"adminer",meta:{name:"Adminer",description:"Adminer is a comprehensive database management tool, designed to simplify and streamline your database operations. Written in PHP, it is a lightweight yet powerful tool that supports a wide range of databases including MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB and others. With Adminer, you can easily connect to a database server using a username and password, select an existing database or create a new one, and manage all aspects of your database including tables, columns, indexes, foreign keys, triggers, views, stored procedures, and functions. It also allows you to execute any SQL command from a text field or a file, and export your database structure, data, views, routines, and databases to SQL or CSV. Adminer prioritizes security, user experience, performance, feature set, and size, making it a reliable and efficient tool for all your database management needs.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2025-12-24",description:"updated to version 5.4.1"},{date:"2026-02-18",description:"Version bumped to 5.4.2"}],links:[{label:"Website",url:"https://www.adminer.org/"},{label:"Github",url:"https://github.com/vrana/adminer/"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"adminer"},appServiceImage:{type:"string",title:"App Service Image",default:"adminer:5.4.2"}}},benefits:[{title:"Efficient Database Management",description:"Adminer is a full-featured database management tool that provides a tidier user interface, better support for MySQL features, higher performance, and more security than other similar tools."},{title:"Versatile Compatibility",description:"Adminer is available for a wide range of databases including MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB and others via plugin."},{title:"Prioritized Security",description:"Adminer places security as its top priority. It does not allow connecting to databases without a password and it rate-limits the connection attempts to protect against brute-force attacks."}],features:[{title:"Comprehensive Database Operations",description:"Adminer allows you to connect to a database server with username and password, select an existing database or create a new one, list fields, indexes, foreign keys and triggers of table, change name, engine, collation, auto_increment and comment of table, and alter name, type, collation, comment and default values of columns."},{title:"Advanced Table and Column Management",description:"With Adminer, you can add and drop tables and columns, create, alter, drop and search by indexes including fulltext, create, alter, drop and link lists by foreign keys, and create, alter, drop and select from views."},{title:"Procedures, Functions, and Triggers",description:"Adminer enables you to create, alter, drop and call stored procedures and functions, create, alter and drop triggers."},{title:"Data Management",description:"Adminer lets you list data in tables with search, aggregate, sort and limit results, insert new records, update and delete the existing ones, and supports all data types, blobs through file transfer."},{title:"SQL Command Execution",description:"Adminer allows you to execute any SQL command from a text field or a file."},{title:"Data Export",description:"Adminer provides the ability to export table structure, data, views, routines, databases to SQL or CSV."},{title:"User and Rights Management",description:"Adminer displays users and rights and allows you to change them."},{title:"Event and Partition Management",description:"Adminer enables you to manage events and table partitions."},{title:"Customization Options",description:"Adminer offers extensive customization options."}],tags:["Databases","Developer Tools"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"adventurelog",meta:{name:"AdventureLog",description:"AdventureLog is a comprehensive travel tracking and adventure logging application that helps you document and organize your journeys around the world. Built with modern web technologies and PostGIS for geographic data management, it allows you to record your adventures, track visited locations, and create a visual map of your travels. The application features a clean, intuitive interface for logging trips, storing photos and memories, and analyzing your travel patterns. With supp
1ort for geographic data through PostGIS, you can visualize your adventures on interactive maps and maintain a complete history of your explorations. Perfect for travelers, adventurers, and anyone who wants to keep a detailed record of their journeys.",instructions:null,changeLog:[{date:"2025-10-30",description:"Initial Template Release"},{date:"2026-04-29",description:"Version bumped to v0.12.0"}],links:[{label:"GitHub Frontend",url:"https://github.com/seanmorley15/adventurelog-frontend"},{label:"GitHub Backend",url:"https://github.com/seanmorley15/adventurelog-backend"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","backendServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"adventurelog"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/seanmorley15/adventurelog-frontend:v0.12.0",description:"AdventureLog App Docker image"},backendServiceImage:{type:"string",title:"Backend Service Image",default:"ghcr.io/seanmorley15/adventurelog-backend:v0.12.0",description:"AdventureLog Backend Docker image"}}},benefits:[{title:"Travel Documentation",description:"Keep a comprehensive record of all your travels and adventures in one centralized location with detailed logging capabilities."},{title:"Geographic Visualization",description:"Utilize PostGIS-powered geographic data to visualize your travels on interactive maps and see where you've been around the world."},{title:"Media Storage",description:"Store photos, notes, and memories from your adventures with persistent media storage that keeps your travel history safe."},{title:"Modern Architecture",description:"Built with a modern three-tier architecture featuring a dedicated frontend, backend API, and geographic database for optimal performance."}],features:[{title:"Adventure Logging",description:"Record detailed information about your trips, adventures, and travels with an intuitive interface designed for travel documentation."},{title:"PostGIS Database",description:"Leverages PostGIS (PostgreSQL with geographic extensions) for advanced location tracking, spatial queries, and map-based visualization."},{title:"Media Management",description:"Store and organize photos and media files from your adventures with persistent volume storage for all your travel memories."},{title:"REST API Backend",description:"Powerful backend API that handles all data operations, user management, and provides seamless integration with the frontend."},{title:"Modern Web Interface",description:"Clean, responsive web interface accessible from any device, making it easy to log adventures whether at home or on the go."},{title:"Location Tracking",description:"Track and visualize the places you've visited with geographic data support and mapping capabilities powered by PostGIS."},{title:"Data Persistence",description:"All your travel data, photos, and database information are stored in persistent volumes ensuring nothing is ever lost."},{title:"Self-Hosted",description:"Keep complete control of your travel data by hosting AdventureLog on your own infrastructure with full privacy and ownership."}],tags:["Travel","Logging","Geographic","Maps","PostGIS","Self-Hosted","Adventure","Documentation","Media Storage"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-backend"),env:["PGHOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"SECRET_KEY=".concat(i),"PUBLIC_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,".$(EASYPANEL_HOST)"),"DJANGO_ADMIN_USERNAME=admin","DJANGO_ADMIN_PASSWORD=".concat(o),"[email protected]","PUBLIC_SERVER_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-backend:8000"),"CSRF_TRUSTED_ORIGINS=https://$(PROJECT_NAME)-".concat(e.appServiceName,".$(EASYPANEL_HOST),https://$(PRIMARY_DOMAIN)"),"FRONTEND_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,".$(EASYPANEL_HOST)"),"BACKEND_PORT=5000"].join("\n"),source:{type:"image",image:e.backendServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],mounts:[{type:"volume",name:"media",mountPath:"/code/media"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUBLIC_SERVER_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-backend:8000"),"ORIGIN=
1https://$(PRIMARY_DOMAIN)","CSRF_TRUSTED_ORIGINS=https://$(PRIMARY_DOMAIN)","BODY_SIZE_LIMIT=Infinity","FRONTEND_PORT=8080"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),image:"postgis/postgis:16-3.5",password:a}}),{services:t}}},{slug:"affinepro",meta:{name:"Affine",description:"Affine is a modern, self-hosted platform designed for collaborative content creation and project management. It offers an intuitive interface, seamless real-time collaboration, and powerful tools for organizing tasks, notes, and ideas. With Affine, you can centralize your workflows and enhance productivity. The platform features a comprehensive workspace that combines note-taking, task management, and project planning in one unified environment.",instructions:"The migration service runs automatically during deployment to set up the database schema. It can be safely removed once the process is complete.",changeLog:[{date:"2025-01-14",description:"Template Release"},{date:"2025-02-21",description:"Version bumped to stable-780dd83"},{date:"2025-10-09",description:"Updated to the newer image and to latest version"},{date:"2025-12-24",description:"Version bumped to stable-e98f035"},{date:"2026-05-12",description:"Bumped to 0.26.6; fixed DATABASE_URL username and database name"}],links:[{label:"Website",url:"https://affine.pro"},{label:"Documentation",url:"https://affine.pro/docs"},{label:"Github",url:"https://github.com/toeverything/Affine"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"affine"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/toeverything/affine:0.26.6"},mailerHost:{type:"string",title:"Mailer Host (Optional)",default:"",description:"SMTP host for email notifications. Leave empty to disable."},mailerHostPort:{type:"string",title:"Mailer Port (Optional)",default:"587",description:"SMTP port (e.g., 587, 465). Used when Mailer Host is set."},mailerHostUser:{type:"string",title:"Mailer User (Optional)",default:"",description:"SMTP username. Leave empty for open relay."},mailerPassword:{type:"string",title:"Mailer Password (Optional)",default:"",description:"SMTP password."},mailerSender:{type:"string",title:"Mailer Sender (Optional)",default:"",description:"Email address to send from (e.g., [email protected])"}}},benefits:[{title:"Streamlined Collaboration",description:"Affine offers real-time collaborative tools, enabling teams to work together seamlessly on projects and documents."},{title:"Self-Hosted Control",description:"Maintain complete control over your data with a secure, self-hosted solution for enhanced privacy and flexibility."},{title:"Comprehensive Workspace",description:"Centralize notes, tasks, and project plans in one unified workspace for better organization and productivity."},{title:"Vector Search Capabilities",description:"Leverage pgvector integration for advanced search and AI-powered features to enhance content discovery and organization."}],features:[{title:"Real-Time Collaboration",description:"Work together with your team in real time, ensuring everyone stays aligned and productive with live editing capabilities."},{title:"Customizable Workflows",description:"Adapt the platform to your specific needs with flexible task and note management options and customizable templates."},{title:"Advanced Database Features",description:"Built on PostgreSQL with pgvector support for enhanced performance and AI-powered search capabilities."},{title:"Migration Management",description:"Automated database migration service ensures smooth updates and schema changes without manual intervention."},{title:"Secure and Scalable",description:"Benefit from a secure and scalable architecture, designed to handle teams of any size with robust data protection."},{title:"Modern Web Interface",description:"Clean, responsive interface that works seamlessly across desktop and mobile devices for optimal user experience."}],tags:["Collaboration","Self-Hosted","Productivity","Project Management","PostgreSQL","Vector Search"],logo:"logo.png",screenshots:["screenshot.png","screenshot1.png"]},generate:function(e){var t=[],a=v(),i=v(),o=["REDIS_SERVER_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_SERVER_PASSWORD=".concat(i),"DATABASE_URL=postgresql://affine:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/affine"),"AFFINE_SERVER_HOST=$(PRIMARY_DOMAIN)","AFFINE_INDEXER_ENABLED=false"];e.mailerHost&&o.push("#SMTP CONFIGURATION","MAILER_HOST=".concat(e.mailerHost),"MAILER_PORT=".concat(e.mailerHostPort||"587"),"MAILER_USER=".concat(e.mailerHostUser||""),"MAILER_PASSWORD=".concat(e.mailerPassword||""),"MAILER_SENDER=".concat(e.mailerSender||""));var n=o.join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,env:[n].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3010}],mounts:[{type:"volume",name:"storage",mountPath:"/root/.affine/storage"},{type:"volume",name:"config",mountPath:"/root/.affine/config"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-migration"),env:[n].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"node ./scripts/self-host-predeploy.js"},mounts:[{type:"volume",name:"storage",mountPath:"/root/.affine/storage"},{type:"volume",name:"config",mountPath:"/root/.affine/config"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,user:"affine",databaseName:"affine",image:"pgvector/pgvector:pg16"}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"airsonic-advanced",meta:{name:"Airsonic Advanced",description:"Airsonic Advanced is a more modern implementation of the Airsonic fork with several key performance and feature enhancements. It's a free, web-based media streamer providing ubiquitous access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. It supports very large music collections and works with any audio or video format that can stream over HTTP.",instructions:null,changeLog:[{date:"2025-06-26",description:"Initial Template Release"}],links:[{label:"GitHub",url:"https://github.com/airsonic-advanced/airsonic-advanced"},{label:"Documentation",url:"https://github.com/airsonic-advanced/airsonic-advanced#readme"},{label:"Demo",url:"https://airsonic.github.io/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","upnpPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"airsonic-advanced"},appServiceImage:{type:"string",title:"App Service Image",default:"airsonicadvanced/airsonic-advanced:gitcommit-68d11bfbfe051b0acaca2770c3c1f47f8d59201c",description:"Airsonic Advanced Docker image"},upnpPort:{type:"string",title:"UPnP Port",default:"4041",description:"UPnP port for the application"}}},benefits:[{title:"Modern Web Interface",description:"Enjoy a modern, responsive web interface with HTML5 compliance and improved user experience compared to vanilla Airsonic."},{title:"Enhanced Performance",description:"Experience significantly improved performance with faster media scanning, better UI rendering, and optimized streaming engine."},{title:"Multi-Format Support",description:"Stream any audio or video format that works over HTTP, including MP3, AAC, OGG, WMA, FLAC, APE, Musepack, WavPack and more."},{title:"Large Collection Support",description:"Designed to handle very large music collections (hundreds of gigabytes) with efficient indexing and browsing capabilities."}],features:[{title:"Advanced Media Streaming",description:"Stream music to multiple players simultaneously with support for transcoding and bitrate limiting for constrained bandwidth."},{title:"Improved Security",description:"Features a completely revamped credential system with modern password hashing algorithms like bcrypt and Argon for secure storage."},{title:"Podcast Support",description:"Integrated podcast receiver with features similar to iTunes, including OPML export capabilities and podcast management."},{title:"WebSocket Communication",description:"Uses WebSockets for real-time communication between server and web clients, providing instant updates and status indicators."},{title:"Sonos & Chromecast Support",description:"Built-in support for Sonos speakers and Chromecast devices for seamless music streaming throughout your home."},{title:"Advanced Database Features",description:"Supports multiple external databases (PostgreSQL, MySQL, MariaDB) with automatic backup and data export/import capabilities."}],tags:["Music Streaming","Media Server","Self-hosted","Airsonic","Audio","Video","Podcast","Sonos","Chromecast","DLNA"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4040}],ports:[{published:Number(e.upnpPort),target:4041,protocol:"udp"}],env:["TZ=America/Los_Angeles","JAVA_OPTS=-Dserver.forward-headers-strategy=native"].join("\n"),mounts:[{type:"volume",name:"playlists",mountPath:"/var/playlists"},{type:"volume",name:"podcasts",mountPath:"/var/podcasts"},{type:"volume",name:"data",mountPath:"/var/airsonic"},{type:"volume",name:"music",mountPath:"/var/music"}]}}),{services:t}}},{slug:"akaunting",meta:{name:"Akaunting",description:"Akaunting is a powerful online accounting software designed for small businesses, \nfreelancers, and entrepreneurs. This free and open-source solution provides \ncomprehensive financial management tools with a modern, user-friendly interface. \nBuilt on Laravel, it offers robust double-entry bookkeeping, real-time financial \ntracking, and automated features to streamline your accounting processes. With \nmulti-user support, document management, and detailed reporting capabilities, \nAkaunting helps you maintain professional financial records while saving time \nand resources.\n",instructions:null,changeLog:[{date:"2025-02-14",description:"First release with Akaunting 3.0.20"},{date:"2026-05-07",description:"Version Bumped to 3.1.21-v"}],links:[{label:"Github",url:"https://github.com/akaunting/akaunting"},{label:"Documentation",url:"https://akaunting.com/docs"},{label:"Website",url:"https://akaunting.com"}],contributors:[{name:"ShayPunter",url:"https://github.com/shaypunter"}],schema:{type:"object",required:["appServiceName","appServiceImage","companyName","companyEmail","adminEmail","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"akaunting"},appServiceImage:{type:"string",title:"App Service Image",default:"docker.io/akaunting/akaunting:3.1.21-v"},companyName:{type:"string",title:"Company Name",default:"My Company"},companyEmail:{type:"string",title:"Company Email",default:"[email protected]"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]"},adminPassword:{type:"string",title:"Admin Password",format:"password"}}},benefits:[{title:"Professional Accounting Made Simple",description:"Akaunting simplifies professional accounting with an intuitive interface\nand automated features, making it easy for non-accountants to maintain\naccurate financial records.\n"},{title:"Free and Open-Source",description:"As a free, open-source solution, Akaunting eliminates expensive software\ncosts while giving you full control over your financial data and the\nfreedom to modify the software to suit your needs.\n"},{title:"Secure and Self-Hosted",description:"Host Akaunting on your own infrastructure for complete data privacy and\nsecurity. You maintain full control over your sensitive financial information\nwith no third-party access.\n"}],features:[{title:"Double-Entry Bookkeeping",description:"Built on professional accounting principles, Akaunting provides comprehensive\ndouble-entry bookkeeping to ensure accurate financial records and maintain\ncompliance with accounting standards.\n"},{title:"Invoice & Bill Management",description:"Create professional invoices, track bills, and manage payments efficiently.\nAutomated features help you stay on top of accounts receivable and payable.\n"},{title:"Financial Reporting",description:"Generate detailed financial reports including profit & loss statements,\nbalance sheets, and tax summaries. Get real-time insights into your\nbusiness's financial health.\n"},{title:"Multi-User & Multi-Company",description:"Support for multiple users and companies makes Akaunting perfect for\ngrowing businesses or accountants managing multiple clients.\n"}],tags:["Finance","Accounting","Business"],logo:"logo.svg",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v();return t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["AKAUNTING_SETUP=false","APP_URL=https://$(PRIMARY_DOMAIN)","APP_DEBUG=false","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=3306","DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mysql","DB_PASSWORD=".concat(a),"COMPANY_NAME=".concat(e.companyName),"COMPANY_EMAIL=".concat(e.companyEmail),"ADMIN_EMAIL=".concat(e.adminEmail),"ADMIN_PASSWORD=".concat(e.adminPassword)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html"}]}}),{services:t}}},{slug:"alerta",meta:{name:"Alerta",description:"Alerta is a monitoring system that consolidates and deduplicates alerts from multiple monitoring systems.",instructions:null,changeLog:[{date:"2025-05-08",description:"First Release"},{date:"2026-04-29",description:"Version bumped to 9.1.0"}],links:[{label:"Website",url:"https://alerta.io/"},{label:"Github",url:"https://github.com/alerta/alerta"},{label:"Documentation",url:"https://docs.alerta.io/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminUsers","adminPassword","adminKey","adminKeyMaxAge"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"alerta"},appServiceImage:{type:"string",title:"App Service Image",default:"alerta/alerta-web:9.1.0",description:"Image to use for the app service"},adminUsers:{type:"string",title:"Admin Users",default:"[email protected]",description:"Comma-separated list of admin user email addresses"},adminPassword:{type:"string",title:"Admin Password",default:"super-secret",description:"Password for admin users"},adminKey:{type:"string",title:"Admin Key",default:"demo-key",description:"API key assigned to the first admin user"},adminKeyMaxAge:{type:"string",title:"Admin Key Max Age",default:"500",description:"Maximum age of admin API key in days"}}},benefits:[{title:"Alert Management",description:"Consolidates and deduplicates alerts from multiple monitoring systems."},{title:"User Management",description:"Built-in user authentication and authorization system."},{title:"API Access",description:"RESTful API for integration with other systems."}],features:[{title:"Alert Consolidation",description:"Deduplicates and consolidates alerts from multiple sources."},{title:"Authentication",description:"Built-in authentication system with admin user management."},{title:"API Integration",description:"RESTful API for integration with monitoring systems."},{title:"Database Integration",description:"PostgreSQL database integration for reliable data storage."},{title:"Containerized",description:"Easy to deploy and manage in containerized environments."}],tags:["Monitoring","Alert Management","Web Application","PostgreSQL","API"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"AUTH_REQUIRED=True","ADMIN_USERS=".concat(e.adminUsers),"ADMIN_PASSWORD=".concat(e.adminPassword),"ADMIN_KEY=".concat(e.adminKey),"ADMIN_KEY_MAXAGE=".concat(e.adminKeyMaxAge)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"alltube",meta:{name:"AllTube",description:"AllTube Download is an application designed to facilitate the downloading of videos from YouTube. It provides an HTML GUI for youtube-dl, a command-line program to download videos from YouTube and other video sites. The app allows users to download videos directly to their server, making it easy to access and manage their favorite content. AllTube supports various configurations and can be customized according to user preferences. It also offers a JSON API, which returns a JSON object generated by youtube-dl, providing detailed information about the video. The app is lightweight and efficient, making it a great choice for those who frequently download videos from YouTube.",instructions:null,changeLog:[{date:"2023-07-11",description:"First Release"}],links:[{label:"Github",url:"https://github.com/Rudloff/alltube"},{label:"Docker",url:"https://hub.docker.com/r/dnomd343/alltube"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{alltubeTitle:{type:"string",title:"Title",default:"My AllTube Site"},alltubeConvert:{type:"boolean",title:"Convert",default:!0},alltubeStream:{type:"boolean",title:"Stream",default:!0},alltubeRemux:{type:"boolean",title:"Remux",default:!0}
1,appServiceName:{type:"string",title:"App Service Name",default:"alltube"},appServiceImage:{type:"string",title:"App Service Image",default:"dnomd343/alltube:latest"}}},benefits:[{title:"Easy Video Downloading",description:"AllTube Download provides a simple and convenient way to download videos from YouTube. With its HTML GUI, users can easily navigate and select the videos they want to download."},{title:"Video Conversion",description:"The app comes with an optional feature to convert downloaded videos into different formats. This is particularly useful for users who need their videos in a specific format for playback on various devices."},{title:"Multi-Platform Support",description:"AllTube Download supports multiple architectures including x86_64, x86, arm64, and arm32. This makes it a versatile tool that can be used on a wide range of devices."}],features:[{title:"Video Downloading",description:"AllTube Download allows users to download videos from YouTube. It uses the youtube-dl library to fetch the video files."},{title:"Video Conversion",description:"The app has an optional feature that enables video conversions. Users can convert their downloaded videos into different formats using ffmpeg."},{title:"Custom Configuration",description:"Users can create a custom configuration file to tailor the app to their specific needs. This includes setting up a basepath, internal and external ports, and more."},{title:"JSON API",description:"AllTube Download provides a JSON API that returns a JSON object generated by youtube-dl. This can be used to fetch video properties."}],tags:["Media","Video","Downloader"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:24488}],env:["TITLE=".concat(e.alltubeTitle),"CONVERT=".concat(e.alltubeConvert),"STREAM=".concat(e.alltubeStream),"REMUX=".concat(e.alltubeRemux)].join("\n")}}),{services:t}}},{slug:"altus",meta:{name:"Altus",description:"Altus is a desktop application that brings WhatsApp Web to your desktop with additional features and customization options. It provides a clean, native desktop experience for WhatsApp Web, with support for multiple accounts, themes, and enhanced functionality beyond the standard web interface.",instructions:null,changeLog:[{date:"2025-06-06",description:"Template Release (v5.7.1)"},{date:"2026-02-23",description:"Version bumped to v5.7.2"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-altus/"},{label:"Github",url:"https://github.com/linuxserver/docker-altus"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"altus"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/altus:5.7.2"}}},benefits:[{title:"Enhanced WhatsApp Experience",description:"Access WhatsApp Web with additional features and customization options."},{title:"Multi-Account Support",description:"Manage multiple WhatsApp accounts from a single desktop application."},{title:"Native Desktop Feel",description:"Enjoy a native desktop application experience instead of browser tabs."}],features:[{title:"WhatsApp Web Desktop",description:"Provides WhatsApp Web functionality in a dedicated desktop application."},{title:"Theme Customization",description:"Customize the appearance with various themes and interface options."},{title:"Enhanced Notifications",description:"Better notification management compared to browser-based WhatsApp Web."},{title:"Multi-Instance Support",description:"Support for multiple WhatsApp accounts simultaneously."}],tags:["Messaging","WhatsApp","Desktop App","Communication"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"ampache",meta:{name:"Ampache",description:"Ampache is a web-based audio/video streaming application and file manager that allows you to access your music and videos from anywhere, anytime. With this app, you can browse and manage your music collection through a simple web interface, and even synchronize local and remote catalogs to create a unique, consistent collection. Ampache also offers music streaming capabilities, allowing you to stream your music to your preferred player, control it with Localplay, or directly listen on the web page with the HTML5 player. The app is completely free and open source, and it's designed to work on almost any internet-enabled device, including your phone, tablet, or television. Ampache is not a media organizer, but a tool that presents an already organized collection in a useful way.",instructions:'MySQL Username is "admin". The logs will show a line that says "mysql -uadmin -pjnzYXLz7cMzq -h<host> -P<port>"". The password is everything after "-p", in this case "jnzYXLz7cMzq".',changeLog:[{date:"2023-03-19",description:"Template created (v5.5.7)"},{date:"2025-01-06",description:"Version bumped to 7.1.1"},{date:"2025-12-24",description:"Version bumped to 7.8.0"},{date:"2026-04-29",description:"Version bumped to 7.9.2"}],links:[{label:"Website",url:"http://ampache.org/"},{label:"Github",url:"https://github.com/ampache/ampache"},{label:"Github Docker",url:"https://github.com/ampache/ampache-docker"},{label:"DockerHub",url:"https://hub.docker.com/r/ampache/ampache"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","appMediaHostPath"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ampache"},appServiceImage:{type:"string",title:"App Service Image",default:"ampache/ampache:7.9.2"},appMediaHostPath:{type:"string",title:"Media Host Path"}}},benefits:[{title:"Access Your Media Anywhere",description:"Ampache allows you to access your music and videos from anywhere, using almost any internet-enabled device. Whether you're at home, at work, or on vacation, your media is always at your fingertips."},{title:"Manage Your Media Collection",description:"With Ampache, you can browse and manage your music collection through a simple web interface. It synchronizes local and remote catalogs to create a unique, consistent collection."},{title:"Open Source Freedom",description:"Ampache is completely free and open source, giving you the freedom to use and modify it as you see fit. It has been under the AGPLv3 license since 2001."}],features:[{title:"Music Streaming",description:"Stream your music to your preferred player, control it with Localplay, or directly listen on the web page with the HTML5 player."},{title:"Ampache Everywhere",description:"Listen to your music from your phone, tablet, or television using a compatible client."},{title:"File Manager",description:"Ampache is not just a streaming application, it's also a file manager. It allows you to manage your media files in a way that suits you best."}],tags:["Media","File Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/var/www/config"},{type:"volume",name:"log",mountPath:"/var/log/ampache"},{type:"volume",name:"mysql",mountPath:"/var/lib/mysql"},{type:"bind",hostPath:e.appMediaHostPath,mountPath:"/media"}]}}),{services:t}}},{slug:"anchor",meta:{name:"Anchor",description:"Anchor is a self-hosted application designed to provide a modern web interface for managing and organizing your data. It offers a clean, intuitive user experience with persistent storage capabilities, ensuring your data is safely stored and accessible. Built with privacy and self-hosting in mind, Anchor gives you complete control over your information without relying on external cloud services.",instructions:null,changeLog:[{date:"2026-01-13",description:"Template Release"},{date:"2026-04-29",description:"Version bumped to 0.10"}],links:[{label:"GitHub",url:"https://github.com/zhfahim/anchor"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"anchor"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/zhfahim/anchor:0.10"}}},benefits:[{title:"Self-Hosted Solution",description:"Complete control over your data with no reliance on external cloud services or third-party providers."},{title:"Persistent Storage",description:"Data is stored in a persistent volume, ensuring your information survives container restarts and updates."},{title:"Modern Web Interface",description:"Clean, responsive web interface accessible from any device for managing your data and settings."},{title:"Privacy-Focused",description:"All your data stays on your server, ensuring complete privacy and security for sensitive information."},{title:"Easy Deployment",description:"Simple, one-click deployment with minimal configuration required to get started quickly."}],features:[{title:"Web-Based Interface",description:"Access your application through a modern web browser from any device, with a clean and intuitive user interface."},{title:"Data Persistence",description:"Persistent volume storage ensures your data is safely stored and accessible across container restarts and updates."},{title:"Self-Hosted Architecture",description:"Run entirely on your infrastructure with no external dependencies or data transmission to third parties."},{title:"Containerized Deployment",description:"Easy deployment using Docker containers with minimal configuration and setup requirements."},{title:"Restart Policy",description:"Automatic restart on failure ensures high availability and reliability for your application."}],tags:["Self-Hosted","Web Application","Data Management","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"anibridge",meta:{name:"AniBridge",description:"AniBridge is a media synchronization tool that keeps your anime watch activity perfectly in sync across library providers (Plex, Jellyfin, Emby) and list trackers (AniList, MyAnimeList). It includes a web dashboard with a real-time sync timeline, profile manager, custom mapping editor, log viewer, and automatic list backups \u2014 all powered by a database of over 250,000 anime mappings.",instructions:"After deploying, open the web UI on port 4848 and configure your providers and profiles through the Settings page. On first boot with no config file, the web UI is accessible without a password so you can complete the initial setup. Add web.basic_auth.username and web.basic_auth.password in the config file (or via AB_WEB__BASIC_AUTH__USERNAME / AB_WEB__BASIC_AUTH__PASSWORD env vars) to secure the dashboard once configured.",changeLog:[{date:"2026-06-09",description:"First release"}],links:[{label:"Website",url:"https://anibridge.eliasbenb.dev"},{label:"Docs",url:"https://anibridge.eliasbenb.dev"},{label:"GitHub",url:"https://github.com/anibridge/anibridge"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"anibridge"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/anibridge/anibridge:v2.1.4"}}},benefits:[{title:"Unified Anime Sync",description:"Automatically synchronizes watch status, progress, ratings, reviews, and start/completion dates between your media server and any supported list tracker \u2014 no manual updates needed."},{title:"Smart Content Matching",description:"Uses a curated database of over 250,000 anime entries with fuzzy title search fallback and support for custom mapping overrides, so even obscure titles are matched correctly."},{title:"Multi-User & Multi-Profile",description:"Define independent profiles for different users, libraries, and servers. Each profile has its own sync rules, intervals, and provider configuration running in parallel."},{title:"Safe & Reversible",description:"Dry-run mode lets you preview every change before it is applied. Automatic list backups with a configurable retention period let you restore previous states directly from the web UI."}],features:[{title:"Web Dashboard",description:"Intuitive UI with a real-time sync timeline, profile management, custom mapping editor, and a live log viewer \u2014 accessible from any browser."},{title:"Flexible Scan Modes",description:"Three scan modes \u2014 periodic full scans, incremental polling, and webhook-triggered syncs \u2014 can be enabled simultaneously per profile."},{title:"Provider Plugin System",description:"Modular architecture supports Plex, Jellyfin, Emby as library sources and AniList and MyAnimeList as list targets, with more providers planned."},{title:"Declarative Sync Rules",description:"Fine-grained YAML-based rules let you disable specific fields (status, progress, rating, reviews, dates) or apply conditional overrides per profile."},{title:"Automatic Backups",description:"List state is backed up before every sync run. Backups are retained for a configurable number of days and can be restored with one click in the UI."}],tags:["Media","Anime","Synchronization","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4848}],env:["AB_DATA_PATH=/config","AB_LOG_LEVEL=INFO","PUID=1000","PGID=1000","UMASK=022"].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"anonupload",meta:{name:"AnonUpload",description:"AnonUpload is a secure, anonymous file sharing application that does not require a database. It is built with privacy as a priority, ensuring that the direct filename used is not displayed. This PHP file uploader is designed to work anywhere, be it Nginx, Apache, Lightspeed, or any other platform. AnonUpload supports a wide range of file types including jpeg, jpg, gif, png, zip, xls, doc, mp3, mp4, mpeg, wav, avi, rar, 7z, txt and more. It also provides size verification for uploaded files, allowing for a maximum upload size of 10GB and no minimum size. The application also includes a download time feature, which sets a waiting time before a file can be downloaded.",instructions:"visit /admin for the administration interface",changeLog:[{date:"2022-12-22",description:"first release"}],links:[{label:"Github",url:"https://github.com/supernova3339/anonupload"},{label:"Enviroment Variables",url:"https://github.com/Supernova3339/anonupload/blob/main/env.md"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","appEmail","appPassword","appContactEmail"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"anonupload"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/supernova3339/anonfiles:1"},appEmail:{type:"string",title:"Admin Email"},appPassword:{type:"string",title:"Admin Password"},appContactEmail:{type:"string",title:"App Contact Email"}}},benefits:[{title:"Secure File Sharing",description:"AnonUpload offers a secure platform for file sharing. It ensures your files are kept private and safe during the sharing process."},{title:"Anonymous File Sharing",description:"With AnonUpload, your identity remains anonymous while sharing files. It does not show the direct filename used, maintaining your privacy."},{title:"No Database Required",description:"AnonUpload operates without a database, making it a simple and efficient solution for file sharing."},{title:"Versatile Compatibility",description:"AnonUpload is designed to work anywhere, be it Nginx, Apache, Lightspeed, or any other platform. It does not use rewrites, just pure PHP."}],features:[{title:"File Uploading",description:"AnonUpload allows you to upload various types of files including jpeg, jpg, gif, png, zip, xls, doc, mp3, mp4, mpeg, wav, avi, rar, 7z, txt, and more."},{title:"File Size Verification",description:"The app verifies the size of the uploaded files. It supports a maximum upload size of 10GB and a minimum upload size of 0KB."},{title:"File Destination Control",description:"You can specify the destination folder for the uploaded files."},{title:"Download Time Control",description:"You can set the time to wait until the file downloads. The default time is 30 seconds."}],tags:["File Management","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ADMIN_EMAIL=".concat(e.appEmail),"ADMIN_PASSWORD=".concat(e.appPassword),"APP_FILELIST=jpeg,jpg,gif,png,zip,xls,doc,mp3,mp4,mpeg,wav,avi,rar,7z,txt","APP_SIZE_VERIFICATION=true","APP_FILE_DESTINATION=files","APP_BASE_URL=https://$(PRIMARY_DOMAIN)","APP_MAX_SIZE=10000000000","APP_MIN_SIZE=0","APP_CONTACT_EMAIL=".concat(e.appContactEmail),"APP_DOWNLOAD_TIME=30"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"files",mountPath:"/var/www/html/files"}]}}),{services:t}}},{slug:"anonymousoverflow",meta:{name:"AnonymousOverflow",description:"AnonymousOverflow is an anonymous question and answer platform inspired by Stack Overflow, designed for creating a safe space where users can ask questions without revealing their identity. The platform provides a community-driven Q&A experience with features like upvoting, downvoting, question categorization, and answer moderation. Built with privacy in mind, AnonymousOverflow allows users to participate in discussions and share knowledge while maintaining complete anonymity. Perfect for organizations wanting to create internal Q&A forums, educational institutions seeking anonymous student feedback platforms, or communities that value privacy in knowledge sharing.",instructions:null,changeLog:[{date:"2026-01-07 (release)",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/httpjamesm/anonymousoverflow"},{label:"Demo",url:"https://aohub.httpjames.space"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"anonymousoverflow"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/httpjamesm/anonymousoverflow:release"}}},benefits:[{title:"Anonymous Q&A Platform",description:"Create a safe space for anonymous questions and answers, encouraging open communication without identity concerns."},{title:"Community-Driven",description:"Leverage community voting and moderation to surface the best questions and answers."},{title:"Privacy-Focused",description:"Built with privacy in mind, allowing users to participate without revealing their identity."},{title:"Self-Hosted Control",description:"Deploy on your own infrastructure for complete control over your Q&A platform and data."}],features:[{title:"Question & Answer System",description:"Post questions and provide answers with support for markdown formatting and code blocks."},{title:"Voting System",description:"Upvote and downvote questions and answers to help surface the most valuable content."},{title:"Categorization",description:"Organize questions by categories and tags for better discoverability."},{title:"Moderation Tools",description:"Built-in moderation capabilities to maintain quality and community standards."},{title:"Search Functionality",description:"Search through questions and answers to find relevant content quickly."},{title:"User Management",description:"JWT-based authentication system for secure user sessions and access control."}],tags:["Q&A","Forum","Anonymous","Community","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["APP_URL=https://$(PRIMARY_DOMAIN)","JWT_SIGNING_SECRET=".concat(a)].join("\n")}}),{services:t}}},{slug:"anse",meta:{name:"Anse",description:"Anse is a modern web application that provides a clean and intuitive interface. It's a lightweight and efficient solution for your needs.",instructions:null,changeLog:[{date:"2025-05-19",description:"First Release"}],links:[{label:"Website",url:"https://anse.app"},{label:"Github",url:"https://github.com/ddiu8081/anse"},{label:"Documentation",url:"https://docs.anse.app"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"anse"},appServiceImage:{type:"string",title:"App Service Image",default:"ddiu8081/anse:v1.1.11"}}},benefits:[{title:"Simple Setup",description:"Easy to deploy and configure with minimal requirements."},{title:"Modern Interface",description:"Clean and intuitive user interface."},{title:"Lightweight",description:"Efficient and resource-friendly application."}],features:[{title:"Web Interface",description:"Accessible through port 3000 with a modern web interface."},{title:"Auto-restart",description:"Container automatically restarts on failure."}],tags:["Web Application","UI"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"answer",meta:{name:"Answer",description:"Answer is an open-source knowledge-based software designed to facilitate a Q&A environment for your products, customers, teams, and more. It allows users to ask questions and get answers, fostering a dynamic exchange of information. The app features a modern and responsive UI, and it's extensible with plugins. It also offers content organization capabilities, allowing you to categorize and tag your content for easy navigation. Additionally, Answer integrates with your existing tools and services to streamline your workflow. The app also incorporates gamification elements, rewarding users for their contributions, making the process of knowledge sharing more engaging. It's a powerful tool for product technical support, customer support, and user communication.",instructions:null,changeLog:[{date:"2022-12-21",description:"first release"},{date:"2024-03-03",description:"Updated application version to 1.2.0 and added automatic installation support"}],links:[{label:"Documentation",url:"https://answer.apache.org/docs/"},{label:"Github",url:"https://github.com/apache/answer"},{label:"Website",url:"https://answer.apache.org/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminName","adminPassword","adminMail","contactMail","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"answer"},appServiceImage:{type:"string",title:"App Service Image",default:"answerdev/answer:1.2.0"},siteName:{type:"string",title:"Site Name",default:"Answer"},siteUrl:{type:"string",title:"Site Url",default:"answer.apache.org"},language:{type:"string",title:"Language",default:"en-US"},adminName:{type:"string",minLength:4,title:"Admin Username"},adminPassword:{type:"string",minLength:8,title:"Admin Password"},adminMail:{type:"string",title:"Admin Mail"},contactMail:{type:"string",title:"Contact Mail"},databaseType:{type:"string",title:"Database Type",default:"sqlite3",oneOf:[{enum:["postgres"],title:"Postgres"},{enum:["sqlite3"],title:"SQLite"},{enum:["mysql"],title:"MySQL"},{enum:["mariadb"],title:"MariaDB"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"answer-db"},autoInstall:{type:"boolean",title:"Auto Install",default:!0}}},benefits:[{title:"Knowledge Sharing",description:"Answer allows you to build a platform where users and team members can share their knowledge and solve problems together. It's a great tool for product technical support, customer support, and user communication."},{title:"Content Organization",description:"With Answer, you can easily organize your content into categories and tags, making it easy for others to find the knowledge they need."},{title:"Integration",description:"Answer can be integrated with your existing tools and services, improving your workflow and making your other tools better."},{title:"Gamification",description:"Answer gamifies the Q&A platform with reputation and badges, making collaboration and work more fun for community members and teams."}],features:[{title:"Questions and Answers",description:"Users can ask questions and get answers from other users and your team, fostering a sense of community and shared knowledge."},{title:"Content Organization",description:"Organize your content into categories and tags to make it easy for users to find the information they need."},{title:"Integrations",description:"Integrate Answer with your existing tools and services to improve your workflow and enhance your other tools."},{title:"Gamification",description:"Reward your users for their contributions with a gamified system of reputation and badges."},{title:"Modern UI",description:"Answer features a modern and responsive user interface, making it easy and enjoyable to use."},{title:"Extensibility",description:"Extend the functionality of Answer with plugins to meet your specific needs."}],tags:["Community","Q&A","Knowledge Base","Support"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["AUTO_INSTALL=".concat(e.autoInstall)];if(e.autoInstall){var i=v();a.push("LANGUAGE=".concat(e.language||"en-US"),"SITE_NAME=".concat(e.siteName||"Answer"),"SITE_URL=".concat("answer.apache.org"===e.siteUrl?"https://$(EASYPANEL_DOMAIN)":"https://"+e.siteUrl),"ADMIN_NAME=".concat(e.adminName),"ADMIN_PASSWORD=".concat(e.adminPassword),"ADMIN_EMAIL=".concat(e.adminMail),"CONTACT_EMAIL=".concat(e.contactMail),"DB_TYPE=".concat("mariadb"===e.databaseType?"mysql":e.databaseType)),"sqlite3"!==e.databaseType?(a.push("DB_USERNAME=".concat(e.databaseType),"DB_PASSWORD=".concat(i),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_NAME=$(PROJECT_NAME)"),t.push({type:e.databaseType,data:{serviceName:e.databaseServiceName,password:i}})):a.push("DB_FILE=/data/answer.db")}return t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),deploy:{command:"sleep 15; /entrypoint.sh"},source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"answer-data",mountPath:"/data"}]}}),{services:t}}},{slug:"anythingllm",meta:{name:"Anything-LLM",description:"Anything-LLM is an open-source, AI-powered platform that enables users to leverage Large Language Models (LLMs) for creating, managing, and querying custom knowledge bases. It provides seamless integration with OpenAI services, offering a robust, flexible, and extensible environment for LLM-driven applications. Ideal for developers and organizations, Anything-LLM streamlines the deployment of intelligent AI solutions.",instructions:null,changeLog:[{date:"2024-12-16",description:"First release"},{date:"2026-02-18",description:"Version fixed to 1.11.0 from latest"},{date:"2026-04-29",description:"Version bumped to 1.12"}],links:[{label:"Website",url:"https://anythingllm.com/"},{label:"Compose Docs",url:"https://docs.anythingllm.com/installation-docker/local-docker"},{label:"Documentation",url:"https://docs.anythingllm.com/"},{label:"Github",url:"https://github.com/mintplex-labs/anything-llm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"anything-llm"},appServiceImage:{type:"string",title:"App Service Image",default:"mintplexlabs/anythingllm:1.12"}}},benefits:[{title:"Build Custom Knowledge Bases",description:"Anything-LLM allows you to create and query your own knowledge bases, powered by Large Language Models for accurate and intelligent responses."},{title:"Easy Integration with OpenAI",description:"Simplify setup with seamless integration of OpenAI API keys, enabling quick and efficient deployment of LLM-powered workflows."},{title:"Extensible and Customizable",description:"Anything-LLM offers a flexible and developer-friendly architecture, allowing customization of features, APIs, and workflows to suit your specific needs."}],features:[{title:"Knowledge Base Management",description:"Easily upload, manage, and query your documents to create a tailored knowledge base using powerful LLM integrations."},{title:"OpenAI API Integration",description:"Connect to OpenAI\u2019s models effortlessly for natural language processing, delivering precise and intelligent results."},{title:"Access Control and Security",description:"Secure your instance with access codes, ensuring only authorized users can interact with your custom knowledge bases."},{title:"Containerized Deployment",description:"Easily deploy Anything-LLM in containerized environments like Docker for scalability and flexibility."},{title:"User-Friendly Interface",description:"Enjoy a clean and intuitive UI that simplifies the process of managing and querying your knowledge base, ensuring an excellent user experience."}],tags:["Large Language Models","Knowledge Base","OpenAI Integration","Customizable","Open Source","AI-Powered"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:['STORAGE_DIR="/app/server/storage"'].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{capAdd:["SYS_ADMIN"]},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001}],mounts:[{type:"volume",name:"storage",mountPath:"/app/server/storage"}]}}),{services:t}}},{slug:"apache-superset",meta:{name:"Apache Superset",description:"Apache Superset is a modern, enterprise-ready business intelligence web application. It's fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts.",instructions:'Migrate database with "superset db upgrade", adjust roles and permissions with "superset init", create admin user with "superset fab create-admin". Follow the guide for further references.',changeLog:[{date:"2024-04-22",description:"First Release"},{date:"2026-04-03",description:"Update to 6.0.0"}],links:[{label:"Github",url:"https://github.com/apache/superset"},{label:"Documentation",url:"https://superset.apache.org/docs/intro"},{label:"Guide",url:"https://www.restack.io/docs/superset-knowledge-apache-superset-default-login"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"apache-superset"},appServiceImage:{type:"string",title:"App Service Image",default:"apache/superset:6.0.0"}}},benefits:[{title:"Data Visualization",description:"Create beautiful, interactive visualizations of your data."},{title:"SQL Editor",description:"Powerful SQL editor with syntax highlighting and autocomplete."},{title:"Dashboard Creation",description:"Create and share interactive dashboards with your team."},{title:"Data Exploration",description:"Explore and analyze your data with an intuitive interface."},{title:"Enterprise Ready",description:"Scalable and secure solution for business intelligence."}],features:[{title:"Rich Visualizations",description:"Wide variety of visualization types to represent your data."},{title:"SQL Lab",description:"Advanced SQL editor for data exploration and preparation."},{title:"Dashboard Builder",description:"Drag-and-drop interface for creating interactive dashboards."},{title:"Security",description:"Role-based access control and authentication options."},{title:"Data Source Integration",description:"Connect to various data sources including SQL databases."}],tags:["Business Intelligence","Data Visualization","Analytics","Dashboard","SQL"],logo:"logo.png",screenshots:["screenshot.jpg","screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8088}],env:["SUPERSET_SECRET_KEY=".concat(a),"SUPERSET_LOAD_EXAMPLES=yes","SUPERSET_ENABLE_PROXY_FIX=true"].join("\n"),mounts:[{type:"volume",name:"superset",mountPath:"/app/superset_home"}]}}),{services:t}}},{slug:"apprise-api",meta:{name:"Apprise-API",description:"Apprise-API is an open-source notification gateway that provides a unified and straightforward way to send notifications to a variety of services, including email, SMS, chat apps, and more. It supports dozens of platforms out of the box, making it an ideal solution for developers and organizations seeking a robust, flexible, and extensible notification system. With a lightweight and API-driven design, Apprise-API simplifies integration into any project.",instructions:null,changeLog:[{date:"2025-01-27",description:"First release"},{date:"2025-12-24",description:"Switched from latest to 1.3.0 tag"},{date:"2026-02-18",description:"Version bumped to 1.3.1"},{date:"2026-04-29",description:"Version bumped to 1.4.0"}],links:[{label:"Github",url:"https://github.com/caronc/apprise-api"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"apprise-api"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/apprise-api:1.4.0"}}},benefits:[{title:"Unified Notification Gateway",description:"Apprise-API allows you to send notifications across multiple platforms, including email, SMS, chat apps, and more, from a single API."},{title:"Extensive Platform Support",description:"With built-in support for dozens of services, Apprise-API ensures seamless integration with your preferred notification platforms."},{title:"Lightweight and Scalable",description:"The lightweight design of Apprise-API makes it easy to deploy in containerized environments, ensuring scalability and flexibility."}],features:[{title:"Multi-Platform Notifications",description:"Send notifications to email, SMS, chat apps, and other platforms with minimal configuration."},{title:"Open-Source and Extensible",description:"Apprise-API\u2019s open-source architecture allows developers to customize and extend functionality to meet their specific needs."},{title:"RESTful API",description:"Utilize a simple RESTful API to integrate Apprise-API into any application or workflow for easy notification management."},{title:"Secure and Reliable",description:"Built with security in mind, Apprise-API ensures that notifications are delivered securely and reliably to the desired platforms."},{title:"Containerized Deployment",description:"Easily deploy Apprise-API using Docker for quick setup and scalability."}],tags:["Notifications","Open Source","API","Email","SMS","Chat Apps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"appsmith",meta:{name:"Appsmith",description:"Appsmith is a powerful tool designed to help engineers build custom software on top of their data. It simplifies internal tool development for businesses, streamlining operations, automating processes, and integrating multiple apps and data sources. Appsmith allows you to quickly build, deploy, and share applications that run critical business operations. It features intent-based auto-layouts for building responsive apps faster and offers a drag-and-drop interface for creating beautiful UIs without writing a single line of HTML/CSS. You can connect to any database, SaaS tool, or GraphQL/REST API, and query your data directly using SQL or the built-in query builder. Appsmith also provides the ability to write in-line JavaScript or reusable code blocks to extend your app's functionality, customize your UI, or write conditional logic. It's a secure, open-source platform that can be self-hosted for total control, privacy, and security.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2024-03-10",description:"Version bumped to 1.16"},{date:"2024-09-30",description:"Version bumped to 1.42"},{date:"2025-01-06",description:"Version bumped to 1.55"},{date:"2025-02-21",description:"Version bumped to v1.62"},{date:"2025-12-24",description:"Version bumped to v1.94"},{date:"2026-02-18",description:"Version bumped to v1.95"},{date:"2026-04-29",description:"Version bumped to v1.99"}],links:[{label:"Website",url:"https://www.appsmith.com/"},{label:"Documentation",url:"https://docs.appsmith.com/"},{label:"Github",url:"https://github.com/appsmithorg/appsmith"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://github.com/BerkSMBL"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"appsmith"},appServiceImage:{type:"string",title:"App Service Image",default:"appsmith/appsmith-ce:v1.99"}}},benefits:[{title:"Streamlined Operations",description:"Appsmith simplifies internal tool development for businesses, helping to streamline operations and automate processes. This allows businesses to scale faster and more efficiently."},{title:"Rapid Application Development",description:"With Appsmith, technical users can quickly build, deploy, and share applications with end-users to run critical business operations. This accelerates the development process and reduces time to market."},{title:"Enhanced Legacy Apps",description:"Appsmith allows businesses to quickly integrate multiple apps and data, enhancing legacy apps with new features. This ensures that your existing software remains relevant and continues to deliver value."}],features:[{title:"Data Integration",description:"Appsmith can connect to any database, SaaS tool, or GraphQL/REST API within a few clicks. Users can query their data directly using SQL or the query builder, with 18+ native integrations available."},{title:"Drag and Drop UI Builder",description:"Appsmith features a drag and drop UI builder with 45+ customizable widgets. Users can create beautiful responsive UI in minutes without writing a single line of HTML/CSS."},{title:"Customizable with Code",description:"Users can write in-line JavaScript or reusable code blocks to extend their app's functionality, customize their UI, or write conditional logic. This provides a high degree of flexibility and control over the app's behavior."},{title:"Git-based Version Control",description:"Appsmith supports git-based version control, allowing users to sync to a git repository and use the same dev workflows. Users can commit changes, review pull requests, and deploy with their CI/CD."},{title:"Secure and Private",description:"Appsmith ensures security and privacy by allowing self-hosting with no telemetry and no private data over the wire. All connections are TLS-encrypted, and credentials are encrypted with AES-256."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"stacks",mountPath:"/appsmith-stacks"}]}}),{services:t}}},{slug:"appwrite",meta:{name:"Appwrite",description:"Appwrite is an open-source backend as a service server that abstracts and simplifies complex and repetitive development tasks behind a very simple to use REST API.",instructions:null,changeLog:[{date:"2024-7-30",description:"first release"},{date:"2025-12-30",description:"Updated Appwrite to v1.8.0"}],links:[{label:"Website",url:"https://appwrite.io"},{label:"Documentation",url:"https://appwrite.io/docs"},{label:"Github",url:"https://github.com/appwrite/appwrite"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["serviceName"],properties:{serviceName:{type:"string",title:"Service Name",default:"appwrite"}}},logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"compose",data:{serviceName:e.serviceName,source:{type:"git",repo:"https://github.com/easypanel-io/compose.git",ref:"19-01-2026",rootPath:"/appwrite/code",composeFile:"docker-compose.yml"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80,service:"traefik"}]}}),{services:t}}},{slug:"aptabase",meta:{name:"Aptabase",description:"Aptabase is an open-source, privacy-focused analytics platform for mobile and desktop applications. It provides real-time analytics, crash reporting, and user insights while respecting user privacy.",instructions:"Sign up and open the console logs where it will print the link to authorize the email. Copy the URL part that looks like this. [url, https://your-domain/api/_auth/continue?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiU2lnbkluIiwibmFtZSI6IkFoc29uIFNoYWlraCIsImVtYWlsIjoiYWhzb25zaGFpa2g2MTZAZ21haWwuY29tIiwibmJmIjoxNzQ0MTE5MDgyLCJleHAiOjE3NDQxMTk5ODIsImlhdCI6MTc0NDExOTA4MiwiaXNzIjoiYXB0YWJhc2Utc2gifQ.PxbVTiVOXsTkkxQKV1AOGaaEpLnMOOtgSRMqDY6dkIg]\\u0027. Do not copy this part at the end ]\\u0027",changeLog:[{date:"2024-04-04",description:"First Release"}],links:[{label:"Website",url:"https://aptabase.com"},{label:"Documentation",url:"https://aptabase.com/docs"},{label:"GitHub",url:"https://github.com/aptabase/aptabase"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","clickhouseServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"aptabase"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/aptabase/aptabase:main"},clickhouseServiceImage:{type:"string",title:"ClickHouse Service Image",default:"clickhouse/clickhouse-server:23.8.4.69-alpine"}}},benefits:[{title:"Privacy Focused",description:"Built with privacy in mind, ensuring user data protection"},{title:"Real-time Analytics",description:"Get instant insights into your application usage"},{title:"Crash Reporting",description:"Automatic crash detection and reporting"},{title:"Self-hosted",description:"Complete control over your data and infrastructure"},{title:"Open Source",description:"Transparent and community-driven development"}],features:[{title:"Analytics Dashboard",description:"Comprehensive analytics and user insights"},{title:"Crash Reporting",description:"Automatic crash detection and detailed reports"},{title:"User Segmentation",description:"Analyze user behavior and create segments"},{title:"Real-time Updates",description:"Live updates of application usage data"},{title:"API Access",description:"Programmatic access to analytics data"}],tags:["Analytics","Privacy","Monitoring","Self-hosted","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["BASE_URL=https://$(PRIMARY_DOMAIN)","AUTH_SECRET=".concat(o),"DATABASE_URL=Server=".concat(e.appServiceName,"-db;Port=5432;User Id=postgres;Password=").concat(a,";Database=$(PROJECT_NAME)"),"CLICKHOUSE_URL=Host=".concat(e.appServiceName,"-clickhouse;Port=8123;Username=aptabase;Password=").concat(i)].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-clickhouse"),source:{type:"image",image:e.clickhouseServiceImage},env:["CLICKHOUSE_USER=aptabase","CLICKHOUSE_PASSWORD=".concat(i)].join("\n"),mounts:[{type:"volume",name:"events-db-data",mountPath:"/var/lib/clickhouse"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"arangodb",meta:{name:"ArangoDB",description:"ArangoDB is a multi-model NoSQL database system that supports graph, document, and key-value data models. It is designed for scalability, high availability, and flexibility, making it suitable for a wide range of applications, from simple document storage to complex graph processing. ArangoDB offers a native query language (AQL), full-text search capabilities, a built-in HTTP API, and a web-based UI for management. It also provides features like replication, sharding, and ACID transactions to ensure data integrity and performance. With its integrated search engine and support for multi-tenancy, ArangoDB is an ideal choice for both small projects and enterprise-level applications.",instructions:"Login using username; root and password specified in the envs.",changeLog:[{date:"2025-02-03",description:"First Release"}
1,{date:"2025-12-24",description:"Updated to ArangoDB version 3.12.7"},{date:"2026-02-18",description:"Version bumped to 3.12.7.2"},{date:"2026-04-29",description:"Version bumped to 3.12.9.1"}],links:[{label:"Documentation",url:"https://www.arangodb.com/docs/stable/"},{label:"Github",url:"https://github.com/arangodb/arangodb"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"arangodb"},appServiceImage:{type:"string",title:"App Service Image",default:"arangodb:3.12.9.1"}}},benefits:[{title:"Multi-Model Database",description:"ArangoDB supports multiple data models, including document, graph, and key-value, allowing developers to use a single database for diverse application needs."},{title:"Scalable and High Availability",description:"With built-in clustering, replication, and sharding, ArangoDB ensures high availability and scalability for enterprise-level applications."},{title:"Rich Querying Capabilities",description:"ArangoDB provides AQL (ArangoDB Query Language), a powerful query language that supports complex queries, graph traversals, and full-text search."}],features:[{title:"Native Graph Support",description:"ArangoDB offers a robust graph database engine with native graph traversal and pattern matching, making it ideal for social networks, recommendation engines, and fraud detection."},{title:"ACID Transactions",description:"ArangoDB ensures data integrity with full support for ACID transactions, making it a reliable choice for critical applications."},{title:"Integrated Search Engine",description:"With ArangoSearch, ArangoDB provides full-text search, ranking, and filtering capabilities, enhancing search-driven applications."},{title:"HTTP API and Web UI",description:"ArangoDB includes a built-in HTTP API and a web-based UI for easy database management and administration."},{title:"Flexible Deployment Options",description:"ArangoDB can be deployed as a single instance, in a cluster, or in Kubernetes environments for optimal scalability and reliability."}],tags:["Database","NoSQL","Graph Database","Document Store","Key-Value Store"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["ARANGO_ROOT_PASSWORD=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8529}],mounts:[{type:"volume",name:"data",mountPath:"/var/lib/arangodb3"}]}}),{services:t}}},{slug:"arcadedb",meta:{name:"ArcadeDB",description:"ArcadeDB is a multi-model database that supports multiple data models including Document, Graph, Key-Value, and Vector databases in a single engine. It's designed for high-performance applications with ACID transactions and real-time analytics capabilities.",instructions:null,changeLog:[{date:"2025-08-26",description:"First release"},{date:"2025-12-24",description:"Updated to ArcadeDB version 25.11.1"},{date:"2026-04-29",description:"Updated to ArcadeDB version 26.4.2"}],links:[{label:"Website",url:"https://arcadedb.com/"},{label:"Documentation",url:"https://docs.arcadedb.com/"},{label:"Github",url:"https://github.com/ArcadeData/arcadedb"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"arcadedb"},appServiceImage:{type:"string",title:"App Service Image",default:"arcadedata/arcadedb:26.4.2"},binaryPort:{type:"string",title:"Binary Port",default:"2480"}}},benefits:[{title:"Multi-Model Database",description:"Support for Document, Graph, Key-Value, and Vector databases in a single engine, eliminating the need for multiple database systems."},{title:"High Performance",description:"Built for high-performance applications with optimized data structures and efficient query processing."},{title:"ACID Transactions",description:"Full ACID compliance ensuring data consistency and reliability for critical applications."},{title:"Real-time Analytics",description:"Built-in support for real-time analytics and complex queries with powerful indexing capabilities."},{title:"Open Source",description:"Completely open-source with an active community, providing transparency and customization options."}],features:[{title:"Document Database",description:"Store and query JSON-like documents with flexible schema and powerful indexing options."},{title:"Graph Database",description:"Native graph database capabilities for complex relationship queries and graph analytics."},{title:"Key-Value Store",description:"High-performance key-value storage for caching and simple data retrieval scenarios."},{title:"Vector Database",description:"Support for vector operations and similarity search for AI and machine learning applications."},{title:"SQL Support",description:"Full SQL support with extensions for graph and document operations, making it familiar for developers."},{title:"REST API",description:"Comprehensive REST API for easy integration with web applications and microservices."}],tags:["Database","Multi-Model","Document","Graph","Key-Value","Vector","NoSQL","ACID","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:2480}],ports:[{published:Number(e.binaryPort),target:2424}],env:["JAVA_OPTS=-Darcadedb.server.rootPassword=playwithdata -Darcadedb.dumpConfigAtStartup=true -Darcadedb.server.defaultDatabases=Imported[root]{import:https://github.com/ArcadeData/arcadedb-datasets/raw/main/orientdb/OpenBeer.gz}"].join("\n"),mounts:[{type:"volume",name:"arcade_db_vol",mountPath:"/data"}]}}),{services:t}}},{slug:"archivebox",meta:{name:"ArchiveBox",description:"ArchiveBox is a self-hosted open-source internet archiving solution that allows you to save and browse webpages offline. It enables users to store full snapshots of web pages, including HTML, media, PDFs, and more, preserving them for future reference. ArchiveBox supports various input formats such as bookmarks, RSS feeds, and browser history, making it easy to automate and manage archiving tasks. The web interface provides a structured way to browse archived content, perform full-text searches, and organize saved snapshots efficie
1ntly. Additionally, it offers integrations with other tools, supports multiple storage backends, and provides API access for advanced automation.",instructions:'To create superuser, take the console, and do "su archivebox && archivebox manage createsuperuser"',changeLog:[{date:"2025-03-18",description:"First Release"},{date:"2026-05-06",description:"Version bumped to 0.7.3"}],links:[{label:"Documentation",url:"https://github.com/ArchiveBox/ArchiveBox/wiki"},{label:"Github",url:"https://github.com/ArchiveBox/ArchiveBox"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"archivebox"},appServiceImage:{type:"string",title:"App Service Image",default:"archivebox/archivebox:0.7.3"}}},benefits:[{title:"Webpage Archiving",description:"ArchiveBox allows you to save full snapshots of web pages, including text, media, and interactive elements. This ensures long-term access to content even if the original webpage is deleted or altered."},{title:"Multiple Input Sources",description:"Users can archive content from various sources, such as bookmarks, browser history, RSS feeds, and direct URLs. This flexibility makes it ideal for researchers, journalists, and data preservationists."},{title:"Full-Text Search & Browsing",description:"ArchiveBox provides a powerful full-text search engine and an intuitive web interface to browse, tag, and organize archived content efficiently."}],features:[{title:"Multi-Format Archiving",description:"ArchiveBox saves pages in multiple formats, including HTML, screenshots, PDFs, and WARC files, ensuring robust long-term preservation."},{title:"Automation & API Access",description:"ArchiveBox provides an API for programmatic archiving, allowing seamless integration with other tools and automated workflows."},{title:"Private & Public Archives",description:"Users can control access by setting public or private modes, ensuring that sensitive data remains secure while allowing sharing of curated content."},{title:"Full-Text Search",description:"The system enables fast and efficient search across archived content, making it easy to retrieve specific information."},{title:"Self-Hosted & Open Source",description:"ArchiveBox is self-hosted and fully open-source, giving users complete control over their data without relying on third-party services."}],tags:["Archiving","Web Scraping","Productivity","Research"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["ALLOWED_HOSTS=*","CSRF_TRUSTED_ORIGINS=https://$(PRIMARY_DOMAIN)","PUBLIC_INDEX=True","PUBLIC_SNAPSHOTS=True","PUBLIC_ADD_VIEW=False"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"argilla",meta:{name:"Argilla",description:"Argilla is a robust platform designed to help engineers and data scientists streamline the management of machine learning data workflows. It simplifies tasks like data labeling, annotation, and quality control, making it easier for businesses to build and maintain high-quality datasets for AI and machine learning projects. Argilla supports efficient collaboration, integrates seamlessly with popular ML frameworks, and provides a user-friendly interface for creating structured datasets. Its open-source nature ensures transparency, flexibility, and the ability to self-host for maximum control over your data and workflows.",instructions:null,changeLog:[{date:"2024-12-21",description:"First Release"},{date:"2025-06-10",description:"Switched from latest to v2.8.0"}],links:[{label:"Website",url:"https://www.argilla.io/"},{label:"Documentation",url:"https://docs.argilla.io/"},{label:"Github",url:"https://github.com/argilla-io/argilla"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","elasticsearchServiceImage","loginUsername","loginPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"argilla"},appServiceImage:{type:"string",title:"App Service Image",default:"argilla/argilla-server:v2.8.0"},elasticsearchServiceImage:{type:"string",title:"Elasticsearch Service Image",default:"docker.elastic.co/elasticsearch/elasticsearch:8.12.2"},loginUsername:{type:"string",title:"Login User Name",default:"argilla"},loginPassword:{type:"string",title:"Login Password",default:"password",description:"This password should be 8 characters long"}}},benefits:[{title:"Streamlined Data Workflows",description:"Argilla simplifies the management of machine learning data workflows, enabling teams to efficiently annotate, label, and maintain high-quality datasets. This helps accelerate AI and ML projects."},{title:"Enhanced Collaboration",description:"With Argilla, teams can collaborate seamlessly on dataset creation and management. It provides intuitive tools to ensure consistency and quality in data workflows."},{title:"Integration with ML Frameworks",description:"Argilla integrates effortlessly with popular machine learning frameworks and tools, allowing you to easily use your datasets in training and evaluation pipelines."}],features:[{title:"Data Annotation and Labeling",description:"Argilla offers advanced tools for annotating and labeling datasets with a user-friendly interface. These features ensure your datasets are accurate and ready for machine learning."},{title:"Workflow Automation",description:"Automate repetitive tasks in your data workflows to save time and focus on building intelligent systems. Argilla enables automated quality control and monitoring of datasets."},{title:"Flexible Deployment",description:"Argilla is open-source and can be self-hosted, providing flexibility and control over your data and infrastructure. Its design ensures privacy and security."},{title:"Version Control for Datasets",description:"Manage and track changes in your datasets with built-in version control, allowing you to maintain an organized history of dataset modifications."},{title:"Secure and Private",description:"Argilla prioritizes security and privacy, with features like self-hosting, encrypted connections, and full transparency in its open-source codebase."}],tags:["Machine Learning","Data Labeling","AI Tools"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=["ARGILLA_ELASTICSEARCH=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-elasticsearch:9200"),"ARGILLA_DATABASE_URL=postgresql+asyncpg://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"ARGILLA_REDIS_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0")];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),source:{type:"image",image:e.appServiceImage},env:["ARGILLA_HOME_PATH=/var/lib/argilla",o.join("\n"),"USERNAME=".concat(e.loginUsername),"PASSWORD=".concat(e.loginPassword),"API_KEY=argilla.apikey","WORKSPACE=default","# Optional settings (uncomment if needed)","#REINDEX_DATASETS=1","#HF_HUB_DISABLE_TELEMETRY=1","#HF_HUB_OFFLINE=1"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:6900}],mounts:[{type:"volume",name:"argilladata",mountPath:"/var/lib/argilla"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),source:{type:"image",image:e.appServiceImage},env:["BACKGROUND_NUM_WORKERS=2","ARGILLA_HOME_PATH=/var/lib/argilla",o.join("\n")].join("\n"),mounts:[{type:"volume",name:"argilladata",mountPath:"/var/lib/argilla"}],deploy:{command:"python -m argilla_server worker --num-workers ${BACKGROUND_NUM_WORKERS}"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-elasticsearch"),source:{type:"image",image:e.elasticsearchServiceImage},env:["node.name=elasticsearch","cluster.name=es-argilla-local","discovery.type=single-node","ES_JAVA_OPTS=-Xms512m -Xmx512m","cluster.routing.allocation.disk.threshold_enabled=false","xpack.security.enabled=false"].join("\n"),mounts:[{type:"volume",name:"elasticdata",mountPath:"/usr/share/elasticsearch/data/"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"ariang",meta:{name:"AriaNg",description:"AriaNg is a modern web frontend for aria2, a lightweight multi-protocol & multi-source command-line download utility. It provides a beautiful web interface for managing downloads.",instructions:null,changeLog:[{date:"2025-05-05",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to 1.3.13"}],links:[{label:"Website",url:"https://ariang.mayswind.net"},{label:"GitHub",url:"https://github.com/mayswind/AriaNg"},{label:"Docker Hub",url:"https://hub.docker.com/r/hurlenko/aria2-ariang"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","rpcSecret"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ariang"},appServiceImage:{type:"string",title:"App Service Image",default:"hurlenko/aria2-ariang:1.3.13"},rpcSecret:{type:"string",title:"RPC Secret",default:"secret"}}},benefits:[{title:"Modern Interface",description:"Beautiful and responsive web interface"},{title:"Multi-protocol",description:"Support for HTTP, HTTPS, FTP, SFTP, BitTorrent, and more"},{title:"Remote Control",description:"Control downloads remotely through RPC"},{title:"Open Source",description:"Free and open-source download manager"}],features:[{title:"Web Interface",description:"Modern and responsive web UI"},{title:"Multiple Protocols",description:"Support for various download protocols"},{title:"Remote Access",description:"Access and control downloads remotely"},{title:"Download Management",description:"Pause, resume, and manage downloads"},{title:"Configuration",description:"Customizable download settings"}],tags:["Download Manager","File Transfer","Self-hosted","Open Source"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["PUID=1000","PGID=1000","RPC_SECRET=".concat(e.rpcSecret),"ARIA2RPCPORT=443"].join("\n"),mounts:[{type:"volume",name:"download-data",mountPath:"/aria2/data"},{type:"volume",name:"config-data",mountPath:"/aria2/conf"}]}}),{services:t}}},{slug:"astuto",meta:{name:"Astuto",description:"Astuto is a self-hosted customer feedback management platform that helps teams collect, organize, and respond to customer feedback in one centralized location. Built with modern web technologies, Astuto provides a clean and intuitive interface for managing feature requests, bug reports, and customer suggestions. The application enables teams to create public or private feedback boards where customers can submit ideas, vote on features, and track the status of their requests. With built-in categorization, tagging, and status tracking, Astuto helps product teams prioritize development work based on customer demand. The platform supports multiple boards, user authentication, and integration capabilities to streamline the feedback collection process. Perfect for product teams managing customer feedback, startups building customer-driven products, SaaS companies wanting to engage with their user base, or any organization that wants to centralize and manage customer input effectively.",instructions:null,changeLog:[{date:"2025-12-23",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/riggraz/astuto"},{label:"Docker Hub",url:"https://hub.docker.com/r/riggraz/astuto"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"astuto"},appServiceImage:{type:"string",title:"App Service Image",default:"riggraz/astuto:ac6ad92f7ec3f2961c37f17fb090c1fe4184f194"}}},benefits:[{title:"Customer Feedback Management",description:"Centralize all customer feedback, feature requests, and suggestions in one organized platform."},{title:"Customer Engagement",description:"Create public feedback boards where customers can submit ideas and vote on features they want to see."},{title:"Self-Hosted Control",description:"Complete ownership of customer feedback data without relying on third-party services."},{title:"Product Prioritization",description:"Use voting and categorization to prioritize development work based on customer demand."}],features:[{title:"Feedback Boards",description:"Create multiple public or private boards for different products or features to organize feedback."},{title:"Voting System",description:"Allow customers to vote on feature requests to help prioritize development efforts."},{title:"Status Tracking",description:"Track the status of feedback items from submitted to in-progress to completed."},{title:"Categorization",description:"Organize feedback with categories and tags for easy filtering and management."},{title:"User Authentication",description:"Support for user accounts to manage feedback submissions and track contributions."},{title:"Modern Interface",description:"Clean and intuitive web interface for both customers and administrators."},{title:"PostgreSQL Backend",description:"Reliable PostgreSQL database for storing all feedback data and configurations."}],tags:["Customer Feedback","Product Management","Self-Hosted","Feedback Management","Feature Requests"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(64);return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"BASE_URL=https://$(PRIMARY_DOMAIN)","SECRET_KEY_BASE=".concat(i)].join("\n")}}),{services:t}}},{slug:"atheos",meta:{name:"Atheos",description:"Atheos is a self-hosted browser-based cloud IDE, updated from Codiad IDE with a modern approach to web development. This lightweight development environment provides fast, interactive coding without the massive overhead of desktop editors. Atheos features built-in Git integration, a comprehensive plugin system, multi-user support with permissions, and supports multiple programming languages. Perfect for developers who want a complete IDE that runs entirely in the browser with minimal server requirements and maximum functionality.",instructions:null,changeLog:[{date:"2025-07-02",description:"Initial release"}],links:[{label:"GitHub Repository",url:"https://github.com/Atheos/Atheos"},{label:"Official Website",url:"https://www.atheos.io"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"atheos"},appServiceImage:{type:"string",title:"App Service Image",default:"hlsiira/atheos:latest"}}},benefits:[{title:"Browser-Based Development",description:"Complete IDE running entirely in your browser - no desktop software installation required."},{title:"Lightweight & Fast",description:"Minimal server footprint with fast, interactive development experience without desktop editor overhead."},{title:"Self-Hosted Control",description:"Complete control over your development environment and code with self-hosted deployment."}],features:[{title:"Modern Code Editor",description:"Advanced code editing with syntax highlighting, code completion, and multiple language support."},{title:"Built-in Git Integration",description:"Seamless version control with integrated Git support for repository management."},{title:"Plugin System",description:"Extensible architecture with support for themes, plugins, and customizations."},{title:"Multi-User Support",description:"User permission system allowing multiple developers to work on projects with proper access control."},{title:"File Management",description:"Complete file system management with upload, download, and directory operations."},{title:"Project Management",description:"Organize and manage multiple projects with workspace functionality and project switching."}],tags:["IDE","Code Editor","Cloud IDE","Browser-Based","Self-Hosted","Git Integration","Multi-User","Plugin System","Web Development","PHP","JavaScript","Development Environment"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"atomic-server",meta:{name:"Atomic Server",description:"Atomic Server is a powerful and flexible server for managing and serving atomic data. It provides a robust platform for data management with support for various protocols and formats.",instructions:null,changeLog:[{date:"2026-09-16",description:"Bumped image from the abandoned joepmeneer/atomic-server:v0.38.0 to ghcr.io/ontola/atomic-server pinned by digest (upstream only publishes a rolling develop tag, no versioned tags), picking up the v0.40.3 security fixes (SSRF, invite reuse, path traversal, stored XSS); corrected the GitHub link to the active ontola/atomic-server repo"},{date:"2025-04-24",description:"First Release"}],links:[{label:"Github",url:"https://github.com/ontola/atomic-server"},{label:"Documentation",url:"https://docs.atomicdata.dev"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"atomic-server"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/ontola/atomic-server@sha256:c8596aca39731f0b1ee6fa236aac5d60f18efdefa4c1f61054ea65eae7a5683e"}}},benefits:[{title:"Powerful Data Management",description:"Atomic Server provides a robust platform for managing and serving atomic data with support for various protocols and formats."},{title:"Flexible Configuration",description:"Highly configurable with support for custom domains, ports, and storage options."},{title:"Secure by Default",description:"Built with security in mind, providing secure data access and management capabilities."}],features:[{title:"Multiple Protocols",description:"Supports various protocols for data access and management."},{title:"Customizable Storage",description:"Flexible storage options with support for custom storage paths."},{title:"Web Interface",description:"Includes a web interface for easy management and monitoring."},{title:"REST API",description:"Provides a REST API for programmatic access and automation."},{title:"SSL Support",description:"Built-in support for SSL/TLS encryption."},{title:"Containerized",description:"Easy to deploy and manage in containerized environments."}],tags:["Atomic","Server","Data Management","API","Web Interface"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"atomic-storage",mountPath:"/atomic-storage"}],env:["ATOMIC_DOMAIN=$(PRIMARY_DOMAIN)","ATOMIC_PORT=80","ATOMIC_HTTPS=false","ATOMIC_SERVER_URL=https://$(PRIMARY_DOMAIN)"].join("\n")}}),{services:t}}},{slug:"audiobookshelf",meta:{name:"Audiobookshelf",description:"Audiobookshelf is a self-hosted server designed to manage and play your audiobooks and podcasts. It works best when you have an organized directory structure, as it takes information from your folder names, including the author name, series name, book title, publish year, series sequence, and subtitle. The app uses the ID3 metadata tags in audio files to populate data, and it supports the same configuration options you would pass to a Docker container. Audiobookshelf is designed to be deployed on your own server using Easypanel, a modern server control panel. With Audiobookshelf, you can enjoy your favorite audiobooks and podcasts in a well-organized and easily accessible manner.",instructions:'Starter Host Path will be bind to "/audiobooks" inside the container. You can bind any other directories you want to use for your book and podcast collections.',changeLog:[{date:"2023-03-17",description:"Template created (v2.2.16)"},{date:"2024-03-10",description:"Version bumped to 2.8.0"},{date:"2024-09-30",description:"Version bumped to 2.13.4"},{date:"2025-02-21",description:"Version bumped to 2.19.4"},{date:"2025-12-24",description:"Version bumped to 2.32.1"},{date:"2026-04-29",description:"Version bumped to 2.33.2"}],links:[{label:"Website",url:"https://www.audiobookshelf.org"},{label:"Documentation",url:"https://www.audiobookshelf.org/docs"},{label:"Github",url:"https://github.com/advplyr/audiobookshelf"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage","hostPath"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"audiobookshelf"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/advplyr/audiobookshelf:2.33.2"},hostPath:{type:"string",title:"Starter Host Path"}}},benefits:[{title:"Self-Hosted Audiobook and Podcast Server",description:"Audiobookshelf allows you to host your own audiobook and podcast server. This means you can have all your favorite audiobooks and podcasts in one place, accessible from anywhere. No more switching between different platforms or apps to listen to your favorite content."},{title:"Organized Directory Structure",description:"Audiobookshelf works best when you have an organized directory structure. It takes information from your folder names, including the author name, series name, book title, publish year, series sequence, and subtitle. This makes it easy to find and manage your audiobooks and podcasts."},{title:"Metadata Extraction",description:"Audiobookshelf uses the ID3 metadata tags in audio files to populate data. This includes details like artist, album, subtitle, publisher, year, composer, description, genre, series, series-part, language, isbn, and asin. This ensures that all your content is accurately labeled and easy to search."}],features:[{title:"Audio Tracks",description:"An audiobook in Audiobookshelf contains tracks. Tracks are audio files assigned a track number. The track number is parsed from the audio filename and from the ID3 tags of the audio file. This allows for easy navigation within an audiobook."},{title:"Additional Metadata",description:"Audiobookshelf allows for additional metadata to be added. If you have a file named desc.txt in the library item folder it will be used as the description. If you have a file named reader.txt in the library item folder it will be used as the narrator. If you have an OPF file with extension .opf in the library item folder it will be parsed."},{title:"Directory Structure for Podcasts",description:"Audiobookshelf supports a specific directory structure for podcasts. This makes it easy to organize and manage your podcasts, ensuring that each episode is easy to find and play."}],tags:["Media","Educational","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"metadata",mountPath:"/metadata"},{type:"bind",hostPath:e.hostPath,mountPath:"/audiobooks"}]}}),{services:t}}},{slug:"aurral",meta:{name:"Aurral",description:"Aurral is a self-hosted music discovery and request management app for Lidarr. Search artists via MusicBrainz, add them to Lidarr with granular monitoring options, browse your library, and discover new artists from recommendations. Features include Weekly Flow playlists (powered by Soulseek + Navidrome), multi-user support with permissions, Gotify notifications, and PWA support. Aurral is designed to be safe for your collection\u2014library changes go through Lidarr's API.",instructions:null,changeLog:[{date:"2026-02-16",description:"Template Release (1.34.2)"},{date:"2026-04-29",description:"Version bumped to (1.51.0)"}],links:[{label:"GitHub",url:"https://github.com/lklynet/aurral"},{label:"Container Registry",url:"https://github.com/lklynet/aurral/pkgs/container/aurral"},{label:"Discord",url:"https://discord.gg/cpPYfgVURJ"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"aurral"},appServiceImage:{type:"string",title:"Aurral Image",default:"ghcr.io/lklynet/aurral:1.51.0"}}},benefits:[{title:"Lidarr Integration",description:"Add artists to Lidarr with granular monitor options. Track requests and download progress. Library changes go through Lidarr's API\u2014safe for your main collection."},{title:"Music Discovery",description:"Daily Discover recommendations based on your library, tags, and trends. Deep artist pages with types, tags, release groups, and tracklists."},{title:"Weekly Flow Playlists",description:"Auto-curated playlists from your library. Built-in Soulseek client downloads tracks into a dedicated Weekly Flow library. Optional Navidrome integration."}],features:[{title:"Artist Search",description:"Real-time artist search via MusicBrainz. Add artists with monitor options (None, All, Future, Missing, Latest, First)."},{title:"Multi-User Support",description:"First-run onboarding creates an admin account. Multiple local users with roles and granular permissions. Optional reverse-proxy auth."},{title:"Gotify Notifications",description:"Push notifications for key events like Discover updates and Weekly Flow completion."},{title:"PWA Support",description:"Installable web app with auto-update support. Web-based configuration."}],tags:["Music","Lidarr","Self-Hosted","Music Discovery","Soulseek","Navidrome"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001}],env:["DOWNLOAD_FOLDER=/app/downloads"].join("\n"),mounts:[{type:"volume",name:"downloads",mountPath:"/app/downloads"},{type:"volume",name:"data",mountPath:"/app/backend/data"}]}}),{services:t}}},{slug:"authelia",meta:{name:"Authelia",description:"Authelia is an open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal. It acts as a companion to reverse proxies such as Traefik, Nginx, or Caddy to control whether requests should pass through. Authelia is also an OpenID Connect 1.0 certified identity provider, enabling modern authentication flows for applications that support it. Key features include multi-factor authentication via TOTP, WebAuthn, or Duo; fine-grained access control rules; session management with configurable timeouts; LDAP and file-based user backends; and SQLite, PostgreSQL, or MariaDB storage.",instructions:'After deployment, open the Authelia URL you configured. Log in with username "admin" and the password you set during setup. On first login you will be prompted to register a TOTP authenticator app. The "Authelia URL" field must exactly match the full HTTPS URL you use to reach Authelia (e.g. https://auth.yourdomain.com) \u2014 a mismatch causes the "issue retrieving user state" error. Password reset notifications are written to /data/notification.txt inside the container; view them via the Easypanel console if no SMTP is configured.',changeLog:[{date:"2026-07-07",description:"First Release"}],links:[{label:"Website",url:"https://www.authelia.com"},{label:"Documentation",url:"https://www.authelia.com/configuration/prologue/introduction/"},{label:"GitHub",url:"https://github.com/authelia/authelia"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"authelia"},appServiceImage:{type:"string",title:"App Service Image",default:"authelia/authelia:4.39.20"},adminPassword:{type:"string",title:"Admin Password",description:'Password for the initial "admin" user account.'}}},benefits:[{title:"Multi-Factor Authentication",description:"Add TOTP, WebAuthn (passkeys and hardware keys), and Duo push notifications on top of any password-based login, without modifying the protected application."},{title:"Single Sign-On",description:"One login session covers all protected apps. Users authenticate once and are silently passed through to every service on your domain without re-entering credentials."},{title:"OpenID Connect Identity Provider",description:"Act as an OIDC provider for any application that supports it, enabling centralised identity management and delegated login flows across your entire infrastructure."}],features:[{title:"Reverse Proxy Integration",description:"Works natively with Traefik, Nginx, Caddy, HAProxy, and more via forward authentication headers \u2014 no agents or sidecar containers required."},{title:"Fine-Grained Access Control",description:"Define rules by domain, path, method, user, group, and network to allow, bypass, or require one- or two-factor authentication per resource."},{title:"File and LDAP User Backends",description:"Manage users with a simple YAML file for small deployments or connect to an LDAP or Active Directory server for enterprise-scale user management."},{title:"SQLite Storage",description:"Stores all persistent state \u2014 TOTP secrets, WebAuthn credentials, session records \u2014 in a local SQLite database with no external DB required."},{title:"Regulation and Brute-Force Protection",description:"Automatically bans accounts and IPs after configurable failed-attempt thresholds, protecting against credential-stuffing and brute-force attacks."}],tags:["Authentication","Authorization","2FA","MFA","SSO","Single Sign-On","OpenID Connect","OIDC","Security","Identity","Access Control"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=y(32),o=y(32),n="server:\n  address: 'tcp://:9091'\n\nlog:\n  level: 'info'\n\ntotp:\n  issuer: '{{ env \"ROOT_DOMAIN\" }}'\n\nidentity_validation:\n  reset_password:\n    jwt_secret: '".concat(a,"'\n\nauthentication_backend:\n  file:\n    path: '/config/users_database.yml'\n\naccess_control:\n  default_policy: 'deny'\n  rules:\n    - domain: '*.{{ env \"ROOT_DOMAIN\" }}'\n      policy: 'one_factor'\n    - domain: '{{ env \"ROOT_DOMAIN\" }}'\n      policy: 'one_factor'\n\nsession:\n  secret: '").concat(i,"'\n  cookies:\n    - name: 'authelia_session'\n      domain: '{{ env \"SESSION_DOMAIN\" }}'\n      authelia_url: '{{ env \"AUTHELIA_URL\" }}'\n      expiration: '1 hour'\n      inactivity: '5 minutes'\n\nregulation:\n  max_retries: 3\n  find_time: '2 minutes'\n  ban_time: '5 minutes'\n\nstorage:\n  encryption_key: '").concat(o,"'\n  local:\n    path: '/data/db.sqlite3'\n\nnotifier:\n  filesystem:\n    filename: '/data/notification.txt'\n"),r="users:\n  admin:\n    disabled: false\n    displayname: 'Admin User'\n    password: '".concat(function(e){return(0,h.hashSync)(e)}(e.adminPassword),"'\n    email: 'admin@localhost'\n    groups:\n      - 'admins'\n");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["X_AUTHELIA_CONFIG_FILTERS=template","ROOT_DOMAIN=$(EASYPANEL_HOST)","SESSION_DOMAIN=$(PRIMARY_DOMAIN)","AUTHELIA_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:9091}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"file",content:n,mountPath:"/config/configuration.yml"},{type:"file",content:r,mountPath:"/config/users_database.yml"}]}}),{services:t}}},{slug:"authentik",meta:{name:"Authentik",description:"Authentik is an open-source Identity Provider focused on flexibility and versatility. It provides secure authentication, authorization, and user management with support for single sign-on (SSO), multi-factor authentication (MFA), and a modern user interface.",instructions:"After deployment, open /if/flow/initial-setup/ to create the initial admin user. Allow ~60s for migrations to complete.",changeLog:[{date:"2025-04-23",description:"Initial release"},{date:"2025-12-24",description:"Updated to version 2025.10.3"},{date:"2026-02-18",description:"Version bumped to 2025.10.4"},{date:"2026-03-02",description:"Fixed worker - use official server image with ak worker (fixes daphne/404 setup)"},{date:"2026-04-29",description:"Version bumped to 2026.2.2"}],links:[{label:"Website",url:"https://goauthentik.io"},{label:"Documentation",url:"https://goauthentik.io/docs"},{label:"GitHub",url:"https://github.com/goauthentik/authentik"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"authentik"},appServiceImage:{type:"string",title:"Authentik Version",default:"ghcr.io/goauthentik/server:2026.2.2",description:"Official image tag from ghcr.io/goauthentik/server"}}},benefits:[{title:"Centralized Identity Management",description:"Manage users, groups, and permissions from a single dashboard"},{title:"Flexible Authentication",description:"Support for multiple authentication sources including LDAP, SAML, and OAuth/OIDC"},{title:"Strong Security",description:"Built-in MFA, brute-force protection, and security auditing capabilities"},{title:"Self-hosted Solution",description:"Complete control over your identity infrastructure and user data"}],features:[{title:"Single Sign-On (SSO)",description:"Enable seamless login across multiple applications and services"},{title:"Multi-factor Authentication",description:"Add additional security with TOTP, WebAuthn/FIDO2, and more"},{title:"Role-based Access Control",description:"Define granular access policies based on user attributes and roles"},{title:"User Self-service",description:"Allow users to manage their profiles, reset passwords, and enroll MFA"},{title:"Customizable Flows",description:"Design authentication workflows that meet your organization's needs"},{title:"API & Integration Support",description:"Extensive API and integrations with popular services and platforms"},{title:"Outposts",description:"Deploy proxy services to integrate with legacy applications"}],tags:["Identity Provider","Authentication","SSO","Security","Access Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(50),i=v(),o=v(),n=["AUTHENTIK_REDIS__HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"AUTHENTIK_REDIS__PORT=6379","AUTHENTIK_REDIS__DB=0","AUTHENTIK_REDIS__USERNAME=default","AUTHENTIK_REDIS__PASSWORD=".concat(o),"AUTHENTIK_POSTGRESQL__HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"AUTHENTIK_POSTGRESQL__USER=postgres","AUTHENTIK_POSTGRESQL__NAME=$(PROJECT_NAME)","AUTHENTIK_POSTGRESQL__PASSWORD=".concat(i),"AUTHENTIK_SECRET_KEY=".concat(a),"AUTHENTIK_ERROR_REPORTING__ENABLED=false","AUTHENTIK_DISABLE_UPDATE_CHECK=true","AUTHENTIK_WORKER__CONCURRENCY=1"].join("\n");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-server"),source:{type:"image",image:e.appServiceImage},env:[n].join("\n"),mounts:[{type:"volume",name:"authentik-media",mountPath:"/media"},{type:"volume",name:"authentik-templates",mountPath:"/templates"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],deploy:{command:"dumb-init -- ak server"}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),source:{type:"image",image:e.appServiceImage},deploy:{command:"dumb-init -- ak worker"},env:[n].join("\n"),mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-server/volumes/authentik-media"),mountPath:"/media"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-server/volumes/authentik-templates"),mountPath:"/templates"}]}}),{services:t}}},{slug:"authorizer",meta:{name:"Authorizer",description:"Authorizer is a powerful tool designed to simplify the process of user authentication and authorization in your applications. It allows you to build secure apps 10x faster with its low code tool and low-cost deployment. With Authorizer, you have full control over your user data, which can be stored in your preferred database. The app supports multiple authentication recipes and allows you to authorize users based on your business roles. It is compatible with OAuth2 and OpenID APIs. Authorizer also offers secure session management with the best services baked in, including HTTP only cookies and Authorization Code flow for mobile-based authentication. It supports a wide range of databases, including major SQL, NoSQL, and GraphDBs. You can customize emails, configure webhooks for various events, and add an extra layer of security with email-based OTP for basic authentication. With Authorizer, you can deploy your authentication and authorization service anywhere with multiple deployment options. It is a comprehensive solution for all your authentication and authorization needs.",instructions:null,changeLog:[{date:"2023-01-25",de
1scription:"first release"},{date:"2023-03-14",description:"Update to v1.1.41"},{date:"2024-03-10",description:"Version bumped to 1.3.8"},{date:"2024-09-28",description:"Update to 1.4.4"},{date:"2026-05-15",description:"Major update to 2.2.1; v2 uses CLI flags instead of env vars"}],links:[{label:"Website",url:"https://authorizer.dev"},{label:"Documentation",url:"https://docs.authorizer.dev/"},{label:"Github",url:"https://github.com/authorizerdev/authorizer"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"authorizer"},appServiceImage:{type:"string",title:"App Service Image",default:"lakhansamani/authorizer:2.2.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"authorizer-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"authorizer-redis"}}},benefits:[{title:"Free Authentication & Authorization",description:"Authorizer allows you to authenticate and authorize users for free, helping you build secure apps 10x faster."},{title:"Control Over User Data",description:"With Authorizer, you have complete control over your user data, which can be stored in your preferred database."},{title:"Low Code and Low Cost Deployment",description:"Authorizer is a low code tool that allows for easy and cost-effective deployment of your apps."},{title:"OAuth2 and OpenID Compatible",description:"Authorizer is compatible with OAuth2 and OpenID APIs, allowing for seamless integration with your existing systems."}],features:[{title:"Secure Session Management",description:"Authorizer comes with secure session management implemented with HTTP only cookies and Authorization Code flow for mobile-based auth."},{title:"Multiple Authentication Recipes",description:"Authorizer supports multiple authentication recipes out of the box, including major social login, basic auth, magic link auth and more."},{title:"Database Support",description:"Authorizer supports 11+ databases including major SQL, NoSQL and GraphDBs, allowing you to connect to your preferred database."},{title:"Role Based Access Control",description:"With Authorizer, you can define roles and authorize your APIs with role-based session tokens."},{title:"Customizable Emails",description:"Authorizer allows you to send emails with custom email templates and dynamic variables."},{title:"Multi-Factor Authentication",description:"Authorizer provides an added layer of security with email-based OTP for your basic authentication recipe."}],tags:["Authentication","Authorization","Security","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(32),r=y(16),s=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"DOMAIN=https://$(EASYPANEL_DOMAIN)"].join("\n"),deploy:{command:'./authorizer --database-type=postgres --database-url="$DATABASE_URL" --redis-url="$REDIS_URL" --jwt-type=HS256 --jwt-secret="'.concat(o,'" --admin-secret="').concat(n,'" --client-id="').concat(r,'" --client-secret="').concat(s,'" --allowed-origins="$DOMAIN" --env=production')}}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"autobrr",meta:{name:"Autobrr",description:"Autobrr is a modern download automation tool for torrent indexers and trackers. It monitors IRC announce channels and RSS feeds from various torrent trackers, automatically downloading torrents that match your custom filters and rules. Autobrr acts as a bridge between torrent indexers and your download clients, enabling advanced automation workflows. It supports numerous torrent clients including qBittorrent, Deluge, Transmission, and rTorrent, and integrates with media management tools like Sonarr, Radarr, and Lidarr. With powerful filtering capabilities based on resolution, codec, release group, and custom regex patterns, Autobrr ensures you only download exactly what you want. Perfect for automating private tracker workflows, racing releases, and maintaining ratio requirements.",instructions:null,changeLog:[{date:"2025-11-19",description:"Template Release"},{date:"2026-02-18",description:"Version bumped to v1.73"},{date:"2026-04-29",description:"Version bumped to v1.75"}],links:[{label:"Website",url:"https://autobrr.com/"},{label:"Documentation",url:"https://autobrr.com/introduction"},{label:"Github",url:"https://github.com/autobrr/autobrr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"autobrr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/autobrr/autobrr:v1.75"},timezone:{type:"string",title:"Timezone",default:"UTC"}}},benefits:[{title:"Advanced Automation",description:"Automate torrent downloads with powerful filtering rules based on quality, release group, codec, and custom patterns."},{title:"Multi-Client Support",description:"Works with all major torrent clients including qBittorrent, Deluge, Transmission, and rTorrent for flexible setup."},{title:"Private Tracker Optimization",description:"Perfect for private trackers with IRC announce monitoring, fast releases, and ratio management features."}],features:[{title:"IRC Announce Monitoring",description:"Monitor IRC announce channels from multiple trackers simultaneously to catch new releases instantly."},{title:"RSS Feed Support",description:"Track RSS feeds from torrent indexers and trackers for sites without IRC announce channels."},{title:"Smart Filtering",description:"Create complex filters with conditions for resolution, codec, release group, size limits, and custom regex patterns."},{title:"Download Client Integration",description:"Send torrents directly to qBittorrent, Deluge, Transmission, rTorrent, or other supported clients."},{title:"Arr Integration",description:"Integrate with Sonarr, Radarr, Lidarr, and Whisparr for seamless media management automation."},{title:"Release Racing",description:"Optimized for fast release grabbing to maintain ratio requirements on private trackers."}],tags:["Automation","Torrent","Download Manager","Private Tracker","Media Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=".concat(e.timezone||"UTC")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7474}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"autocaliweb",meta:{name:"AutoCaliWeb",description:"AutoCaliWeb is a self-hosted web application for browsing, reading, and managing your eBook, eComic, and PDF library through a clean, modern interface. Built on Calibre-Web with automated enhancements, it provides automatic book ingestion from a watch folder, multi-format conversion, metadata enforcement, and cover generation. Features include an in-browser reader for EPUB, PDF, and CBR formats, OPDS catalog for e-reader apps, Kobo and KOReader sync, Send-to-Kindle, multi-user management with fine-grained permissions, OAuth/OIDC authentication, automatic backups, and support for 20+ languages. It works with any existing Calibre database or creates one automatically.",instructions:null,changeLog:[{date:"2026-02-18",description:"Template Release (v0.11.3)"},{date:"2026-04-29",description:"Version bumped to (v0.12.4)"}],links:[{label:"Codeberg",url:"https://codeberg.org/gelbphoenix/autocaliweb"},{label:"GitHub",url:"https://github.com/gelbphoenix/autocaliweb"},{label:"Docker Hub",url:"https://hub.docker.com/r/gelbphoenix/autocaliweb"},{label:"Wiki",url:"https://codeberg.org/gelbphoenix/autocaliweb/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"autocaliweb"},appServiceImage:{type:"string",title:"AutoCaliWeb Image",default:"gelbphoenix/autocaliweb:v0.12.4"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC",description:"Container timezone (e.g. America/New_York, Europe/Berlin, Asia/Karachi)"}}},benefits:[{title:"Automated Book Management",description:"Drop books into the ingest folder and they are automatically imported, converted to multiple formats, enriched with metadata, and added to your Calibre library."},{title:"Read Anywhere",description:"Built-in browser reader supports EPUB, PDF, CBR, and more. OPDS catalog lets you browse and download from any compatible e-reader app."},{title:"E-Reader Sync",description:"Native sync with Kobo devices, KOReader, and Send-to-Kindle functionality keeps your reading progress and library in sync across all devices."}],features:[{title:"Automatic Ingest & Conversion",description:"Watch folder monitors for new books and automatically imports them with multi-format conversion, metadata fetching, and cover enforcement."},{title:"Comprehensive User Management",description:"Fine-grained per-user permissions, public registration support, LDAP, Google/GitHub OAuth, OIDC, and proxy authentication."},{title:"Metadata Enrichment",description:"Fetch metadata and covers from multiple sources including Goodreads, Hardcover, ISBNDB, Amazon JP, and LitRes. Automatically enrich newly added books."},{title:"OPDS Catalog",description:"Built-in OPDS feed at /opds lets any compatible e-reader app browse and download books from your library."},{title:"Duplicate Management",description:"Dedicated management system for identifying and handling duplicate books in your library."},{title:"Self-Update & Backups",description:"Built-in self-update capability, automated backup service, and server stats tracking keep your instance healthy and up to date."}],tags:["Ebooks","Library","Self-Hosted","Calibre","OPDS","E-Reader"],screenshots:["screenshot.png"],logo:"logo.svg"},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8083}],env:["TZ=".concat(e.timezone),"PUID=0","PGID=0"].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"ingest",mountPath:"/acw-book-ingest"},{type:"volume",name:"library",mountPath:"/calibre-library"}]}}),{services:t}}},{slug:"automatisch",meta:{name:"Automatisch",description:"Automatisch is a powerful, self-hosted workflow automation tool designed for connecting your apps and automating repetitive tasks. With Automatisch, you can create workflows to sync data, send notifications, and perform various actions seamlessly across different services. This container is based on Docker Baseimage KasmVNC, providing additional environment variables and configurations for enhanced flexibility. It also supports the docker manifest for multi-platform awareness, ensuring the correct image for your architecture.",instructions:"You can use `[email protected]` email address and `sample` password to log in to Automatisch. Please do not forget to change your email and password from the settings page.",changeLog:[{date:"2024-11-25",description:"Template Release"}],links:[{label:"Documentation",url:"https://automatisch.io/docs"},{label:"GitHub",url:"https://github.com/automatisch/automatisch"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"automatisch"},appServiceImage:{type:"string",title:"App Service Image",default:"dockeriddonuts/automatisch:2.0"}}},benefits:[{title:"Simplified Workflow Automation",description:"Automatisch allows you to create workflows easily, streamlining your repetitive tasks across different applications."},{title:"Self-Hosted Privacy",description:"Maintain full control over your workflows and data by hosting Automatisch on your own infrastructure."},{title:"Multi-Platform Support",description:"Automatisch ensures compatibility across various architectures with its multi-platform Docker manifest."}],features:[{title:"Workflow Builder",description:"Create and manage workflows through an intuitive interface or APIs."},{title:"App Integrations",description:"Connect to numerous services using prebuilt integrations or custom APIs."},{title:"Task Automation",description:"Automate repetitive tasks and reduce manual effort by scheduling or triggering actions automatically."},{title:"Extensible Design",description:"Extend Automatisch's functionality with plugins and custom scripts for tailored automation solutions."}],tags:["Workflow Automation","Self-Hosted","Task Management","API Integrations"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["HOST=$(PRIMARY_DOMAIN)","PROTOCOL=https","PORT=443","APP_ENV=production","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_USERNAME=default","REDIS_PASSWORD=".concat(i),"POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-postgres"),"POSTGRES_DATABASE=$(PROJECT_NAME)","POSTGRES_USERNAME=postgres","POSTGRES_PASSWORD=".concat(a),"ENCRYPTION_KEY=your_encryption_key_here","WEBHOOK_SECRET_KEY=your_webhook_secret_key_here","APP_SECRET_KEY=your_app_secret_key_here"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:443}],mounts:[{type:"volume",name:"storage",mountPath:"/automatisch/storage"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:["APP_ENV=production","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PASSWORD=".concat(i),"POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-postgres"),"POSTGRES_DATABASE=$(PROJECT_NAME)","POSTGRES_USERNAME=postgres","POSTGRES_PASSWORD=".concat(a),"ENCRYPTION_KEY=your_encryption_key_here","WEBHOOK_SECRET_KEY=your_webhook_secret_key_here","APP_SECRET_KEY=your_app_secret_key_here","WORKER=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/storage"),mountPath:"/automatisch/storage"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"azuracast",meta:{name:"AzuraCast",description:"AzuraCast is a free, open-source web radio management suite. Built for radio station managers and DJs, it provides everything you need to start and manage a successful web radio station, from playlist automation to live streaming capabilities, listener statistics, and more.",instructions:null,changeLog:[{date:"2025-06-11",description:"Template Release"},{date:"2024-12-24",description:"Updated version to 0.23.2"},{date:"2026-04-29",description:"Updated version to 0.23.6"}],links:[{label:"Documentation",url:"https://docs.azuracast.com/"},{label:"Github",url:"https://github.com/AzuraCast/AzuraCast"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","appServicePort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"azuracast"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/azuracast/azuracast:0.23.6"},appServicePort:{type:"string",title:"App Service Port",default:"2022"}}},benefits:[{title:"Complete Radio Management",description:"Everything you need to run a web radio station in one comprehensive package."},{title:"Web-Based Interface",description:"Manage your station from anywhere with an intuitive web-based dashboard."},{title:"Advanced Features",description:"Includes playlist automation, live streaming, statistics, and more."}],features:[{title:"Playlist Management",description:"Create and manage playlists with smart rotation and scheduling."},{title:"Live Streaming",description:"Support for live DJs with seamless transitions between automated and live content."},{title:"Statistics & Analytics",description:"Detailed listener statistics and analytics to track your station's performance."},{title:"Multi-Station Support",description:"Host multiple radio stations from a single AzuraCast installation."}],tags:["Radio","Streaming","Broadcasting","Media Management","Music"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["LANG=en_US","APPLICATION_ENV=production","MYSQL_HOST=$(PROJECT_NAME)-".concat(e.appServiceName,"-db"),"MYSQL_PORT=3306","MYSQL_USER=mariadb","MYSQL_PASSWORD=".concat(a),"MYSQL_DATABASE=$(PROJECT_NAME)","MYSQL_RANDOM_ROOT_PASSWORD=yes","ENABLE_REDIS=true","AZURACAST_PUID=1000","AZURACAST_PGID=1000","AUTO_ASSIGN_PORT_MIN=8000","AUTO_ASSIGN_PORT_MAX=8499"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],ports:[{published:Number(e.appServicePort),target:2022}],mounts:[{type:"volume",name:"station_data",mountPath:"/var/azuracast/stations"},{type:"volume",name:"uploads",mountPath:"/var/azuracast/uploads"},{type:"volume",name:"backups",mountPath:"/var/azuracast/backups"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"babybuddy",meta:{name:"BabyBuddy",description:"BabyBuddy is a comprehensive, user-friendly platform designed to help parents and caregivers manage essential details about their child\u2019s growth and development. It provides tools for tracking feedings, sleep schedules, diaper changes, and milestones, making parenting a more organized and informed journey. With BabyBuddy, you can access detailed insights into your child's habits, progress, and overall well-being. The app offers customization options to fit individual family needs and supports data export for secure backup or sharing with healthcare professionals. BabyBuddy is lightweight, easy to deploy, and designed with a focus on privacy, ensuring your family\u2019s data is safe and accessible only to you.",instructions:"Login username=admin,password=admin",changeLog:[{date:"2024-11-16",description:"First release"},{date:"2025-01-06",description:"Version bumped to 2.7.0"},{date:"2025-07-15",description:"Version bumped to 2.7.1"},{date:"2026-04-29",description:"Version bumped to 2.8.0"}],links:[{label:"Website",url:"https://babybuddy.app"},{label:"Documentation",url:"https://docs.babybuddy.app"},{label:"GitHub",url:"https://github.com/babybuddy/babybuddy"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"babybuddy"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/babybuddy:2.8.0"}}},benefits:[{title:"Simplified Parenting",description:"BabyBuddy helps you track essential information about your child\u2019s daily activities and growth milestones with ease."},{title:"Privacy and Security",description:"BabyBuddy prioritizes data privacy, ensuring your child\u2019s information is safe and accessible only to you."},{title:"Customization Options",description:"Tailor the app to suit your family\u2019s unique needs with adjustable settings and features."},{title:"Easy Deployment",description:"BabyBuddy is lightweight, simple to deploy, and runs seamlessly on multiple platforms."}],features:[{title:"Comprehensive Tracking Tools",description:"Track feedings, sleep schedules, diaper changes, and more with detailed logs and insights."},{title:"Growth Milestone Management",description:"Record and monitor your child\u2019s milestones, ensuring you stay updated on their development."},{title:"Customizable Reports",description:"Generate and export reports for secure backups or sharing with healthcare professionals."},{title:"Multi-User Support",description:"Allow multiple caregivers to contribute to and access the child\u2019s data, making it easier to collaborate."}],tags:["Parenting","Tracking","Child Development","Family Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"backrest",meta:{name:"Backrest",description:"Backrest is a web UI and orchestrator for restic backups. It supports scheduling, browsing snapshots, restores, notifications, and any restic-backed storage (S3, B2, rclone remotes, local, etc.). This template keeps the standard data/config/cache/tmp/rclone volumes and optionally bind-mounts host paths at /userdata and /repos like the upstream Docker Compose examples.",instructions:"Backup sources; Use template fields Host path \u2192 /userdata and/or Host path \u2192 /repos for directories you want visible inside the container (same as path/to/backup/data:/userdata and path/to/local/repos:/repos in the official compose). You can also add more bind mounts in Easypanel for other paths, then reference them in backup plans inside Backrest. First run; Open the UI, complete setup (credentials), and configure repos and schedules per the documentation.",changeLog:[{date:"2025-09-29",description:"First release"},{date:"2026-03-20",description:"Website/docs links, optional /userdata & /repos, TZ default Etc/UTC"},{date:"2026-05-06",description:"Version bumped to v1.13.0"}],links:[{label:"Website",url:"https://garethgeorge.github.io/backrest/"},{label:"Documentation",url:"https://garethgeorge.github.io/backrest/introduction/getting-started"},{label:"GitHub",url:"https://github.com/garethgeorge/backrest"},{label:"Docker Hub",url:"https://hub.docker.com/r/garethgeorge/backrest"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"backrest"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/garethgeorge/backrest:v1.13.0"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC",description:"Container TZ (e.g. America/New_York, Europe/Berlin)."},backupUserdataHostPath:{type:"string",title:"Host path mounted at /userdata (optional)",default:"",description:"Absolute host path to files or folders you want Backrest to back up, mounted read/write at /userdata inside the container. Leave empty to skip."},backupReposHostPath:{type:"string",title:"Host path mounted at /repos (optional)",default:"",description:"Absolute host path for local restic repos, mounted at /repos. Leave empty to skip."}}},benefits:[{title:"Reliable Backup Solution",description:"Provides robust backup and restore capabilities with support for multiple storage backends and comprehensive data protection strategies."},{title:"Multiple Storage Options",description:"Supports local storage, cloud providers, and rclone-compatible services for flexible backup destination options."},{title:"Web-Based Management",description:"Clean and intuitive web interface for managing backups, scheduling, and monitoring backup status and health."},{title:"Self-Hosted Control",description:"Complete control over your backup data with no external dependencies or data sharing with third parties."}],features:[{title:"Web Interface",description:"Modern web-based interface accessible from any device with a browser for easy backup management."},{title:"Multiple Storage Backends",description:"Support for various storage options including local filesystem, cloud providers, and rclone-compatible services."},{title:"Backup Scheduling",description:"Flexible scheduling options for automated backups with customizable intervals and retention policies."},{title:"Data Encryption",description:"Built-in encryption capabilities to secure your backup data both in transit and at rest."},{title:"Backup Monitoring",description:"Comprehensive monitoring and reporting of backup status, health, and performance metrics."},{title:"Restore Capabilities",description:"Easy restore functionality with point-in-time recovery options and selective file restoration."},{title:"Configuration Management",description:"Centralized configuration management with JSON-based settings and environment variable support."},{title:"Cache Management",description:"Efficient caching system for improved performance and reduced storage overhead during backup operations."}],tags:["Backup","Restore","Data Protection","Self-hosted","Web Interface","Cloud Storage","Rclone","Scheduling"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[],i=e.backupUserdataHostPath,o=e.backupReposHostPath;return a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9898}],mounts:[{type:"volume",name:"backrest-data",mountPath:"/data"},{type:"volume",name:"backrest-config",mountPath:"/config"},{type:"volume",name:"backrest-cache",mountPath:"/cache"},{type:"volume",name:"backrest-tmp",mountPath:"/tmp"},{type:"volume",name:"backrest-rclone",mountPath:"/root/.config/rclone"}].concat(Ee(i?[{type:"bind",hostPath:i,mountPath:"/userdata"}]:[]),Ee(o?[{type:"bind",hostPath:o,mountPath:"/repos"}]:[])),env:["BACKREST_PORT=0.0.0.0:9898","BACKREST_DATA=/data","BACKREST_CONFIG=/config/config.json","XDG_CACHE_HOME=/cache","TMPDIR=/tmp","TZ=".concat(null!==(t=e.timezone)&&void 0!==t?t:"Etc/UTC")].join("\n")}}),{services:a}}},{slug:"baikal",meta:{name:"Baikal",description:"Baikal is a lightweight, self-hosted CalDAV and CardDAV server that enables users to manage calendars and contacts efficiently. It provides a simple and effective solution for syncing and sharing events, tasks, and address books across multiple devices. Baikal is designed to be easy to install and maintain, making it an excellent choice for individuals and organizations looking for a private, secure, and open-source alternative to cloud-based calendar and contact management services.",instructions:null,changeLog:[{date:"2025-02-04",description:"First release"}],links:[{label:"Website",url:"https://sabre.io/baikal/"},{label:"Documentation",url:"https://sabre.io/baikal/install/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"baikal"},appServiceImage:{type:"string",title:"App Service Image",default:"ckulka/baikal:nginx-php8.2"}}},benefits:[{title:"Self-Hosted Calendar & Contacts",description:"Baikal provides a self-hosted CalDAV and CardDAV server, allowing users to store and manage calendars and contacts securely without relying on third-party cloud services."},{title:"Privacy & Security",description:"Baikal ensures complete control over personal data by allowing users to host their own calendar and contact management system, protecting sensitive information from external tracking."},{title:"Seamless Synchronization",description:"The server is compatible with various CalDAV and CardDAV clients, enabling seamless synchronization across desktops, mobile devices, and other applications."},{title:"Lightweight & Efficient",description:"Baikal is designed to be lightweight and requires minimal system resources, making it an ideal solution for small businesses, individuals, and self-hosting enthusiasts."}],features:[{title:"CalDAV & CardDAV Support",description:"Baikal fully supports the CalDAV and CardDAV protocols, enabling efficient calendar and contact management."},{title:"Multi-User & Multi-Calendar Support",description:"Users can create multiple calendars and address books while managing different access levels for various users."},{title:"Easy Installation & Maintenance",description:"Baikal is simple to set up and maintain, with a lightweight database and minimal dependencies, making it suitable for both beginners and advanced users."},{title:"Compatibility with Popular Clients",description:"The server integrates with various CalDAV and CardDAV clients, including Apple Calendar, Thunderbird, Evolution, DAVx\u2075, and more."},{title:"Secure Data Storage",description:"Baikal supports SSL/TLS encryption and secure authentication methods to ensure data integrity and privacy."}],tags:["Calendar","Contacts","Self-Hosting","Productivity","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/baikal"}]}}),{services:t}}},{slug:"bambuddy",meta:{name:"BamBuddy",description:"BamBuddy is a self-hosted command center for managing Bambu Lab 3D printers locally, with no cloud dependency. It supports single printers up to 40-printer farms and includes real-time monitoring, live camera streaming, print archive with 3D preview, timelapse editing, scheduling, multi-printer dispatch, server-side slicing of STL/3MF files, spool tracking with usage analytics, smart plug integration, HMS error alerts, and automated notifications.",instructions:"After deployment, access the BamBuddy web UI and run the setup wizard. Enable Developer Mode on your Bambu Lab printer from the Bambu Lab app (Settings - Device - Developer Mode) so BamBuddy can connect over your local network without the cloud. By default BamBuddy uses SQLite. To use PostgreSQL instead, add a DATABASE_URL environment variable in the format postgresql+asyncpg://user:pass@host:5432/bambuddy after deployment. Note: Virtual printer features (proxy mode, FTP, MQTT, RTSP camera relay) require additional port mappings and NET_BIND_SERVICE capability beyond what this template exposes; for full virtual printer support use the official Docker Compose with host network mode.",changeLog:[{date:"2026-06-01",description:"Initial template release for BamBuddy v0.2.4.4"}],links:[{label:"Website",url:"https://bambuddy.cool"},{label:"GitHub",url:"https://github.com/maziggy/bambuddy"},{label:"Documentation",url:"https://github.com/maziggy/bambuddy/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bambuddy"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/maziggy/bambuddy:0.2.4.4"},timezone:{type:"string",title:"Timezone",default:"UTC",description:"Container timezone (e.g. Europe/Berlin, America/New_York)"}}},benefits:[{title:"Cloud-Free Printer Control",description:"Manage your Bambu Lab printers entirely on your local network with no cloud dependency, using Bambu Lab's Developer Mode API."},{title:"Full Print Lifecycle Management",description:"Archive every print with a 3D preview, re-print with AMS filament remapping, edit timelapses, and track spool usage and costs."},{title:"Advanced Automation",description:"Schedule prints, dispatch jobs across multiple printers, auto power-off via smart plugs, and receive HMS error alerts and notifications."},{title:"Server-Side Slicing",description:"Slice STL and 3MF files directly in BamBuddy without needing the OrcaSlicer desktop app on every machine."}],features:[{title:"Real-Time Monitoring",description:"Live printer status, live camera streams, build plate detection, and HMS error alerts for all connected printers."},{title:"Print Archive & 3D Preview",description:"Every completed print is archived with a Three.js 3D preview, timelapse video, and full metadata for easy reference and re-printing."},{title:"Spool & Inventory Tracking",description:"Track filament spools with usage analytics, remaining weight estimates, and per-print cost accounting."},{title:"Multi-Printer Dispatch",description:"Queue and dispatch print jobs across multiple printers with AMS filament mapping and scheduling support."},{title:"SQLite or PostgreSQL",description:"Ships with SQLite for zero-config deployments; optionally connect an external PostgreSQL database for larger setups."}],tags:["3D Printing","Bambu Lab","Monitoring","Automation","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TZ=".concat(e.timezone||"UTC"),"PUID=1000","PGID=1000","PORT=8000","MFA_ENCRYPTION_KEY=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"logs",mountPath:"/app/logs"}]}}),{services:t}}},{slug:"barrage",meta:{name:"Barrage",description:"Barrage is a minimalistic Deluge WebUI app with full mobile support. It features a responsive mobile-first design, allowing you to manage your torrents with ease from any device. With Barrage, you can add torrents by URL or magnet, sort and filter your torrents, and set global upload and download speed limits. It also allows you to change file priorities and modify torrent options. The app is designed to be deployed with Docker, making it a convenient and efficient tool for managing your torrents.",instructions:null,changeLog:[{date:"2023-1-25",description:"first release"}],links:[{label:"Github",url:"https://github.com/maulik9898/barrage"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","domain","appServiceImage","delugeUrl","delugePassword","barragePassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"barrage"},appServiceImage:{type:"string",title:"App Service Image",default:"maulik9898/barrage:0.3.0"},delugeUrl:{type:"string",title:"Deluge URL"},delugePassword:{type:"string",title:"Deluge Password"},barragePassword:{type:"string",title:"Barrage Password"}}},benefits:[{title:"Efficient Torrent Management",description:"Barrage provides a minimalistic and efficient way to manage your torrents. It allows you to add torrents by URL or magnet, sort and filter them, and change their options, all from a single, easy-to-use interface."},{title:"Full Mobile Support",description:"With its responsive mobile-first design, Barrage ensures that you can manage your torrents on the go. Whether you're on a smartphone or a tablet, you'll have full access to all of Barrage's features."},{title:"Control Over Download and Upload Speeds",description:"Barrage allows you to set global upload and download speed limits. This means you can control how much of your internet bandwidth is used for torrenting, ensuring that it doesn't interfere with your other online activities."}],features:[{title:"Add Torrent by URL or Magnet",description:"Barrage allows you to add torrents to your list by simply pasting a URL or a magnet link. This makes it easy to start downloading a torrent without having to download and open a separate torrent file."},{title:"Sort and Filter Torrents",description:"With Barrage, you can easily sort your torrents by various criteria and filter them based on your needs. This makes it easy to find the torrents you're looking for, even if you have a large number of them."},{title:"Change File Priority",description:"Barrage allows you to change the priority of individual files within a torrent. This means you can choose which files to download first, which can be particularly useful if you're downloading a torrent that contains multiple files."},{title:"Change Torrent Options",description:"Barrage provides the ability to change various options for your torrents. This gives you greater control over your torrent downloads and allows you to customize them to suit your needs."}],tags:["File Management","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NEXTAUTH_SECRET=".concat(a),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","DELUGEURL=".concat(e.delugeUrl),"DELUGE_PASSWORD=".concat(e.delugePassword),"BARRAGE_PASSWORD=".concat(e.barragePassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"baserow",meta:{name:"Baserow",description:"Baserow is an open-source, no-code database tool that allows you to create your own online database without any technical experience. It is a user-friendly alternative to Airtable, offering the power of a developer right from your browser. Baserow is perfect for organizing your projects, ideas, or business processes, allowing you to structure everything according to your needs. It is a flexible software that can be tailored to your needs, ensuring clear and accessible data for all your team members. With Baserow, you can easily integrate with other software, collaborate in real-time, and enjoy unlimited rows for your data. It is also developer-friendly, allowing for the creation of custom plugins. Baserow offers a free plan for those who want to try it out, as well as premium and advanced plans for users with more advanced needs.",instructions:"It may take several minutes for Baserow to boot up.",changeLog:[{date:"2022-10-05",description:"First Release"},{date:"2023-07-07",description:"Version update and external redis and database support"},{date:"2024-03-10",description:"Version bumped to 1.23.0"},{date:"2024-09-30",description:"Version bumped to 1.27.2"},{date:"2025-01-06",description:"Version bumped to 1.30.1"},{date:"2025-07-15",description:"Version bumped to 1.34.2"}],links:[{label:"Website",url:"https://baserow.io/"},{label:"Gitlab",url:"https://gitlab.com/bramw/baserow"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"baserow"},appServiceImage:{type:"string",title:"App Service Image",default:"baserow/baserow:1.34.2"},databaseServiceName:{type:"string",title:"Database Service Name",default:"baserow-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"baserow-redis"}}},benefits:[{title:"No-Code Database Creation",description:"Baserow allows you to create your own online database without any technical experience. It's a user-friendly no-code tool that gives you the powers of a developer without leaving your browser."},{title:"Flexible and Customizable",description:"With Baserow, you decide how you want to structure everything. It's a flexible software tailored to your needs. You can manage customers, products, airplanes or all of them. If you know how a spreadsheet works, you know how Baserow works."},{title:"Real-Time Collaboration",description:"Baserow allows you to collaborate in real-time, ensuring clear and accessible data by all your team members. It's a one-stop solution for all your project, idea, and note organization needs."},{title:"Self-Hosted and Open Source",description:"Baserow is an open-source platform that you can self-host. It's built with modern and proven frameworks, making it a breeze for developers. It supports custom and third-party plugins."}],features:[{title:"Unlimited Rows",description:"Baserow offers unlimited rows, making it a powerful tool for managing large amounts of data."},{title:"Integration with Other Software",description:"Baserow can easily integrate with other software, making it a versatile tool for managing and organizing data."},{title:"Custom Plugins",description:"Baserow allows you to easily create custom plugins or use third-party ones, providing a high level of customization and flexibility."},{title:"Role-Based Permissions",description:"Baserow offers role-based permissions, allowing you to control who has access to what data."},{title:"Data Visualization",description:"Baserow offers various ways to visualize your data, including a Kanban or Calendar view."}],tags:["No-Code","Databases"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/baserow/data"}],env:["BASEROW_PUBLIC_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379")].join("\n")}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"bazarr",meta:{name:"Bazarr",description:"Bazarr is a companion application to Sonarr and Radarr, designed to manage and download subtitles based on your specific needs. It allows you to define your preferences by TV show or movie, and Bazarr handles the rest. The app automatically searches for missing subtitles and downloads them as soon as they become available in your desired language. It also offers a manual search feature to find all matching subtitles, allowing you to choose the one you want and download it to your media directory. Bazarr also regularly searches for matching subtitles and upgrades the ones you previously downloaded if a better one is found. Please note that Bazarr does not scan the disk to detect series and movies, it only manages the series and movies that are indexed in Sonarr and Radarr.",instructions:null,changeLog:[{date:"2023-3-17",description:"first release"},{date:"2024-03-11",description:"Version bumped to 1.4.2"},{date:"2024-09-30",description:"Version bumped to 1.4.4"},{date:"2025-02-21",description:"Version bumped to 1.5.1"},{date:"2025-07-15",description:"Version bumped to 1.5.2"},{date:"2026-02-18",description:"Version bumped to 1.5.5"},{date:"2026-05-06",description:"Version bumped to 1.5.6"}],links:[{label:"Website",url:"https://bazarr.media/"},{label:"Documentation",url:"https://wiki.bazarr.media/"},{label:"Github",url:"https://github.com/morpheus65535/bazarr"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bazarr"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/bazarr:1.5.6"}}},benefits:[{title:"Automated Subtitle Management",description:"Bazarr is a companion application to Sonarr and Radarr that automatically manages and downloads subtitles based on your requirements. It eliminates the need for manual searching and downloading of subtitles, saving you time and effort."},{title:"Subtitle Upgrades",description:"Bazarr regularly searches for matching subtitles and upgrades the ones you previously downloaded if a better one is found. This ensures you always have the best quality subtitles for your media."}],features:[{title:"Automatic Search",description:"Bazarr automatically searches for missing subtitles and downloads them as soon as they become available in your desired language. This ensures you never miss out on any subtitles for your media."},{title:"Manual Search",description:"Bazarr allows you to manually search for all the matching subtitles, choose the one you want, and download it to your media directory with the proper name to be used by your media player."},{title:"Subtitle Upgrade",description:"Bazarr has a feature that regularly searches for matching subtitles and upgrades the one you previously downloaded if a better one is found. This ensures you always have the best quality subtitles for your media."},{title:"Compatibility",description:"Bazarr is compatible with Linux, Windows, and macOS, and can be run from python sources. This ensures you can use it on your preferred operating system without any issues."}],tags:["Media","Subtitles","Download"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6767}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"movies",mountPath:"/movies"},{type:"volume",name:"tv",mountPath:"/tv"}]}}),{services:t}}},{slug:"beaverhabits",meta:{name:"BeaverHabits",description:"BeaverHabits is a self-hosted habit tracking application that helps you build and maintain positive habits through a simple, intuitive web interface. It provides visual tracking of your daily habits, customizable date columns, and supports both database and file-based storage options for flexibility in deployment and data management.",instructions:null,changeLog:[{date:"2025-09-12",description:"Template Release (v0.7.0)"},{date:"2024-12-24",description:"Updated version to 0.8.0"},{date:"2026-02-18",description:"Version bumped to 0.8.2"}],links:[{label:"Demo",url:"https://beaverhabits.com/demo"},{label:"Documentation",url:"https://github.com/daya0576/beaverhabits/wiki"},{label:"Github",url:"https://github.com/daya0576/beaverhabits"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"beaverhabits"},appServiceImage:{type:"string",title:"App Service Image",default:"daya0576/beaverhabits:0.8.2"},trustedLocalEmail:{type:"string",title:"Trusted Local Email",default:"[email protected]",description:"Email address to skip authentication (leave empty to disable)"}}},benefits:[{title:"Simple Habit Tracking",description:"Clean and intuitive interface for tracking daily habits with visual progress indicators and easy-to-use controls for habit management."},{title:"Flexible Storage Options",description:"Choose between SQLite database or JSON file storage to match your deployment preferences and data management needs."},{title:"Self-Hosted Privacy",description:"Keep your habit data completely private and secure on your own server with no external dependencies or data sharing."}],features:[{title:"Visual Habit Tracking",description:"Track your daily habits with visual indicators and progress tracking to help you stay motivated and consistent with your goals."},{title:"Customizable Interface",description:"Customize the number of date columns displayed on the index page to match your preferred viewing style and workflow."},{title:"Authentication Options",description:"Skip authentication for trusted local users or implement full authentication system based on your security requirements."},{title:"iOS Standalone Support",description:"Enhanced mobile experience with iOS standalone app mode for seamless habit tracking on mobile devices."},{title:"Data Persistence",description:"Reliable data storage with options for both database and file-based storage to ensure your habit data is always preserved."},{title:"Easy Deployment",description:"Simple Docker-based deployment with minimal configuration required to get your personal habit tracking server running quickly."}],tags:["Habit Tracking","Productivity","Self-Hosted","Web Interface","Personal Development","Goal Setting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["HABITS_STORAGE=USER_DISK","TRUSTED_LOCAL_EMAIL=".concat(e.trustedLocalEmail),"INDEX_HABIT_DATE_COLUMNS=5","ENABLE_IOS_STANDALONE=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/app/.user"}]}}),{services:t}}},{slug:"bentopdf",meta:{name:"BentoPDF",description:"BentoPDF is a powerful self-hosted PDF manipulation and conversion service that provides a comprehensive API for working with PDF documents. It enables developers and teams to automate PDF operations including conversion, merging, splitting, compression, watermarking, and more through a simple REST API. Built with modern technologies, BentoPDF offers a web interface for manual operations and programmatic access for integration into your applications and workflows. The service supports converting various document formats to PDF, extracting text and images, adding annotations, and manipulating PDF metadata. With no external dependencies on third-party services, BentoPDF ensures your documents remain private and secure on your own infrastructure. Perfect for document management systems, automated report generation, form processing, digital archiving, and any application that requires reliable PDF handling capabilities without the costs and privacy concerns of cloud-based PDF services.",instructions:null,changeLog:[{date:"2025-11-24",description:"Template Release"},{date:"2026-03-25",description:"Added missing GitHub source link"},{date:"2026-05-06",description:"Version bumped to sha-fb8c8c0"}],links:[{label:"Website",url:"https://bentopdf.com"},{label:"GitHub",url:"https://github.com/alam00000/bentopdf"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bentopdf"},appServiceImage:{type:"string",title:"App Service Image",default:"bentopdfteam/bentopdf:sha-fb8c8c0"}}},benefits:[{title:"Self-Hosted PDF Processing",description:"Process PDFs on your own infrastructure without sending sensitive documents to external services, maintaining complete privacy and control."},{title:"Comprehensive REST API",description:"Easy-to-use API enables seamless integration with existing applications and automated workflows for PDF operations."},{title:"No External Dependencies",description:"Fully contained service with all PDF processing capabilities built-in, eliminating reliance on third-party services and reducing costs."}],features:[{title:"PDF Conversion",description:"Convert various document formats including Word, Excel, PowerPoint, images, and HTML to high-quality PDF documents."},{title:"PDF Manipulation",description:"Merge multiple PDFs, split documents into pages, extract specific pages, and reorganize page order programmatically."},{title:"Compression and Optimization",description:"Reduce PDF file sizes while maintaining quality, optimize for web delivery, and compress images within documents."},{title:"Watermarking and Annotations",description:"Add text or image watermarks, insert annotations, stamps, and custom metadata to protect and identify documents."},{title:"Text and Image Extraction",description:"Extract text content for indexing and search, pull images from PDFs, and parse document structure and metadata."},{title:"Web Interface",description:"User-friendly web UI for manual PDF operations and testing API capabilities without writing code."}],tags:["PDF","Document Processing","Conversion","API","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"beszel",meta:{name:"Beszel",description:"Beszel is a lightweight server monitoring platform that includes Docker statistics, historical data, and alert functions. It has a friendly web interface, simple configuration, and is ready to use out of the box. It supports automatic backup, multi-user, OAuth authentication, and API access.",instructions:null,changeLog:[{date:"2025-01-10",description:"Template Release"},{date:"2025-07-15",description:"Version bumped to 0.11"},{date:"2025-12-24",description:"Updated to 0.17"},{date:"2026-02-18",description:"Version bumped to 0.18"},{date:"2026-05-06",description:"Version bumped to 0.18.7"}],links:[{label:"Documentation",url:"https://github.com/henrygd/beszel/blob/main/readme.md"},{label:"Github",url:"https://github.com/henrygd/beszel"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"beszel"},appServiceImage:{type:"string",title:"App Service Image",default:"henrygd/beszel:0.18.7"}}},benefits:[{title:"Comprehensive Monitoring",description:"Monitor server performance, Docker statistics, and historical data seamlessly."},{title:"Ready-to-Use",description:"Simple setup with minimal configuration required, making it operational out of the box."},{title:"Secure and Flexible",description:"Benefit from multi-user management, OAuth authentication, and automatic backups."}],features:[{title:"Docker Statistics",description:"Gain insights into your Docker containers\u2019 performance and resource usage."},{title:"Historical Data",description:"View and analyze past server performance trends for better decision-making."},{title:"Alert Functions",description:"Receive real-time alerts for critical server events and thresholds."},{title:"API and OAuth Support",description:"Access Beszel\u2019s functionalities programmatically via API and secure user authentication through OAuth."}],tags:["Server Monitoring","Docker Statistics","Historical Data","Alerts","OAuth"],logo:"logo.svg",screenshots:["screenshot.png","screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8090}],mounts:[{type:"volume",name:"beszel_data",mountPath:"/beszel_data"}]}}),{services:t}}},{slug:"birdnetgo",meta:{name:"BirdNET-Go",description:"BirdNET-Go is a real-time bird sound identification and monitoring system that uses advanced AI and machine learning to re
1cognize bird species from audio recordings. It analyzes ambient sounds from microphones or audio files to identify and catalog bird species in your area. BirdNET-Go features automatic species detection with confidence scoring, location-based range filtering to show only birds likely in your region, real-time audio streaming, and comprehensive logging of all detected species. The application supports custom sensitivity settings, overlap detection for better accuracy, and can utilize XNNPACK acceleration for improved performance. Perfect for bird enthusiasts, ornithologists, researchers, and anyone interested in monitoring local bird populations and creating automated bird sound databases.",instructions:null,changeLog:[{date:"2025-11-18",description:"Template Release"},{date:"2026-02-18",description:"Version bumped to nightly-20260118"},{date:"2026-04-29",description:"Version bumped to nightly-20260429"}],links:[{label:"Github",url:"https://github.com/tphakala/birdnet-go"},{label:"Docker Hub",url:"https://github.com/tphakala/birdnet-go/pkgs/container/birdnet-go"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"birdnetgo"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/tphakala/birdnet-go:nightly-20260429"},timezone:{type:"string",title:"Timezone",default:"UTC"},latitude:{type:"string",title:"Latitude (Optional - for location filtering)",default:""},longitude:{type:"string",title:"Longitude (Optional - for location filtering)",default:""},locale:{type:"string",title:"Locale (e.g., en-us)",default:"en-us"}}},benefits:[{title:"Automated Bird Identification",description:"AI-powered real-time identification of bird species from audio using advanced BirdNET machine learning models with high accuracy."},{title:"Location-Aware Filtering",description:"Configure your GPS coordinates to filter detections showing only bird species likely to be in your region, reducing false positives."},{title:"Continuous Monitoring",description:"24/7 automated monitoring and logging of bird species in your area. Build comprehensive databases of local bird populations over time."}],features:[{title:"Real-Time Audio Analysis",description:"Process live audio streams from microphones or audio files to identify bird sounds in real-time with configurable sensitivity."},{title:"Species Confidence Scoring",description:"Each detection includes confidence scores and threshold filtering to ensure accurate species identification."},{title:"Geographic Range Filtering",description:"Location-based filtering shows only birds expected in your area based on latitude/longitude coordinates."},{title:"Audio Streaming",description:"HLS streaming support for live audio playback and monitoring of detected bird sounds through web interface."},{title:"Detection Logging",description:"Comprehensive logging and database of all detected species with timestamps, confidence scores, and audio clips."},{title:"Customizable Settings",description:"Adjust sensitivity, detection thresholds, audio overlap, and model parameters to optimize for your environment."}],tags:["Bird Watching","Audio Recognition","AI","Wildlife Monitoring","Ornithology"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["TZ=".concat(e.timezone||"UTC"),"BIRDNET_UID=1000","BIRDNET_GID=1000","BIRDNET_LOCALE=".concat(e.locale||"en-us"),"BIRDNET_SENSITIVITY=1.0","BIRDNET_THRESHOLD=0.8","BIRDNET_OVERLAP=1.5","BIRDNET_THREADS=0","BIRDNET_DEBUG=false","BIRDNET_USEXNNPACK=true","BIRDNET_RANGEFILTER_MODEL=latest","BIRDNET_RANGEFILTER_THRESHOLD=0.01"];return e.latitude&&a.push("BIRDNET_LATITUDE=".concat(e.latitude)),e.longitude&&a.push("BIRDNET_LONGITUDE=".concat(e.longitude)),t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"blackcandy",meta:{name:"BlackCandy",description:"BlackCandy is a self-hosted music streaming server built with Rails and Hotwire. It provides a clean, modern web interface for streaming your personal music collection. The goal of the project is to create a real personal music center that you can access from anywhere. It features mobile apps for iOS and Android, supports multiple audio formats, and offers a beautiful, responsive interface.",instructions:"default login is [email protected] and password is foobar",changeLog:[{date:"2025-06-26",description:"Initial Template Release"}],links:[{label:"GitHub",url:"https://github.com/blackcandy-org/blackcandy"},{label:"Documentation",url:"https://github.com/blackcandy-org/blackcandy#readme"},{label:"Demo",url:"https://demo.blackcandy.org"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","mediaPath"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"blackcandy"},appServiceImage:{type:"string",title:"App Service Image",default:"blackcandy/blackcandy:3.1.0",description:"BlackCandy Docker image"},mediaPath:{type:"string",title:"Media Path",default:"/tmp",description:"Path to your media files"}}},benefits:[{title:"Beautiful Web Interface",description:"Enjoy a clean, modern, and responsive web interface built with Rails and Hotwire for an excellent user experience across all devices."},{title:"Mobile App Support",description:"Access your music on the go with native mobile apps available for iOS (App Store) and Android (F-Droid and GitHub releases)."},{title:"Easy Installation",description:"Simple Docker-based installation that gets you up and running quickly with minimal configuration required."},{title:"Personal Music Center",description:"Create your own personal music streaming service with full control over your music library and user access."}],features:[{title:"Modern Web Interface",description:"Clean and intuitive web interface built with Rails and Hotwire, providing a smooth and responsive music browsing experience."},{title:"Multiple Database Support",description:"Supports both SQLite (default) for simple setups and PostgreSQL for more demanding installations or cloud deployments."},{title:"Data Persistence",description:"All data is stored in `/app/storage` for easy backup and persistence across container updates and restarts."},{title:"Discogs Integration",description:"Optional integration with Discogs API to automatically fetch artist and album artwork for your music collection."},{title:"Demo Mode",description:"Built-in demo mode for testing and showcasing features without giving users administrative privileges."},{title:"Customizable Deployment",description:"Flexible configuration options including custom ports, media paths, database options, and SSL enforcement."}],tags:["Music Streaming","Self-hosted","Ruby","Rails","Hotwire","Media Server","Audio","Music Player","Personal Music","Mobile Apps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["MEDIA_PATH=/media_data"].join("\n"),mounts:[{type:"bind",hostPath:"".concat(e.mediaPath),mountPath:"/media_data"},{type:"volume",name:"data",mountPath:"/app/storage"}]}}),{services:t}}},{slug:"blender",meta:{name:"Blender",description:"Blender is a comprehensive, free and open-source 3D computer graphics software toolset. It is used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. The app is designed to be accessed at your host, providing a desktop GUI for easy interaction. It supports hardware acceleration for an enhanced desktop experience, although GPU rendering is not supported out of the box. The app is compatible with multiple architectures, ensuring it can be used on a variety of systems. Please note that while this app can run on Arm devices, it is recommended not to mount in /dev/dri due to the OpenGL ES version not being high enough to run Blender.",instructions:null,changeLog:[{date:"2023-04-12",description:"first release"},{date:"2024-09-30",description:"Changed static latest tag to 4.2.2 LTS"},{date:"2025-01-06",description:"Version bumped to 4.3.2"},{date:"2025-07-15",description:"Version bumped to 4.4.3"},{date:"2025-12-24",description:"Version bumped to 5.0.1"},{date:"2026-04-29",description:"Version bumped to 5.1.1"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-blender"},{label:"Github",url:"https://github.com/linuxserver/docker-blender"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"blender"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/blender:5.1.1"}}},benefits:[{title:"3D Graphics Creation",description:"Blender is a powerful tool for creating 3D computer graphics. This includes animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games."},{title:"Multi-Platform Awareness",description:"The app utilizes the docker manifest for multi-platform awareness. This means it can retrieve the correct image for your architecture, ensuring optimal performance and compatibility."},{title:"Hardware Acceleration",description:"The app supports hardware acceleration for an enhanced desktop experience. This includes the ability to mount a GPU into the container for GPU accelerated applications."}],features:[{title:"Open Source",description:"Blender is a free and open-source software toolset. This means it's freely available for anyone to use, modify, and distribute."},{title:"Accessible Application",description:"The application can be accessed at your host via HTTP or HTTPS, providing flexibility and security for your workflows."},{title:"Customizable Environment",description:"The app provides a range of optional environment variables and run configurations. This allows you to customize the functionality and performance of the app to suit your specific needs."},{title:"Docker Integration",description:"The app is designed to work seamlessly with Docker. This includes the ability to start a Docker in Docker setup inside the container, and the ability to mount the Docker directory inside the container to the host for increased performance."}],tags:["3D Graphics","Animation","Visual Effects","Art","Motion Graphics","Virtual Reality","Computer Games"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"config",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"blinko",meta:{name:"Blinko",description:"Blinko (space) is an open-source, self-hosted \u201cidea hub\u201d that rolls notes, micro-blog posts, paste-bins and lightweight tasks into one minimalist, card-style interface. You jot down thoughts in plain text or Markdown; behind the scenes Blinko indexes every word with an AI-powered RAG engine (works with OpenAI or a local Ollama model), so you can later retrieve anything with natural-language search instead of keywords",instructions:null,changeLog:[{date:"2025-05-26",description:"First release"},{date:"2025-07-15",description:"Version bumped to 1.1.2"},{date:"2025-12-24",description:"Updated to 1.8.0"},{date:"2026-02-18",description:"Version bumped to 1.8.5"},{date:"2026-04-29",description:"Version bumped to 1.8.7"}],links:[{label:"Website",url:"https://blinko.space/"},{label:"Documentation",url:"https://docs.blinko.space/"},{label:"Github",url:"https://github.com/blinkospace/blinko"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Service Name",default:"blinko"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"blinkospace/blinko:1.8.7"}}},benefits:[{title:"Collaborative Space",description:"Create and manage shared workspaces for team collaboration."},{title:"Real-time Updates",description:"See changes and updates from team members instantly."},{title:"Secure Environment",description:"Enterprise-grade security for your team's sensitive data."},{title:"Customizable Workflows",description:"Adapt the workspace to match your team's unique processes."}],features:[{title:"Shared Workspaces",description:"Create multiple workspaces for different teams and projects."},{title:"Document Management",description:"Store, organize and version control all your team documents."},{title:"Team Chat & Messaging",description:"Built-in communication tools for seamless team coordination."},{title:"Task Management",description:"Track and manage team tasks and project progress."},{title:"Access Controls",description:"Granular permissions to control who can access what."},{title:"Activity Tracking",description:"Monitor workspace activity and team member contributions."}],tags:["Collaboration","Team Management","Document Sharing","Project Management","Real-time","Workspace"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:["NODE_ENV=production","NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","NEXT_PUBLIC_BASE_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_SECRET=".concat(i),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-postgres:5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1111}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:a}}),{services:t}}},{slug:"boltdiy",meta:{name:"Bolt.Diy",description:"Bolt.Diy is an AI-powered agent and community for web development, enabling you to create, edit, and deploy full-stack applications without any local setup. It's like having a coding genie at your fingertips, transforming your web ideas into reality with just a few prompts. Bolt.Diy streamlines the development process with intelligent suggestions, automated workflows, and seamless deployment, making it the ultimate tool for modern web developers. The app is fully containerized and designed for accessibility across various platforms.",instructions:null,changeLog:[{date:"2025-01-28",description:"First Release"}],links:[{label:"Github",url:"https://github.com/stackblitz-labs/bolt.diy"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"boltdiy"}}},benefits:[{title:"AI-Powered Development",description:"Bolt.Diy leverages AI to assist with code generation, debugging, and deployment, dramatically reducing the time needed to build web applications."},{title:"No Local Setup Required",description:"Create and deploy full-stack applications directly in the browser or through cloud-hosted environments without the need for local installations or configurations."},{title:"Real-Time Collaboration",description:"Work with your team in real-time, sharing ideas and edits seamlessly through an integrated collaboration platform."}],features:[{title:"Intelligent Code Assistance",description:"Bolt.Diy provides smart suggestions and automates repetitive coding tasks to speed up the development process."},{title:"Full-Stack Capabilities",description:"Build and deploy both front-end and back-end applications using Bolt.Diy's comprehensive tools and frameworks."},{title:"Community-Driven Platform",description:"Engage with a vibrant developer community, sharing tips, resources, and best practices to enhance your projects."},{title:"Integrated Deployment",description:"Deploy applications directly from the platform to your hosting environment without leaving the interface, ensuring a smooth and efficient workflow."}],tags:["AI","Web Development","Collaboration","Full-Stack","Deployment","Open Source","Community"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"github",owner:"stackblitz-labs",repo:"bolt.diy",ref:"main",path:"/",autoDeploy:!1},build:{type:"dockerfile"},mounts:[{type:"volume",name:"app",mountPath:"/app"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:5173}]}}),{services:t}}},{slug:"bookheaven",meta:{name:"BookHeaven",description:"BookHeaven Server is a self-hosted ebook library manager that lets you organize, read, and manage your ebook collection with a modern responsive UI. It reads metadata directly from ebook files (title, author, cover), allows editing and persists changes back into the file. Features include auto-discovery by the companion Android e-ink reader app, metadata fetching from the internet, reading progress tracking, font management for your devices, multiple profiles, OPDS support, and book importing via a dedicated folder. Built with .NET and Blazor.",instructions:null,changeLog:[{date:"2026-02-18",description:"Template Release (v0.15.0)"},{date:"2026-04-29",description:"Version bumped to (v0.16.0)"}],links:[{label:"GitHub",url:"https://github.com/BookHeaven/BookHeaven.Server"},{label:"Website",url:"https://bookheaven.ggarrido.dev"},{label:"Documentation",url:"https://bookheaven.ggarrido.dev/getting-started"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bookheaven"},appServiceImage:{type:"string",title:"BookHeaven Image",default:"ghcr.io/bookheaven/bookheaven-server:0.16.0"},timezone:{type:"string",title:"Timezone",default:"UTC",description:"Container timezone (e.g. America/New_York, Europe/Madrid, Asia/Karachi)"}}},benefits:[{title:"Simple & Lightweight",description:"Single container deployment with no database required. All data (books, covers, fonts, metadata) is stored in a single persistent data directory."},{title:"Modern Responsive UI",description:"Clean, modern web interface built with Blazor and MudBlazor that works on desktop and mobile browsers."},{title:"E-Ink Reader Companion",description:"Companion Android app (BookHeaven Reader) for e-ink devices with auto-discovery, font downloads, and reading progress sync."}],features:[{title:"Metadata Management",description:"Reads metadata from ebook files automatically. Edit titles, authors, covers, and more\u2014changes are persisted back into the file."},{title:"Internet Metadata Fetching",description:"Fetch covers and metadata from the internet to enrich your library without manual editing."},{title:"Reading Progress Tracking",description:"Track start date, last read date, percentage, elapsed time, and finished date. Set progress manually or sync from the reader app."},{title:"OPDS Support",description:"Built-in OPDS endpoint at /opds for browsing and downloading books with any compatible e-reader app."},{title:"Font Management",description:"Upload and manage fonts so your e-ink devices can easily download and use them. Supports multiple styles and weights."},{title:"Multiple Profiles",description:"Create separate profiles to keep reading progress independent across different users or devices."}],tags:["Ebooks","Library","Self-Hosted","E-Reader","OPDS","Books"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["SERVER_URL=https://$(PRIMARY_DOMAIN)","TZ=".concat(e.timezone)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"import",mountPath:"/app/import"}]}}),{services:t}}},{slug:"bookorbit",meta:{name:"BookOrbit",description:"BookOrbit is a self-hosted book management and reading tracker application. Organize your library, track reading progress, manage wishlists, and get AI-powered book recommendations \u2014 all on your own server.",instructions:"After deployment, open the app and complete the initial setup using your SETUP_BOOTSTRAP_TOKEN (shown in the service environment variables). Create your admin account during setup. The token is only needed once for the first login bootstrap.",changeLog:[{date:"2026-06-01",description:"Initial template release for BookOrbit v1.7.0"}],links:[{label:"Website",url:"https://bookorbit.app"},{label:"Documentation",url:"https://bookorbit.app/installation.html"},{label:"GitHub",url:"https://github.com/bookorbit/bookorbit"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bookorbit"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/bookorbit/bookorbit:1.7.0"}}},benefits:[{title:"Self-Hosted Book Library",description:"Keep full control of your reading data. BookOrbit runs entirely on your own server with no third-party data sharing."},{title:"AI-Powered Recommendations",description:"Get personalized book recommendations using built-in AI features powered by your reading history and preferences."},{title:"Comprehensive Reading Tracker",description:"Track currently reading, finished, and wishlist books with reading stats, progress updates, and collection management."}],features:[{title:"Book Management",description:"Organize books into shelves and collections with metadata, covers, and ratings."},{title:"Reading Progress Tracking",description:"Log reading sessions and track progress page-by-page across your entire library."},{title:"Book Drop (Ingestion)",description:"Drop book files into a watched folder for automatic ingestion into your library."},{title:"PostgreSQL with pgvector",description:"Uses pgvector for semantic search and AI recommendation capabilities."}],tags:["Books","Reading","Library","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32);return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),image:"pgvector/pgvector:pg16",password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["NODE_ENV=production","PORT=3000","APP_URL=https://$(EASYPANEL_DOMAIN)","CLIENT_URL=https://$(EASYPANEL_DOMAIN)","POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"POSTGRES_PORT=5432","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"POSTGRES_DB=$(PROJECT_NAME)","JWT_SECRET=".concat(i),"SETUP_BOOTSTRAP_TOKEN=".concat(o),"LOG_LEVEL=info"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"books",mountPath:"/books"},{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"bookstack",meta:{name:"Bookstack",description:"BookStack is a free and open-source platform designed to help you organize and store information in a simple and efficient way. It is a self-hosted solution that allows you to create, edit, and manage content through an easy-to-use interface. The content is divided into three real-world groups: Books, Chapters, and Pages, making it easy to navigate and find the information you need. The platform also includes a powerful search feature that allows you to search at the book level or across all books, chapters, and pages. You can also link directly to any paragraph, keeping your documentation interconnected. BookStack offers configuration options that let you customize the system to suit your needs, including changing the name, logo, and registration options. It also includes built-in diagrams.net drawing capability for creating diagrams within your documentation, a markdown editor for those who prefer to write in markdown, and integrated authentication options. The platform supports multiple languages and offers both dark and light modes for a comfortable user experience. It also includes a full role and permission system, multi-factor authentication, and features like cross-book sorting, page revisions, and image management.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2024-03-11",description:"Version bumped to 24.05.1"},{date:"2024-09-30",description:"Version bumped to 24.05.4"},{date:"2025-07-15",description:"Version bumped to 25.05.2"},{date:"2025-12-24",description:"Version bumped to 25.11.6"},{date:"2026-02-18",description:"Version bumped to 25.12.5"},{date:"2026-04-29",description:"Version bumped to 26.03.3"}],links:[{label:"Website",url:"https://www.bookstackapp.com/"},{label:"Documentation",url:"https://www.bookstackapp.com/docs/"},{label:"Github",url:"https://github.com/BookStackApp/BookStack"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bookstack"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/bookstack:26.03.3"},databaseServiceName:{type:"string",title:"Database Service Name",default:"bookstack-db"}}},benefits:[{title:"Organised Information Storage",description:"BookStack is a simple, self-hosted platform that allows you to organise and store information in a structured manner. It breaks down content into three real-world groups: Books, Chapters, and Pages, making it easy to navigate and find the information you need."},{title:"Searchable and Connected Content",description:"The content in BookStack is fully searchable, allowing you to find information quickly and efficiently. You can search at the book level or across all books, chapters, and pages. Plus, the ability to link directly to any paragraph keeps your documentation connected."},{title:"Customisable to Suit Your Needs",description:"BookStack is highly configurable, allowing you to set it up to suit your specific use case. You can change the name, logo, and registration options, and decide whether the whole system is publicly viewable or not."},{title:"Multi-Lingual Support",description:"BookStack supports multiple languages, allowing users to set their preferred language. This makes it a versatile tool for global teams and organisations."}],features:[{title:"Easy, Simple Interface",description:"BookStack has been designed with simplicity in mind. The page editor features a straightforward WYSIWYG interface, making it easy for anyone to use."},{title:"Built-In diagrams.net",description:"The page editor within BookStack has a built-in diagrams.net drawing capability, allowing for the quick and easy creation of diagrams within your documentation."},{title:"Optional Markdown Editor",description:"If you prefer to write in Markdown, BookStack supports you. A markdown editor is provided, complete with a live-preview as you write your documentation."},{title:"Integrated Authentication",description:"BookStack supports various login methods, including default email/password and social providers such as GitHub, Google, Slack, AzureAD and more. Enterprise environments can utilise Okta, SAML2 and LDAP options."},{title:"Powerful Features",description:"BookStack comes packed with powerful features like cross-book sorting, page revisions, image management, and a full role and permission system to lock down content and actions as required."},{title:"Multi-Factor Authentication",description:"For enhanced security, BookStack has built-in Multi-Factor Authentication (MFA) which can be enforced at a per-role level. MFA options include TOTP (Google/Microsoft Authenticator, Authy, etc.) and static backup codes."},{title:"Dark & Light Modes",description:"BookStack provides its user interface in both a light theme and a dark theme, catering to individual user preferences. This is configurable at a user level."}],tags:["Wiki","Documentation","Open Source"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_URL=https://$(PRIMARY_DOMAIN)","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_USERNAME=mariadb","DB_PASSWORD=".concat(a),"DB_DATABASE=$(PROJECT_NAME)","APP_KEY=".concat(i)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"borgui",meta:{name:"Borg UI",description:"Borg UI is a modern web-based interface for BorgBackup, the popular deduplicating backup program with compression and authenticated encryption. It provides an intuitive dashboard for managing backup repositories, creating and scheduling backups, monitoring backup status, and restoring files through a user-friendly web interface. BorgBackup is known for its efficiency through deduplication at the chunk level, strong encryption using AES-256, and data integrity verification. Borg UI simplifies the complexity of command-line operations by offering visual repository management, backup job configuration, automated scheduling, space-efficient storage tracking, and easy file restoration. The self-hosted solution gives you complete control over your backup infrastru
1cture while maintaining the security and reliability of BorgBackup. With access to your entire filesystem, it can protect any data on your server including application files, databases, configurations, and user data. Perfect for system administrators, developers, and anyone who needs reliable, encrypted, and space-efficient backup solutions without relying on proprietary cloud backup services or complex command-line interfaces.",instructions:"Default login is admin / admin123 \u2014 change the password on first use. Archive\nmounting and SSHFS pull backups require a FUSE device, which this template\ndoes not add; backups, browsing, and restores work normally without it.\n",changeLog:[{date:"2025-11-25",description:"Template Release"},{date:"2026-02-18",description:"Version bumped to 1.69"},{date:"2026-04-29",description:"Version bumped to 2.0.8"},{date:"2026-09-15",description:"Version bumped to 2.2.6"},{date:"2026-09-15",description:"Fixed logo to the correct Borg UI mascot, disabled Redis fallback attempts, added first-login/FUSE instructions, and made the local mount path configurable"}],links:[{label:"GitHub Repo",url:"https://github.com/karanhudia/borg-ui"},{label:"Documentation",url:"https://docs.borgui.com"}
1],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"borgui"},appServiceImage:{type:"string",title:"App Service Image",default:"ainullcode/borg-ui:2.2.6"},timezone:{type:"string",title:"Timezone",default:"UTC"},localPath:{type:"string",title:"Local Mount Path",description:"Host path mounted into the container at /local. Defaults to / to expose the whole filesystem; narrow it to limit what the container can see.",default:"/"}}},benefits:[{title:"User-Friendly Backup Management",description:"Simplified web interface for BorgBackup eliminates the need for complex command-line operations while maintaining full backup capabilities."},{title:"Space-Efficient Storage",description:"Advanced deduplication and compression technology significantly reduces storage requirements by storing only unique data chunks across all backups."},{title:"Security and Encryption",description:"Built-in AES-256 encryption ensures your backup data remains secure with authenticated encryption and data integrity verification."},{title:"Complete Filesystem Access",description:"Full access to your server's filesystem enables comprehensive backup coverage for all applications, databases, and system files."}],features:[{title:"Web-Based Interface",description:"Modern, intuitive dashboard for managing all aspects of your backup operations without touching the command line."},{title:"Repository Management",description:"Create, configure, and manage multiple backup repositories with visual tools for monitoring storage usage and repository health."},{title:"Automated Scheduling",description:"Schedule automatic backups at regular intervals with flexible timing options to ensure your data is consistently protected."},{title:"Deduplication Engine",description:"Advanced chunk-level deduplication identifies and stores only unique data, dramatically reducing storage space and backup times."},{title:"Easy Restoration",description:"Browse backup archives and restore individual files or entire directories through the web interface with point-in-time recovery."},{title:"Backup Monitoring",description:"Real-time status updates, backup history, storage statistics, and alerts keep you informed about your backup infrastructure health."}],tags:["Backup","BorgBackup","Deduplication","Encryption","System Administration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}],env:["TZ=".concat(e.timezone||"UTC"),"PUID=0","PGID=0","REDIS_HOST=disabled"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"cache",mountPath:"/home/borg/.cache/borg"},{type:"bind",hostPath:e.localPath||"/",mountPath:"/local"}]}}),{services:t}}},{slug:"botpress",meta:{name:"Botpress",description:"Botpress is a revolutionary platform that allows you to build next-generation chatbots powered by OpenAI. It offers an intuitive visual flow editor to bring your users\u2019 conversations to life. With Botpress, you can create chatbots that are always on brand, thanks to ChatGPT\u2019s copywriting abilities. The platform also provides a range of GPT-first tools and features such as dynamic knowledge ingestion, sentiment analysis, automatic self-improvement, data enhancements, and AI recommendations. Botpress supports 100+ languages, enabling you to launch your chatbot globally. It also offers one-click deployment across various channels. With Botpress, building human-like chatbots has never been this easy.",instructions:"Botpress needs at least 10 GB of RAM to run!",changeLog:[{date:"2023-5-18",description:"first release"},{date:"2024-03-11",description:"Version bumped to 12.31.5"},{date:"2025-01-06",description:"Version bumped to 12.31.9"},{date:"2025-07-15",description:"Version bumped to 12.31.10"}],links:[{label:"Website",url:"https://botpress.com"},{label:"Documentation",url:"https://botpress.com/docs"},{label:"Github",url:"https://github.com/botpress/botpress"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"botpress"},appServiceImage:{type:"string",title:"App Service Image",default:"botpress/server:12.31.10"},databaseServiceName:{type:"string",title:"Database Service Name",default:"botpress-db"}}},benefits:[{title:"Efficient Chatbot Building",description:"Botpress allows you to build next-generation chatbots powered by OpenAI quickly and efficiently. It simplifies the chatbot building process, making it accessible even to those without extensive AI knowledge."},{title:"Customizable Templates",description:"With over 100+ fully customizable templates, Botpress provides a jumpstart to your project. Whether you need a chatbot for shopping assistance, health appointments, or banking support, there's a template ready for you."},{title:"Global Reach",description:"Botpress breaks language barriers by automatically translating to 100+ languages. This feature allows you to launch your chatbot globally, reaching users in their preferred language."},{title:"Easy Deployment",description:"With Botpress, you can deploy your chatbot across various channels with just one click. This feature ensures that you can meet your users wherever they are."}],features:[{title:"Visual Flow Editor",description:"Botpress comes with an intuitive, visual flow editor that brings your users\u2019 conversations to life. It handles exception handling & deviations, allowing you to focus on building your happy paths."},{title:"AI Task Augment",description:"With the AI Task feature, you can control the power of LLMs to automate processes & execute complex workflows. This feature liberates ChatGPT from its chat bubble to take action."},{title:"Bot Personality",description:"Botpress allows you to customize your chatbot's personality. By providing a description, your chatbot will speak on brand in every interaction with your users."},{title:"GPT-Native Suite",description:"Leverage the power of GPT with Botpress. It offers GPT-first tools & features like dynamic knowledge ingestion, sentiment analysis, automatic self-improvement, data enhancements, and AI recommendations."}],tags:["Chat","AI","Automation"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["BP_HOST=0.0.0.0","NODE_ENV=production","PG_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"PG_PORT=5432","PG_USER=postgres","PG_PASSWORD=".concat(a),"PG_SSL=false","PORT=80"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:81}],mounts:[{type:"volume",name:"data",mountPath:"/botpress/data"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"bricktracker",meta:{name:"BrickTracker",description:"BrickTracker is a self-hosted LEGO collection tracker. Add sets by number and it pulls full part, minifigure, and instruction data from Rebrickable, then lets you track missing or damaged parts, organize storage locations, and keep a wishlist of sets you want next. Everything is stored locally in SQLite, so there is no external database to run.",instructions:'Open the app URL \u2014 on first boot you will see a "Database error" screen\ntelling you the database needs to be upgraded from version 0. This is\nexpected on a brand-new install: click Administration, then Initialize/Upgrade\nthe database, and the app will reload normally. Adding sets works without any\nconfiguration after that, but set a Rebrickable API key in the form above\nfirst if you want to pull set data and images automatically instead of\nentering everything by hand.\n',changeLog:[{date:"2026-07-15",description:"first release"}],links:[{label:"Website",url:"https://bricktracker.baerentsen.space"},{label:"GitHub",url:"https://gitea.baerentsen.space/FrederikBaerentsen/BrickTracker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bricktracker"},appServiceImage:{type:"string",title:"App Service Image",default:"gitea.baerentsen.space/frederikbaerentsen/bricktracker:1.4.2"},rebrickableApiKey:{type:"string",title:"Rebrickable API Key",description:"Optional. Required only to pull set/part data and images automatically when adding sets."},authenticationPassword:{type:"string",title:"Access Password",description:"Optional. Leave blank to keep the app fully open; set a password to require it before editing (the app stays viewable read-only either way)."}}},benefits:[{title:"Automatic Set Data",description:"Enter a set number and BrickTracker pulls its parts, minifigures, and images from Rebrickable automatically, instead of manual data entry."},{title:"Missing and Damaged Part Tracking",description:"Mark individual parts as missing or damaged per set, so incomplete builds are easy to spot at a glance."},{title:"No External Database",description:"Everything is stored in a local SQLite file, so there is nothing else to provision or maintain beyond the app itself."}],features:[{title:"Storage Locations",description:"Assign sets and parts to named storage locations to keep track of where physical pieces actually live."},{title:"Wishlist",description:"Keep a list of sets you want to add next, pulled from the same Rebrickable data as owned sets."},{title:"Minifigure and Parts Catalog",description:"Browse every minifigure and part across your whole collection, not just set by set."},{title:"Retired Set Tracking",description:"Cross-references an unofficial retired sets list so you can see which owned or wishlisted sets are no longer in production."}],tags:["Collection","LEGO","Self-Hosted","Hobby"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["BK_DATABASE_PATH=/data/app.db","BK_RETIRED_SETS_PATH=/data/retired_sets.csv","BK_THEMES_PATH=/data/themes.csv"];return e.rebrickableApiKey&&a.push("BK_REBRICKABLE_API_KEY=".concat(e.rebrickableApiKey)),e.authenticationPassword&&(a.push("BK_AUTHENTICATION_PASSWORD=".concat(e.authenticationPassword)),a.push("BK_AUTHENTICATION_KEY=".concat(e.authenticationPassword))),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:a.join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3333}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"instructions",mountPath:"/app/static/instructions"},{type:"volume",name:"minifigures",mountPath:"/app/static/minifigures"},{type:"volume",name:"parts",mountPath:"/app/static/parts"},{type:"volume",name:"sets",mountPath:"/app/static/sets"}]}}),{services:t}}},{slug:"browserless",meta:{name:"Browserless",description:"Browserless is a powerful self-hosted headless browser service designed to automate web interactions. It enables developers to run headless Chrome instances efficiently for web scraping, testing, PDF generation, and automation tasks. Browserless supports Puppeteer, Playwright, and Selenium, providing a scalable and secure environment for handling complex browser automation tasks. The application is optimized for performance, offering session management, request queuing, and robust security features. With Browserless, developers can offload browser-based automation to a dedicated service, reducing local resource consumption and improving workflow efficiency.",instructions:"Update your App to use Browserless. Follow the docs; https://docs.browserless.io/baas/docker/quickstart.",changeLog:[{date:"2025-01-29",description:"First Release"},{date:"2025-07-15",description:"Version bumped to 2.33.0"},{date:"2025-12-24",description:"Version bumped to 2.38.2"},{date:"2026-02-18",description:"Version bumped to 2.40.0"}],links:[{label:"Documentation",url:"https://docs.browserless.io/"},{label:"Github",url:"https://github.com/browserless/chrome"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","concurrentSessions"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"browserless"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/browserless/chromium:v2.40.0"},concurrentSessions:{type:"string",title:"Concurrent Sessions",default:"10"}}},benefits:[{title:"Scalable Browser Automation",description:"Browserless enables developers to run headless Chrome instances for automation, testing, and data extraction without maintaining local infrastructure."},{title:"Supports Multiple Frameworks",description:"Compatible with Puppeteer, Playwright, and Selenium, making it versatile for different automation needs."},{title:"Optimized Performance",description:"Designed for efficiency, with session management, request queuing, and resource monitoring to ensure smooth execution of browser tasks."}],features:[{title:"Headless Browser API",description:"Provides a REST API to interact with headless Chrome for automation and testing."},{title:"Web Scraping",description:"Perform data extraction from websites with ease using Puppeteer and Playwright integrations."},{title:"Screenshot & PDF Generation",description:"Capture screenshots and generate PDFs from web pages for reporting and archival purposes."},{title:"Session Management",description:"Manage multiple concurrent sessions efficiently to optimize resource usage and speed."},{title:"Secure Execution",description:"Includes authentication, IP whitelisting, and rate limiting to prevent abuse and ensure security."},{title:"Cloud & On-Prem Support",description:"Deploy in the cloud or self-host on your own infrastructure for full control over automation tasks."},{title:"Request Queuing",description:"Handles a large number of automation requests efficiently with an intelligent queuing system."}],tags:["Browser Automation","Web Scraping","Testing","Puppeteer","Playwright","Selenium"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["CONCURRENT=".concat(e.concurrentSessions),"TOKEN=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"budge",meta:{name:"Budge",description:"Budge is a personal finance management application that helps you track your expenses, manage budgets, and monitor your financial goals. It provides a user-friendly interface for managing your personal finances.",instructions:null,changeLog:[{date:"2025-04-29",description:"First Release"}],links:[{label:"Github",url:"https://github.com/linuxserver/budge"},{label:"Documentation",url:"https://github.com/linuxserver/budge#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"budge"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/budge:0.0.9"}}},benefits:[{title:"Personal Finance Management",description:"Budge provides a comprehensive solution for managing your personal finances with an intuitive interface."},{title:"Budget Tracking",description:"Track your expenses and manage budgets to achieve your financial goals."},{title:"User-Friendly",description:"Simple and intuitive interface makes it easy to manage your finances."}],features:[{title:"Expense Tracking",description:"Track your daily expenses and categorize them for better organization."},{title:"Budget Management",description:"Create and manage budgets for different categories and time periods."},{title:"Financial Goals",description:"Set and track your financial goals with progress monitoring."},{title:"Reports and Analytics",description:"Generate reports and analyze your spending patterns."},{title:"Multi-Currency Support",description:"Support for multiple currencies for international users."},{title:"Containerized",description:"Easy to deploy and manage in containerized environments."}],tags:["Finance","Budget","Expense Tracking","Personal Finance","Management"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"budge-config",mountPath:"/config"}],env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n")}}),{services:t}}},{slug:"budibase",meta:{name:"Budibase",description:"Budibase is an open-source platform designed to simplify the creation of internal tools, saving teams hundreds of hours in the process. With Budibase, you can generate powerful internal tools and forms in just a few seconds, without any coding experience required. The platform allows you to connect to an external database, pull data from a Rest API, import a CSV, or start from scratch with Budibase's built-in database. You can design your tools using drag-and-drop components and automate workflows with just a few clicks. Budibase is trusted by over 75,000 teams and is designed to speed up your business operations. Whether you need to collect data securely, automate tasks, or streamline operations, Budibase has you covered.",instructions:"Budibase takes a few minutes to get ready. Sit back, relax, and have a cup of tea!",changeLog:[{date:"2022-10-30",description:"first release"},{date:"2024-03-12",description:"Version bumped to 2.21.8"},{date:"2024-09-30",description:"Version bumped to 2.32.8"},{date:"2025-01-06",description:"Version bumped to 3.2.32"},{date:"2025-02-21",description:"Version bumped to 3.4.16"},{date:"2025-06-30",description:"Updated to multi-service architecture"},{date:"2025-12-24",description:"Version bumped to 3.23.46"},{date:"2026-02-18",description:"Version bumped to 3.30.0"},{date:"2026-04-29",description:"Version bumped to 3.37.1"},{date:"2026-09-15",description:"Version bumped to 3.45.0; fixed MinIO image (minio/minio was removed from Docker Hub, moved to quay.io/minio/minio)"}],links:[{label:"Website",url:"https://budibase.com/"},{label:"Documentation",url:"https://docs.budibase.com/docs"},{label:"Github",url:"https://github.com/Budibase/budibase"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","workerServiceImage","adminEmail","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"budibase"},appServiceImage:{type:"string",title:"App Service Image",default:"budibase/apps:v3.45.0"},workerServiceImage:{type:"string",title:"Worker Service Image",default:"budibase/worker:v3.45.0"},adminEmail:{type:"string",title:"Admin Email",description:"Email for the admin user"},adminPassword:{type:"string",title:"Admin Password",description:"Password for the admin user"}}},benefits:[{title:"Efficiency and Speed",description:"Budibase saves teams hundreds of hours by simplifying the process of building internal tools. It allows you to create solutions that speed up your business operations."},{title:"No Coding Experience Required",description:"With Budibase, you don't need any coding experience to create powerful internal tools and forms. Its user-friendly interface allows you to design your tools with drag-and-drop components."},{title:"Automate Workflows",description:"Budibase allows you to automate tasks and workflows with ease. With just a few clicks, you can automate manual processes and streamline operations within your app and business."},{title:"Data Integration",description:"Budibase allows you to connect to an external database, pull data from a Rest API, import a CSV, or start from scratch with Budibase's built-in database. You can turn your data into an app with just one click."}],features:[{title:"Data Collection",description:"Budibase allows you to collect data securely on top of any database. It provides a platform for adding visitor contacts and managing company visits."},{title:"Notification System",description:"Budibase comes with a built-in notification system that sends alerts for new visitors or actions taken within the app."},{title:"Design Flexibility",description:"Budibase provides pre-made blocks and a drag-and-drop interface for designing internal tools. It allows you to deliver internal tools that look beautiful and work perfectly across mobile, tablet, and desktop."},{title:"Hosting Options",description:"Budibase offers flexible hosting options. You can self-host using Docker, Kubernetes, or Digital Ocean, or choose Budibase Cloud and let Budibase manage everything for you."}],tags:["No-Code","Internal tools","Forms","Workflows"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=y(32),o="budibase",n="password",r=v(),s="budibase",c=v(),l=y(32);return t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:c}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-couchdb"),env:["COUCHDB_PASSWORD=".concat(r),"COUCHDB_USER=".concat(s),"TARGETBUILD=docker-compose"].join("\n"),source:{type:"image",image:"budibase/couchdb:v3.3.3-sqs-v2.1.1"},mounts:[{type:"volume",name:"couchdb-data",mountPath:"/opt/couchdb/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),env:["MINIO_ROOT_USER=".concat(o),"MINIO_ROOT_PASSWORD=".concat(n),"MINIO_BROWSER=on"].join("\n"),source:{type:"image",image:"quay.io/minio/minio:latest"},mounts:[{type:"volume",name:"data",mountPath:"/data"}],domains:[{host:"console-$(EASYPANEL_DOMAIN)",port:9001},{host:"$(EASYPANEL_DOMAIN)",port:9e3}],deploy:{command:'minio server /data --console-address ":9001"'}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:["SELF_HOSTED=1","PORT=4003","CLUSTER_PORT=10000","API_ENCRYPTION_KEY=".concat(a),"JWT_SECRET=".concat(i),"MINIO_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-minio:9000"),"MINIO_ACCESS_KEY=".concat(o),"MINIO_SECRET_KEY=".concat(n),"APPS_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-app:4002"),"COUCH_DB_USERNAME=".concat(s),"COUCH_DB_PASSWORD=".concat(r),"COUCH_DB_URL=http://".concat(s,":").concat(r,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-couchdb:5984"),"INTERNAL_API_KEY=".concat(l),"REDIS_URL=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis:6379"),"REDIS_PASSWORD=".concat(c),"OFFLINE_MODE=false"].join("\n"),source:{type:"image",image:e.workerServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-app"),env:["SELF_HOSTED=1","COUCH_DB_URL=http://".concat(s,":").concat(r,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-couchdb:5984"),"WORKER_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-worker:4003"),"MINIO_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-minio:9000"),"MINIO_ACCESS_KEY=".concat(o),"MINIO_SECRET_KEY=".concat(n),"INTERNAL_API_KEY=".concat(l),"BUDIBASE_ENVIRONMENT=PRODUCTION","PORT=4002","API_ENCRYPTION_KEY=".concat(a),"JWT_SECRET=".concat(i),"LOG_LEVEL=info","ENABLE_ANALYTICS=true","REDIS_URL=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis:6379"),"REDIS_PASSWORD=".concat(c),"BB_ADMIN_USER_EMAIL=".concat(e.adminEmail),"BB_ADMIN_USER_PASSWORD=".concat(e.adminPassword),"PLUGINS_DIR=","OFFLINE_MODE=false"].join("\n"),source:{type:"image",image:e.appServiceImage}}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["PROXY_RATE_LIMIT_WEBHOOKS_PER_SECOND=10","PROXY_RATE_LIMIT_API_PER_SECOND=20","APPS_UPSTREAM_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-app:4002"),"WORKER_UPSTREAM_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-worker:4003"),"MINIO_UPSTREAM_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-minio:9000"),"COUCHDB_UPSTREAM_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-couchdb:5984"),"RESOLVER=127.0.0.11"].join("\n"),source:{type:"image",image:"budibase/proxy"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1e4}]}}),{services:t}}},{slug:"bugsink",meta:{name:"Bugsink",description:"Bugsink is a self-hosted error tracking system compatible with Sentry SDKs.",instructions:null,changeLog:[{date:"2025-05-08",description:"First Release"},{date:"2026-05-15",description:"Update to 2.1.3"}],links:[{label:"Website",url:"https://www.bugsink.com/"},{label:"Github",url:"https://github.com/bugsink/bugsink"},{label:"Documentation",url:"https://www.bugsink.com/docs/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminUsername","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bugsink"},appServiceImage:{type:"string",title:"App Service Image",default:"bugsink/bugsink:2.1.3"},adminUsername:{type:"string",title:"Admin Username",default:"admin",description:"Admin username"},adminPassword:{type:"string",title:"Admin Password",default:"admin",description:"Admin password"}}},benefits:[{title:"Self-Hosted Solution",description:"Full control over your data by running on your own servers"},{title:"Sentry SDK Compatible",description:"Works with popular Sentry SDKs across multiple programming languages"},{title:"Scalable Performance",description:"Handles millions of events per day on minimal hardware"}],features:[{title:"Error Tracking",description:"Catch and monitor errors with detailed stacktraces and context"},{title:"Issue Grouping",description:"Automatically group related errors for better management"},{title:"Alerting System",description:"Get notified when new errors occur in your application"},{title:"Search and Tags",description:"Search through errors by release, environment, user, and more"},{title:"Sourcemaps Support",description:"Link minified code to original source for better debugging"}],tags:["Error Tracking","Self-Hosted","Monitoring","Sentry Compatible"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["SECRET_KEY=".concat(i),"BEHIND_HTTPS_PROXY=true","CREATE_SUPERUSER=".concat(e.adminUsername,":").concat(e.adminPassword),"PORT=8000","DATABASE_URL=mysql://root:".concat(a,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-db:3306/$(PROJECT_NAME)"),"BASE_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),rootPassword:a}}),{services:t}}},{slug:"bunkerm",meta:{name:"BunkerM",description:"BunkerM is a free, open-source, containerized MQTT management platform that bundles Eclipse Mosquitto with a full-featured web dashboard in a single Docker image. It provides dynamic security management for clients, roles, groups, and ACLs, real-time monitoring of connections and broker logs, a built-in MQTT browser for exploring topics and payloads, message history with replay, local automation through schedulers and watchers, anomaly detection, and optional cloud AI integration via BunkerAI. Everything deploys with a single container \u2014 no external database or message broker needed.",instructions:'After deployment open the web UI at your configured domain. Log in with the default credentials \u2014 email "[email protected]" and password "password123". Change the password immediately after the first login / signup using the wizard. The MQTT broker is accessible on port 1900 (TCP). Use the MQTT Username and MQTT Password environment variables to connect external IoT clients.',changeLog:[{date:"2026-07-01",description:"first release"}],links:[{label:"Website",url:"https://www.bunkerai.dev"},{label:"Documentation",url:"https://github.com/bunkeriot/BunkerM#-table-of-contents"},{label:"GitHub",url:"https://github.com/bunkeriot/BunkerM"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bunkerm"},appServiceImage:{type:"string",title:"App Service Image",default:"bunkeriot/bunkerm:v2.1.0"}}},benefits:[{title:"All-in-One MQTT Platform",description:"A complete MQTT broker and management dashboard in a single container \u2014 no separate Mosquitto install, no external databases, no complex setup."},{title:"Dynamic Security Management",description:"Create and manage MQTT clients, roles, groups, and ACLs at runtime through the web UI without restarting the broker."},{title:"Real-Time Monitoring",description:"Live dashboard shows connected clients, message throughput, subscription counts, and byte transfer charts updated in real time."}],features:[{title:"Eclipse Mosquitto Broker",description:"Runs a full production-grade Mosquitto MQTT broker on port 1900 with dynamic security plugin enabled out of the box."},{title:"MQTT Browser",description:"Explore topics, inspect payloads, and replay historical messages directly from the web UI without a separate MQTT client."},{title:"Local Automations",description:"Define schedulers and watchers to trigger MQTT publishes or alerts based on time, topic patterns, or payload conditions."},{title:"Anomaly Detection",description:"Built-in anomaly detection flags unusual message patterns or unauthorized connection attempts in the broker log view."},{title:"BunkerAI Integration",description:"Optionally connect to the BunkerAI cloud service to query broker state and automate responses via web chat, Slack, or Telegram."}],tags:["MQTT","IoT","Monitoring","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32),n=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["MQTT_BROKER=localhost","MQTT_PORT=1900","MQTT_USERNAME=bunker","MQTT_PASSWORD=".concat(a),"JWT_SECRET=".concat(i),"API_KEY=".concat(o),"AUTH_SECRET=".concat(n),"COOKIE_SECURE=true","FRONTEND_URL=https://$(PRIMARY_DOMAIN)","ALLOWED_ORIGINS=https://$(PRIMARY_DOMAIN)","ALLOWED_HOSTS=*","RATE_LIMIT_PER_MINUTE=100","LOG_LEVEL=INFO","API_LOG_FILE=/var/log/api/api_activity.log","BROKER_LOG_PATH=/var/log/mosquitto/mosquitto.log","CLIENT_LOG_PATH=/var/log/api/api_activity.log","DYNSEC_PATH=/var/lib/mosquitto/dynamic-security.json","MAX_UPLOAD_SIZE=10485760"].join("\n"),ports:[{published:1900,target:1900,protocol:"tcp"}],mounts:[{type:"volume",name:"next-data",mountPath:"/nextjs/data"},{type:"volume",name:"mosquitto-data",mountPath:"/var/lib/mosquitto"},{type:"volume",name:"history-data",mountPath:"/var/lib/history"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:2e3}]}}),{services:t}}},{slug:"bytebase",meta:{name:"Bytebase",description:"Bytebase is a versatile application designed to streamline database management tasks. It supports a wide range of databases including MySQL, PostgreSQL, Snowflake, Oracle, SQL Server, MongoDB, Redis, Redshift, ClickHouse, TiDB, OceanBase, Google Spanner, and MariaDB. With Bytebase, you can easily configure and manage your database instances, perform SQL reviews, manage data models, roles, and permissions, and handle change workflows in batch mode. The app also offers features for secure data handling, VCS integration, slow query management, and disaster recovery. It comes with an embedded PostgreSQL instance for storing its metadata, but for production setup, it is recommended to store the metadata in an external PostgreSQL database. Bytebase is designed to be deployed easily and quickly, offering a step-by-step quick start guide for users.",instructions:null,changeLog:[{date:"2023-6-11",description:"first release"},{date:"2024-03-12",description:"Version bumped to 2.14.1"},{date:"2024-09-30",description:"Version bumped to 2.23.0"},{date:"2025-01-06",description:"Version bumped to 3.2.0"},{date:"2026-02-18",description:"Version bumped to 3.15.0"},{date:"2026-04-29",description:"Version bumped to 3.17.1"}],links:[{label:"Documentation",url:"https://www.bytebase.com/docs/get-started/install/deploy-with-docker/"},{label:"Github",url:"https://github.com/bytebase/bytebase"}],contributors:[{name:"Amit Gadhia",url:"https://github.com/amitoo7"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bytebase"},appServiceImage:{type:"string",title:"App Service Image",default:"bytebase/bytebase:3.17.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"bytebase-db"}}},benefits:[{title:"Efficient Database Management",description:"Bytebase is designed to streamline database management tasks. It supports a variety of databases, including MySQL, PostgreSQL, Snowflake, Oracle, SQL Server, MongoDB, Redis, Redshift, ClickHouse, TiDB, OceanBase, Google Spanner, and MariaDB. This makes it a versatile tool for managing different types of databases."},{title:"Secure Data Handling",description:"Bytebase ensures the security of your data. It provides an embedded PostgreSQL instance for storing its own metadata. For a production setup, it is recommended to store the metadata in an external PostgreSQL database, further enhancing the security of your data."},{title:"Comprehensive Database Operations",description:"Bytebase allows you to perform a range of database operations. You can change the workflow, review SQL, change the database, and manage data securely. It also supports VCS integration (GitOps), slow query handling, and disaster recovery."}],features:[{title:"Data Model Management",description:"Bytebase allows you to manage your data models effectively. It provides core concepts and a step-by-step quick start guide to help you understand and use the data model feature."},{title:"Roles and Permissions",description:"Bytebase provides a roles and permissions feature. This allows you to manage user roles and permissions, ensuring that only authorized individuals have access to certain data or operations."},{title:"SQL Editor",description:"Bytebase includes a SQL editor feature. This allows you to write and edit SQL queries directly within the app, making it easier to manage and manipulate your data."},{title:"VCS Integration (GitOps)",description:"Bytebase supports VCS integration (GitOps). This allows you to integrate your version control system with Bytebase, enabling you to track changes and manage your database more effectively."},{title:"Disaster Recovery",description:"Bytebase provides a disaster recovery feature. This ensures that your data is protected and can be recovered in the event of a disaster, providing peace of mind and enhancing the reliability of your database management."}],tags:["Databases"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PG_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/var/opt/bytebase"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:13",password:a}}),{services:t}}},{slug:"bytebin",meta:{name:"Bytebin",description:"Bytebin is a fast, lightweight, and simple pastebin service for sharing text and code snippets. Built with performance in mind, it provides an easy way to store and share content through unique URLs. Bytebin is designed to be minimalistic and efficient, making it perfect for developers who need a straightforward solution for sharing code, logs, or text data with automatic expiration and configurable storage limits.",instructions:"Bytebin exposes a simple HTTP API on port 8080. After deployment, open GET /health for a quick health check, POST /post with your content in the request body to create a paste. Data is persisted in /opt/bytebin/content and /opt/bytebin/db, so existing keys survive restarts and upgrades. Adjust BYTEBIN_MISC_KEYLENGTH and BYTEBIN_CONTENT_MAXSIZE if you need longer keys or larger payload limits.",changeLog:[{date:"2025-10-13",description:"Initial Template Release"}],links:[{label:"GitHub",url:"https://github.com/lucko/bytebin"},{label:"Documentation",url:"https://github.com/lucko/bytebin#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"bytebin"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/lucko/bytebin:latest"},keyLength:{type:"string",title:"Key Length",default:"15"},maxContentSize:{type:"string",title:"Max Content Size (MB)",default:"5"}}},benefits:[{title:"Fast & Lightweight",description:"Minimal resource footprint with high performance for quick content sharing and retrieval."},{title:"Simple to Use",description:"Straightforward API and interface for posting and retrieving content with unique URLs."},{title:"Automatic Expiration",description:"Content automatically expires after a certain period, keeping storage clean and efficient."},{title:"Configurable Limits",description:"Customize key length and maximum content size to suit your specific needs and security requirements."}],features:[{title:"Pastebin Service",description:"Share text, code snippets, and logs easily through unique URLs with automatic content management."},{title:"RESTful API",description:"Simple REST API for posting content and retrieving it using unique keys for integration with other tools."},{title:"Content Storage",description:"Persistent storage with configurable limits and automatic cleanup of expired content."},{title:"Customizable Settings",description:"Configure key length and maximum content size through environment variables for your use case."}],tags:["Pastebin","Code Sharing","Text Storage","API","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["BYTEBIN_MISC_KEYLENGTH=".concat(e.keyLength),"BYTEBIN_CONTENT_MAXSIZE=".concat(e.maxContentSize)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/opt/bytebin/content"},{type:"volume",name:"db",mountPath:"/opt/bytebin/db"}]}}),{services:t}}},{slug:"bytestash",meta:{name:"ByteStash",description:"ByteStash is a self-hosted snippet code storage system designed for developers and teams. It provides a secure, organized platform to store, manage, and share your code snippets. With support for multiple programming languages, syntax highlighting, tagging, and a robust search functionality, ByteStash streamlines code reuse and collaboration. The intuitive interface and powerful features ensure that your code is always at your fingertips, whether you're working solo or with a team.",instructions:null,changeLog:[{date:"2025-02-10",description:"First Release"},{date:"2025-07-15",description:"Version bumped to 1.5.8"},{date:"2026-02-18",description:"Version bumped to 1.5.11"}],links:[{label:"Documentation",url:"https://github.com/jordan-dalby/bytestash/wiki"},{label:"Github",url:"https://github.com/jordan-dalby/bytestash"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Service Name",default:"bytestash"},appServiceImage:{type:"string",title:"Service Image",default:"ghcr.io/jordan-dalby/bytestash:1.5.11"}}},benefits:[{title:"Centralized Code Management",description:"ByteStash provides a single, secure location to store all your code snippets, making it easy to manage and access your code whenever you need it."},{title:"Enhanced Productivity",description:"With features like tagging, robust search functionality, and syntax highlighting, ByteStash helps you quickly locate and reuse code, streamlining your development workflow."},{title:"Collaboration and Sharing",description:"Easily share your snippets with teammates or the developer community, and collaborate in real-time or asynchronously to improve code quality and foster innovation."}],features:[{title:"Syntax Highlighting",description:"Supports multiple programming languages with customizable syntax highlighting to ensure your code is easy to read and understand."},{title:"Tagging and Organization",description:"Organize your snippets with tags and categories, making it simple to sort and find code quickly."},{title:"Secure Access",description:"Implement user authentication and access controls to keep your code private and secure."},{title:"Powerful Search",description:"Utilize advanced search features to quickly locate snippets by keywords, tags, or language."},{title:"RESTful API",description:"Integrate ByteStash with other tools and services through a comprehensive and easy-to-use API."}],tags:["Code Snippets","Development","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["BASE_PATH=","JWT_SECRET=".concat(a),"TOKEN_EXPIRY=24h","ALLOW_NEW_ACCOUNTS=true","DEBUG=true","DISABLE_ACCOUNTS=false","DISABLE_INTERNAL_ACCOUNTS=false","OIDC_ENABLED=false","OIDC_DISPLAY_NAME=","OIDC_ISSUER_URL=","OIDC_CLIENT_ID=","OIDC_CLIENT_SECRET=","OIDC_SCOPES="].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],mounts:[{type:"volume",name:"snippets",mountPath:"/data/snippets"}]}}),{services:t}}},{slug:"cachet",meta:{name:"Cachet",description:"Meet Cachet, the open-source status page system designed to improve downtime communication. Used by great companies worldwide, Cachet allows you to effectively communicate downtime and system outages to your customers, teams, and shareholders. It comes with a beautifully crafted design that is responsive and works seamlessly on your desktop, tablet, and ph
1one. Cachet supports multiple languages and comes with a powerful JSON API for updating your status page with incidents and component status changes. It also allows you to schedule maintenance events ahead of time and provides a dashboard for setting up metrics to measure various aspects such as uptime, error rates, etc. For added security, Cachet supports two-factor authentication. It's a beautifully simple service for managing your service statuses.",instructions:null,changeLog:[{date:"2023-3-28",description:"first release"}],links:[{label:"Website",url:"https://cachethq.io"},{label:"Documentation",url:"https://docs.cachethq.io/"},{label:"Github",url:"https://github.com/cachethq/cachet"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"cachet"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/supernova3339/docker-cachet-hq:2.3.18"},databaseServiceName:{type:"string",title:"Database Service Name",default:"cachet-db"}}},benefits:[{title:"Improved Communication",description:"Cachet is a tool that enhances communication about downtime and system outages. It is used by great companies worldwide to keep their customers, teams, and shareholders informed about system status."},{title:"Scheduled Maintenance",description:"Cachet allows you to schedule maintenance events in advance. Once the maintenance time has passed, the incident is recorded in the timeline for future reference."},{title:"Metrics",description:"Cachet provides a dashboard where you can set up metrics to measure various aspects, such as uptime, error rates, or any other parameter of interest. These metrics can be updated using the API."},{title:"Multi-lingual Support",description:"Cachet supports over ten languages, making it accessible to users around the globe."}],features:[{title:"Open Source Status Page System",description:"Cachet is an open source status page system that allows you to list your service components, report incidents, and customize the look of your status page."},{title:"Powerful JSON API",description:"Cachet comes with a powerful JSON API that allows you to update your status page with incidents and component status changes."},{title:"Two-factor Authentication",description:"Cachet provides an extra layer of security for your account with two-factor authentication, compatible with the Google Authenticator app."},{title:"Subscriber Notifications",description:"Cachet enables subscriber notifications via email, keeping your users informed about any changes or incidents."}],tags:["Monitoring","Communication"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_KEY=base64:".concat(btoa(y(32))),"DB_DRIVER=pgsql","DB_USERNAME=postgres","DB_PASSWORD=".concat(a),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_PORT=5432","DB_DATABASE=$(PROJECT_NAME)","APP_ENV=production","DOCKER=true","TRUSTED_PROXIES=*","DEBUGBAR_ENABLED=false","DEBUG=false","APP_DEBUG=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"calagopus",meta:{name:"Calagopus",description:"Calagopus is a modern open-source game server management panel built in Rust and React. It is a high-performance reimplementation of Pterodactyl Panel featuring a refreshed UI, an extensible plugin architecture, and container-based game server management. It supports Pterodactyl-compatible eggs and migration from existing Pterodactyl or Pelican installations.",instructions:"After deployment, navigate to the provided domain. An out-of-box experience (OOBE) wizard will guide you through creating the initial admin account and configuration. Do not change the APP_ENCRYPTION_KEY environment variable after initial setup, as it is used to encrypt all stored secrets.",changeLog:[{date:"2026-06-12",description:"First release"}],links:[{label:"Website",url:"https://calagopus.com"},{label:"Docs",url:"https://calagopus.com/docs"},{label:"GitHub",url:"https://github.com/calagopus/panel"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"calagopus"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/calagopus/panel:1.0.9"}}},benefits:[{title:"Game Server Management",description:"Manage and monitor game servers with a modern, high-performance interface."},{title:"Pterodactyl Compatible",description:"Import existing Pterodactyl and Pelican eggs and migrate configurations."},{title:"Rust-Powered Backend",description:"High-performance backend built with Tokio and Axum for speed and reliability."}],features:[{title:"Container-Based Management",description:"Deploy and manage game servers using Docker containers."},{title:"Plugin Architecture",description:"Extend functionality with a built-in extensible plugin system."},{title:"OOBE Setup Wizard",description:"Guided out-of-box setup for initial admin account creation."},{title:"Real-Time Monitoring",description:"View live CPU, memory, disk, and network stats for each game server."},{title:"Automatic Migrations",description:"Database migrations run automatically on startup via DATABASE_MIGRATE."}],tags:["Game Server","Management","Self-Hosted","Gaming","Infrastructure"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["APP_ENCRYPTION_KEY=".concat(o),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-redis:6379"),"DATABASE_MIGRATE=true","APP_PRIMARY=true","PORT=8000"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"data",mountPath:"/var/lib/calagopus"},{type:"volume",name:"logs",mountPath:"/var/log/calagopus"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"calcom",meta:{name:"Calcom",description:"Cal.com is a versatile scheduling app designed to streamline the process of setting up meetings, appointments, and events. It allows users to set their availability, connect their existing calendars, and share a personal link for others to book a meeting at a time that works for both parties. The app ensures you never get double booked by checking for conflicts across all your calendars. It also offers workflow automation, enabling you to build processes around your events with automatic notifications, reminders, and follow-ups. With features like round-robin scheduling, routing forms, and meeting overload prevention, Cal.com adapts to any business, making it an ideal solution for doctors, companies, teachers, and experts. The app is available in over 26 languages and can be embedded anywhere for easy access. It also offers simple rescheduling and requires confirmation to ensure smooth scheduling.",instructions:"After deployment, open the app URL and complete the onboarding wizard to\ncreate your admin account. SMTP credentials are required for booking\nconfirmation and reminder emails \u2014 set them in the form before deploying.\nFor Gmail, use an App Password (not your account password) and set the\nSMTP host to smtp.gmail.com, port 587. For other providers check their\nSMTP documentation. The Prisma Studio option exposes a database browser\non a separate domain \u2014 only enable it in trusted environments.\n",changeLog:[{date:"2023-04-03",description:"First Release"},{date:"2025-01-09",description:"Version bumped to v4.7.8"},{date:"2025-02-21",description:"Version bumped to v5.0.4"},{date:"2025-07-15",description:"Version bumped to v5.4.20"},{date:"2025-12-24",description:"Version bumped to v6.0.5"},{date:"2026-02-18",description:"Version bumped to v6.1.16"},{date:"2026-04-29",description:"Version bumped to v6.2.0"},{date:"2026-05-13",description:"Added SMTP credentials and NEXTAUTH_URL"}],links:[{label:"Website",url:"https://cal.com"},{label:"Github",url:"https://github.com/calcom/cal.com"},{label:"Docker",url:"https://hub.docker.com/r/calcom/cal.com"}
1],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","smtpHost","smtpPort","smtpUser","smtpPassword","smtpFrom","smtpFromName"],properties:{enableStudio:{type:"boolean",title:"Enable Prisma Studio",default:!1},appServiceName:{type:"string",title:"App Service Name",default:"calcom"},appServiceImage:{type:"string",title:"App Service Image",default:"calcom/cal.com:v6.2.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"calcom-db"},smtpHost:{type:"string",title:"SMTP Host",description:"Hostname of your SMTP server (e.g. smtp.gmail.com)",default:"smtp.gmail.com"},smtpPort:{type:"number",title:"SMTP Port",description:"465 for SSL, 587 for TLS/STARTTLS",default:587},smtpUser:{type:"string",title:"SMTP Username",description:"Your SMTP login / email address",default:""},smtpPassword:{type:"string",title:"SMTP Password",description:"Your SMTP password or app-specific password",default:""},smtpFrom:{type:"string",title:"Email From Address",description:"Address that booking emails are sent from",default:"[email protected]"},smtpFromName:{type:"string",title:"Email From Name",description:"Display name shown in booking emails",default:"Cal.com"}}},benefits:[{title:"Efficient Scheduling",description:"Cal.com is designed to make scheduling meetings and events effortless. It eliminates the need for back-and-forth emails, allowing you to focus on the meeting itself rather than the process of scheduling it."},{title:"Avoid Double Booking",description:"The app reads your availability from all your existing calendars, ensuring you never get double booked. It checks for conflicts across all of your calendars and only offers times that are open."},{title:"Automated Workflow",description:"Cal.com enables you to build processes around your events. Notifications, reminders, and follow-ups are automatically taken care of, making your scheduling workflow seamless and efficient."},{title:"Adaptable Scheduling",description:"The app adapts to any business, from doctors scheduling patients to companies booking candidates for interviews. It's a versatile tool that can be tailored to suit your specific scheduling needs."}],features:[{title:"Set Your Availability",description:"With Cal.com, you can set repeating schedules for the times of the day and week that you want people to be able to book you. This ensures that meetings are scheduled at a time that works for both parties."},{title:"Share Your Link",description:"The app allows you to share your personal Cal.com link, making it incredibly easy for people to book a meeting with you."},{title:"Workflow Automation",description:"Cal.com offers workflow automation features, including notifications, reminders, and follow-ups. This ensures that you stay on top of your schedule and never miss a meeting."},{title:"Round-Robin Scheduling",description:"This feature ensures even distribution of calls across your team. Collective availability makes it easy to book your team when everyone is available."},{title:"Routing Forms",description:"Ensure every booker is connected to the right person with Routing Forms. Ask screening questions and automatically connect bookers to the right person, event, or even to a link."},{title:"Limit Overbooking",description:"You can limit people from overbooking you on a weekly or daily basis. Put breathing room between meetings with buffers either side and prevent surprises with minimum notice periods."},{title:"Customization",description:"Cal.com allows you to customize your scheduling experience. Set availability, location, duration, and more on a per-link basis. Send bookings to different calendars or set a default."}],tags:["Calendars","Scheduling","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=["DATABASE_DIRECT_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"NEXTAUTH_SECRET=".concat(btoa(y(32))),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","CALENDSO_ENCRYPTION_KEY=".concat(btoa(y(24))),"NEXT_PUBLIC_WEBAPP_URL=https://$(PRIMARY_DOMAIN)","EMAIL_FROM=".concat(e.smtpFrom),"EMAIL_FROM_NAME=".concat(e.smtpFromName),"EMAIL_SERVER_HOST=".concat(e.smtpHost),"EMAIL_SERVER_PORT=".concat(e.smtpPort),"EMAIL_SERVER_USER=".concat(e.smtpUser),"EMAIL_SERVER_PASSWORD=".concat(e.smtpPassword)];return e.enableStudio&&t.push({type:"app",data:{serviceName:e.appServiceName+"-studio",source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5555}],deploy:{command:"npx prisma studio"},env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)")].join("\n")}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:i.join("\n")}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"calibre-web-automated",meta:{name:"Calibre Web Automated",description:"Calibre Web Automated (CWA) is an enhanced version of Calibre Web with automated book processing capabilities. It automatically adds books to your library from an ingest directory, supports Hardcover API integration for enhanced metadata, and provides network share compatibility. CWA processes books according to your configured settings and removes them from the ingest directory after processing, making it perfect for automated eBook management workflows.",instructions:"Default login credentials are admin/admin123",changeLog:[{date:"2025-09-12",description:"Template Release"},{date:"2025-12-24",description:"Updated to V3.1.4"}],links:[{label:"Docker Hub",url:"https://hub.docker.com/r/crocodilestick/calibre-web-automated"},{label:"Github",url:"https://github.com/crocodilestick/calibre-web-automated"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"calibre-web-automated"},appServiceImage:{type:"string",title:"App Service Image",default:"crocodilestick/calibre-web-automated:V3.1.4"},timezone:{type:"string",title:"Timezone",default:"UTC",description:"Timezone for the application"},hardcoverToken:{type:"string",title:"Hardcover API Token",default:"",description:"Hardcover API key for enhanced metadata (get one at https://docs.hardcover.app/api/getting-started/)"},networkShareMode:{type:"boolean",title:"Network Share Mode",default:!1,description:"Enable if your library is on a network share (NFS/SMB) to reduce locking issues"},enablePlugins:{type:"boolean",title:"Enable Calibre Plugins",default:!1,description:"Enable support for Calibre plugins (experimental)"}}},benefits:[{title:"Automated Book Processing",description:"Automatically process and add books to your library from an ingest directory, removing the need for manual book management and organization."},{title:"Enhanced Metadata Integration",description:"Integrate with Hardcover API for richer book metadata, covers, and information to keep your library well-organized and informative."},{title:"Network Share Compatibility",description:"Optimized for network storage solutions like NFS and SMB shares with reduced locking issues and improved performance on network-attached storage."}],features:[{title:"Automated Ingest Processing",description:"Drop books into the ingest directory and CWA will automatically process them according to your configured settings, then remove them after processing."},{title:"Hardcover API Integration",description:"Enhanced metadata retrieval using Hardcover API for better book information, covers, and categorization."},{title:"Plugin Support",description:"Support for Calibre plugins to extend functionality and customize your book processing workflow (experimental feature)."},{title:"Network Storage Optimization",description:"Special optimizations for network-attached storage to prevent locking issues and improve performance on shared drives."},{title:"Flexible Port Configuration",description:"Customizable web server port to avoid conflicts with other services running on your system."},{title:"Automatic Library Creation",description:"If you don't have an existing library, CWA will automatically create one at the specified location with proper configuration."}],tags:["eBook Management","Digital Library","Automation","Self-Hosted","Calibre","Books","Hardcover"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=".concat(e.timezone),"HARDCOVER_TOKEN=".concat(e.hardcoverToken),"NETWORK_SHARE_MODE=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8083}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"ingest",mountPath:"/cwa-book-ingest"},{type:"volume",name:"library",mountPath:"/calibre-library"},{type:"volume",name:"plugins",mountPath:"/config/.config/calibre/plugins"}]}}),{services:t}}},{slug:"calibre-web",meta:{name:"Calibre Web",description:"Calibre Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is a Python web application that provides a web interface for the Calibre eBook library. It supports multiple users, user management, and provides a modern, responsive interface for accessing your eBook collection from any device.",instructions:"Default login credentials are admin/admin123",changeLog:[{date:"2025-09-12",description:"Template Release"},{date:"2025-12-24",description:"Updated to nightly-version-eb8b0096"},{date:"2026-02-18",description:"Version bumped to 0.6.26"}],links:[{label:"Docker Hub",url:"https://hub.docker.com/r/linuxserver/calibre-web"},{label:"Github",url:"https://github.com/janeczku/calibre-web"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"calibre-web"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/calibre-web:0.6.26"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC",description:"Timezone for the application"},enableDockerMods:{type:"boolean",title:"Enable Docker Mods",default:!0,description:"Enable universal calibre docker mods for additional functionality"},enableOAuthRelax:{type:"boolean",title:"Enable OAuth Relax Token Scope",default:!0,description:"Relax OAuth token scope for better compatibility"}}},benefits:[{title:"Web-Based eBook Management",description:"Access your entire Calibre eBook library through a modern, responsive web interface from any device without needing the Calibre desktop application."},{title:"Multi-User Support",description:"Share your eBook collection with family and friends through user management features with different permission levels and access controls."},{title:"Cross-Platform Access",description:"Read and manage your eBooks from any device with a web browser, including smartphones, tablets, and computers."}],features:[{title:"eBook Library Browser",description:"Browse your entire eBook collection with advanced filtering, searching, and categorization options to quickly find the books you want to read."},{title:"Online Reading",description:"Read eBooks directly in your web browser with a built-in reader that supports various formats including EPUB, PDF, and more."},{title:"Download & Sync",description:"Download eBooks to your devices or sync them across multiple platforms for offline reading convenience."},{title:"User Management",description:"Create multiple user accounts with different permission levels, allowing family members or team members to access the library with appropriate restrictions."},{title:"Metadata Management",description:"Edit book metadata, covers, and descriptions directly through the web interface to keep your library organized and up-to-date."},{title:"Reading Statistics",description:"Track your reading progress, statistics, and reading history to monitor your reading habits and discover new books."}],tags:["eBook Management","Digital Library","Reading","Self-Hosted","Calibre","Books"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["PUID=1000","PGID=1000","TZ=".concat(e.timezone)];return e.enableDockerMods&&a.push("DOCKER_MODS=linuxserver/mods:universal-calibre"),e.enableOAuthRelax&&a.push("OAUTHLIB_RELAX_TOKEN_SCOPE=1"),t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8083}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"books",mountPath:"/books"}]}}),{services:t}}},{slug:"calibre",meta:{name:"Calibre",description:"Calibre is a comprehensive e-book management tool designed to organize, convert, and read your e-book collection. It supports most of the major e-book formats and is compatible with various e-book reader devices. Calibre can fetch metadata for your books from the internet, enhancing your library with relevant information. It also allows you to download newspapers and convert them into e-books for a more convenient reading experience. The app is cross-platform, running on Linux, Windows, and macOS. With Calibre, you can easily add books to your library, convert them to a format your reader understands, and send them to your device. It also offers advanced features like e-book editing, metadata editing, and e-book comparison. The app is user-friendly, but also offers a Command Line Interface for more power and versatility.",instructions:"Login using user abc with your set password",changeLog:[{date:"2023-3-1",description:"first release"},{date:"2023-7-24",description:"update"},{date:"2024-09-30",description:"Version updated to 7.19.0"},{date:"2025-01-09",description:"Version bumped to 7.23.0"},{date:"2025-02-21",description:"Version bumped to 7.26.0"},{date:"2025-07-15",description:"Version bumped to 8.6.0"},{date:"2025-12-24",description:"Version bumped to 8.16.2"}],links:[{label:"Website",url:"https://calibre-ebook.com/"},{label:"Documentation",url:"https://manual.calibre-ebook.com/"},{label:"Github",url:"https://github.com/kovidgoyal/calibre"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"calibre"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/calibre:8.16.2"},password:{type:"string",title:"Password"}}},benefits:[{title:"E-Book Management",description:"Calibre is an e-book library manager that allows you to view, convert, and catalog e-books in most of the major e-book formats. It provides a centralized platform for all your e-book needs."},{title:"Fetch Metadata",description:"Calibre can go out to the Internet and fetch metadata for your books, providing you with detailed information and enhancing your reading experience."},{title:"News Download",description:"Calibre can download newspapers and convert them into e-books for convenient reading, keeping you updated with the latest news in a format that's comfortable for you."},{title:"Cross-Platform",description:"Calibre is cross-platform, running on Linux, Windows, and macOS, making it accessible no matter what operating system you use."}],features:[{title:"E-Book Conversion",description:"Calibre allows you to convert books to a format your reader understands. It makes the conversion process a breeze, with just a few clicks needed."},{title:"E-Book Viewer",description:"Calibre comes with an e-book viewer that allows you to read your books right from the app. It supports a wide range of e-book formats."},{title:"Device Detection",description:"Calibre can detect many e-book reader devices. Once your device is connected, you can easily send books to your device for offline reading."},{title:"Metadata Editing",description:"Calibre allows you to edit e-book metadata, giving you full control over the information associated with your e-books."}],tags:["Documents","E-Commerce"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PASSWORD=".concat(e.password),"TZ=Etc/UTC","PUID=1000","PGID=1000"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"books",mountPath:"/books"},{type:"volume",name:"data",mountPath:"/config"}]}}),{services:t}}},{slug:"cap-captcha",meta:{name:"Cap Captcha",description:"Cap is a lightweight, open-source CAPTCHA alternative to reCAPTCHA, hCaptcha and Cloudflare Turnstile. It uses proof-of-work and instrumentation challenges instead of visual puzzles, so users are verified in the background without picking out crosswalks or storefronts. The widget is about 250x smaller than hCaptcha, sends zero telemetry, and this standalone server includes an admin dashboard for managing site keys and viewing challenge analytics.",instructions:"Open the dashboard at your assigned domain and log in with the admin key you set below (auto-generated if left blank \u2014 find it in the service environment variables after deployment). Create a site key from the dashboard, then drop Cap's widget script into your site and point it at this server's domain, per the integration guide at trycap.dev/guide.",changeLog:[{date:"2026-07-27",description:"first release"}],links:[{label:"Website",url:"https://trycap.dev"},{label:"GitHub",url:"https://github.com/tiagozip/cap"},{label:"Documentation",url:"https://trycap.dev/guide"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cap-captcha"},appServiceImage:{type:"string",title:"App Service Image",default:"tiago2/cap:3.1.8"},adminKey:{type:"string",title:"Admin Key",description:"Password for the admin dashboard. Auto-generated if left blank \u2014 find it in the service environment variables after deployment."}}},benefits:[{title:"Lightweight Widget",description:"About 250x smaller than hCaptcha, loading in milliseconds"},{title:"Privacy-First",description:"No visual puzzles, no tracking, zero telemetry sent anywhere"},{title:"Self-Hosted",description:"Run your own CAPTCHA infrastructure instead of a third party"}],features:[{title:"Proof-of-Work Challenges",description:"Verifies users invisibly instead of asking them to solve puzzles"},{title:"Admin Dashboard",description:"Manage site keys and view challenge analytics from a browser"},{title:"Fully Customizable",description:"Change colors, size, position and icons with CSS variables"},{title:"Drop-In Replacement",description:"Swap out reCAPTCHA, hCaptcha or Turnstile with minimal changes"}],tags:["Security","Captcha","Developer Tools","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=e.adminKey||v();return t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["ADMIN_KEY=".concat(i),"REDIS_URL=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379")].join("\n")}}),{services:t}}},{slug:"cap",meta:{name:"Cap",description:"Cap is an open source screen recording and sharing platform, providing a lightweight alternative to Loom. With Cap, you can create beautiful, shareable screen recordings with instant sharing capabilities or local recording with full editing features. It supports 4K recording, 60fps capture, and offers both cloud and self-hosted storage options. Perfect for creating tutorials, presentations, educational content, and team collaboration. Cap includes features like auto-generated captions, titles, summaries, chapters, and AI-powered transcriptions.",instructions:null,changeLog:[{date:"2025-07-29",description:"first release"}],links:[{label:"Website",url:"https://cap.so/"},{label:"GitHub",url:"https://github.com/capsoftware/cap"},{label:"Documentation",url:"https://cap.so/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","minioServiceImage","minioAccessKey","minioSecretKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cap-web"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/capsoftware/cap-web:latest"},minioServiceImage:{type:"string",title:"MinIO Service Image",default:"bitnami/minio:latest"},minioAccessKey:{type:"string",title:"MinIO Access Key",default:"capS3root"},minioSecretKey:{type:"string",title:"MinIO Secret Key",default:"capS3root"},s3BucketName:{type:"string",title:"S3 Bucket Name",default:"capso",description:"(Optional) can be configured later"},s3Region:{type:"string",title:"S3 Region",default:"us-east-1",description:"(Optional) can be configured later"}}},benefits:[{title:"Open Source Screen Recording",description:"Cap is a fully open source alternative to Loom, giving you complete control over your screen recording infrastructure. Record, edit, and share videos without vendor lock-in."},{title:"Professional Quality Output",description:"Create high-quality screen recordings with 4K support, 60fps capture, and intelligent compression. Perfect for professional presentations, tutorials, and educational content."},{title:"Self-Hosted Storage",description:"Use your own S3-compatible storage with MinIO included in this template. Keep full control over your recordings and data with custom storage solutions."},{title:"AI-Powered Features",description:"Automatically generate titles, summaries, clickable chapters, and transcriptions for every recording using Cap's built-in AI features."}],features:[{title:"Instant Sharing",description:"Hit record, stop, and instantly share a link. Your video goes live in seconds with automatically generated captions, titles, and summaries."},{title:"Studio Mode",description:"Record locally with full editing capabilities for maximum quality control. Perfect for detailed tutorials and professional content creation."},{title:"Cross-Platform Recording",description:"Native support for recording across different platforms with consistent quality and performance. Works seamlessly with your existing workflow."},{title:"Team Collaboration",description:"Share recordings with your team for feedback, collaboration, and async communication. Replace meetings with shareable screen recordings."},{title:"Custom Storage Integration",description:"Connect your own S3 bucket or use the included MinIO storage. Perfect for teams with compliance requirements or data sovereignty needs."},{title:"Privacy Controls",description:"Choose between instant sharing and local recording. Password protect sensitive recordings or keep everything local-only for maximum privacy."}],tags:["Productivity","Video","Developer Tools"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=v(),i=y(64),o=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=mysql://mysql:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-mysql:3306/$(PROJECT_NAME)"),"WEB_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","DATABASE_ENCRYPTION_KEY=".concat(i),"NEXTAUTH_SECRET=".concat(o),"CAP_AWS_ACCESS_KEY=".concat(e.minioAccessKey),"CAP_AWS_SECRET_KEY=".concat(e.minioSecretKey),"CAP_AWS_BUCKET=".concat(e.s3BucketName),"CAP_AWS_REGION=".concat(e.s3Region),"S3_PUBLIC_ENDPOINT=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-minio.$(EASYPANEL_HOST)"),"S3_INTERNAL_ENDPOINT=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-minio:9000")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),env:["MINIO_API_PORT_NUMBER=3902","MINIO_CONSOLE_PORT_NUMBER=3903","MINIO_ROOT_USER=".concat(e.minioAccessKey),"MINIO_ROOT_PASSWORD=".concat(e.minioSecretKey)].join("\n"),source:{type:"image",image:e.minioServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}],deploy:{command:'minio server /data --console-address ":9001"'}}}),{services:t}}},{slug:"carbone",meta:{name:"Carbone",description:"Carbone is a high-performance, self-hosted document generation engine. It allows you to generate reports, invoices, and documents in various formats (e.g., PDF, DOCX, XLSX) using JSON data and template-based rendering. Carbone is designed for scalability and speed, making it ideal for automation, bulk document generation, and seamless integration into various systems and workflows. It supports custom templates and advanced features like charts, sub-reports, and conditional formatting to meet a wide range of business needs.",instructions:null,changeLog:[{date:"2025-02-12",description:"First Release"}
1,{date:"2025-07-15",description:"Version bumped to 5.0.0-beta.10"},{date:"2025-12-24",description:"Version bumped to 5.0.9"},{date:"2026-02-18",description:"Version bumped to 5.2.0"},{date:"2026-04-29",description:"Version bumped to 5.4.5"}],links:[{label:"Documentation",url:"https://carbone.io/documentation/design/overview/getting-started.html"},{label:"Github",url:"https://github.com/carboneio/carbone"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"carbone"},appServiceImage:{type:"string",title:"App Service Image",default:"carbone/carbone-ee:full-5.4.5"},carboneKey:{type:"string",title:"Carbone License Key"}}},benefits:[{title:"High-Performance Document Generation",description:"Carbone provides fast and efficient document generation, making it suitable for high-volume environments where speed and reliability are critical."},{title:"Template-Based Rendering",description:"Create templates in familiar formats like DOCX and XLSX, and use JSON data to generate documents without complex coding."},{title:"Multi-Format Support",description:"Generate documents in various formats including PDF, DOCX, XLSX, ODT, and more, allowing flexible output options for different business needs."}],features:[{title:"JSON Data Integration",description:"Use simple JSON data structures to populate templates and generate documents dynamically with minimal setup."},{title:"Customizable Templates",description:"Support for creating custom templates with conditional formatting, sub-reports, and advanced charting options."},{title:"Multi-Language Support",description:"Carbone supports multiple languages for document generation, making it a global solution for businesses."},{title:"REST API",description:"Seamlessly integrate Carbone with other applications using its REST API for automated document generation."},{title:"Cloud and On-Premises",description:"Deploy Carbone in the cloud or on-premises depending on your security and infrastructure requirements."}],tags:["Document Generation","Automation","Reporting","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[];return a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["CARBONE_EE_LICENSE=".concat(null!==(t=e.carboneKey)&&void 0!==t?t:""),"CARBONE_EE_STUDIO=true"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}],mounts:[{type:"volume",name:"template",mountPath:"/app/template"}]}}),{services:a}}},{slug:"castopod",meta:{name:"Castopod",description:"Castopod is an open-source hosting platform made for podcasters who want full control over their content. It provides a comprehensive solution for creating, managing, and distributing podcasts with features like built-in analytics, automatic RSS feed generation, and support for the ActivityPub protocol for social interactions. Castopod helps podcasters save time with automatic episode publishing to podcast platforms and social media. The platform includes powerful tools for audience engagement, SEO optimization, and monetization options. With its modern, intuitive interface, Castopod makes podcast hosting accessible while giving creators complete ownership of their content and audience data.",instructions:'First install the application by going on this path "/cp-install"',changeLog:[{date:"2025-03-20",description:"Initial template release (1.13.4)"},{date:"2025-12-24",description:"Updated default image to 1.13.8"},{date:"2026-02-18",description:"Version bumped to 1.15.1"},{date:"2026-04-29",description:"Version bumped to 1.15.5"}],links:[{label:"Website",url:"https://castopod.org/"},{label:"Documentation",url:"https://docs.castopod.org/"},{label:"Github",url:"https://github.com/ad-aures/castopod"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"castopod"},appServiceImage:{type:"string",title:"App Service Image",default:"castopod/castopod:1.15.5"}}},benefits:[{title:"Full Ownership",description:"Host your podcasts on your own infrastructure, maintaining complete control over your content and audience data."},{title:"Built-in Analytics",description:"Access detailed insights about your audience without relying on third-party services or compromising listener privacy."},{title:"Social Features",description:"Engage with your audience through built-in comments, likes, and federation with the Fediverse via ActivityPub."}],features:[{title:"Podcast Management",description:"Create multiple podcasts, manage episodes, and automatically generate RSS feeds compatible with all podcast platforms."},{title:"Automatic Publishing",description:"Save time with automatic episode publishing to podcast directories and social media platforms."},{title:"Embeddable Player",description:"Easily embed a customizable podcast player on any website to showcase your episodes."},{title:"Monetization Options",description:"Integrate with various monetization methods including value-for-value, premium content, and sponsorships."}],tags:["Podcast","Audio","Content Management","ActivityPub","Social","Podcast Hosting","Podcast Management","Podcast Player","Podcast Analytics","Podcast Social Media"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["CP_DATABASE_PASSWORD=".concat(a),"CP_DATABASE_USERNAME=mariadb","CP_DATABASE_NAME=$(PROJECT_NAME)","CP_DATABASE_HOSTNAME=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"CP_BASEURL=https://$(PRIMARY_DOMAIN)","CP_ANALYTICS_SALT=changeme","CP_CACHE_HANDLER=redis","CP_REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"CP_REDIS_PASSWORD=".concat(i)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:8e3}],mounts:[{type:"volume",name:"castopod-media",mountPath:"/var/www/castopod/public/media"}]}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"centrifugo",meta:{name:"Centrifugo",description:"Centrifugo is a scalable real-time messaging server that can be used to add real-time features to your applications. It supports WebSocket and SockJS connections, providing a robust solution for real-time communication.",instructions:null,changeLog:[{date:"2025-04-03",description:"Initial template release"},{date:"2025-12-24",description:"Updated to Centrifugo v6.5.2"},{date:"2026-02-18",description:"Version bumped to v6.6.0"},{date:"2026-04-29",description:"Version bumped to v6.7.1"}],links:[{label:"Website",url:"https://centrifugal.dev/"},{label:"Documentation",url:"https://centrifugal.dev/docs/getting-started/introduction"},{label:"GitHub",url:"https://github.com/centrifugal/centrifugo"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminPassword","adminSecret","apiKey","hmacSecretKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"centrifugo"},appServiceImage:{type:"string",title:"Centrifugo Image",default:"centrifugo/centrifugo:v6.7.1"},adminPassword:{type:"string",title:"Admin Password",default:"password"},adminSecret:{type:"string",title:"Admin Secret",default:"secret"},apiKey:{type:"string",title:"API Key",default:"api-key"},hmacSecretKey:{type:"string",title:"HMAC Secret Key",default:"secret"}}},benefits:[{title:"Real-time Communication",description:"Enable real-time features in your applications."},{title:"Scalable",description:"Built to handle high loads and scale horizontally."},{title:"WebSocket Support",description:"Native WebSocket and SockJS protocol support."},{title:"Easy Integration",description:"Simple to integrate with existing applications."}],features:[{title:"Web Interface",description:"Built-in web interface for monitoring and management."},{title:"Multiple Protocols",description:"Support for WebSocket, SockJS, and HTTP long-polling."},{title:"Authentication",description:"Flexible authentication and authorization options."},{title:"Channel Management",description:"Efficient channel-based message routing."}],tags:["Real-time","WebSocket","Messaging","Communication","Server"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a='{\n  "client": {\n    "token": {\n      "hmac_secret_key": "'.concat(e.hmacSecretKey,'"\n    },\n    "allowed_origins": ["*"]\n  },\n  "http_api": {\n    "key": "').concat(e.apiKey,'"\n  },\n  "admin": {\n    "password": "').concat(e.adminPassword,'",\n    "secret": "').concat(e.adminSecret,'",\n    "enabled": true\n  }\n}');return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},deploy:{command:"centrifugo -c config.json"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"file",content:a,mountPath:"/centrifugo/config.json"}]}}),{services:t}}},{slug:"cerbos",meta:{name:"Cerbos",description:"Cerbos is an open-source authorization layer that lets you define context-aware access control rules for your application in simple YAML policies, managed through your existing Git-ops workflow. It runs as a stateless Policy Decision Point (PDP) that your backend services call over HTTP or gRPC to check whether a principal can perform an action on a resource, supporting everything from simple RBAC to fully dynamic, attribute-based rules.",instructions:'Cerbos is an API service with no web dashboard \u2014 there is nothing to log into. Write your policy YAML files into the "policies" volume (browse it from the service\'s file manager); Cerbos watches that folder and picks up changes automatically, no restart needed. Call the HTTP API at your assigned domain on port 3592, or use the gRPC endpoint on the published port 3593 from other services in this project.',changeLog:[{date:"2026-07-30",description:"first release"}],links:[{label:"Website",url:"https://www.cerbos.dev"},{label:"GitHub",url:"https://github.com/cerbos/cerbos"},{label:"Documentation",url:"https://docs.cerbos.dev"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cerbos"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/cerbos/cerbos:0.54.0"}}},benefits:[{title:"Policy As Code",description:"Define access rules in YAML, versioned in your own Git repository"},{title:"Stateless",description:"No database required \u2014 policies are loaded straight from disk"},{title:"Self-Hosted",description:"Runs entirely on your own infrastructure, no data leaves your project"}],features:[{title:"RBAC and ABAC",description:"Start with simple roles, then add dynamic, attribute-based conditions"},{title:"HTTP and gRPC APIs",description:"Call CheckResources and PlanResources from any language or SDK"},{title:"Live Policy Reloading",description:"Edit policy files and Cerbos picks up the changes automatically"},{title:"Derived Roles",description:"Extend RBAC roles dynamically based on request context"}],tags:["Security","Authorization","Developer Tools","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3592}],ports:[{protocol:"tcp",published:3593,target:3593}],mounts:[{type:"volume",name:"policies",mountPath:"/policies"}]}}),{services:t}}},{slug:"changedetection",meta:{name:"Change Detection",description:"Changedetection.io is an intelligent tool designed to monitor changes on websites. It is perfect for smart shoppers, data journalists, research engineers, data scientists, security researchers, and more. The app allows you to watch up to 5,000 URLs and supports over 85 notification formats. It is capable of monitoring simple changes on a website, like price alterations or restock notifications, to deep inspections such as PDF text changes, JSON and XML monitoring, and extensive text triggers. The app also features intelligent product restock detection, making it easier for you to keep track of product availability. Additionally, it can perform interactive browser steps such as filling in text boxes, clicking buttons, and setting up your change detection scenario. With Changedetection.io, you can live your data life proactively, receiving notifications straight away when changes occur on your watched websites.",instructions:null,changeLog:[{date:"2022-08-15",description:"first release"},{date:"2024-09-30",description:"Version changed to 0.46.04"},{date:"2025-01-09",description:"Version bumped to 0.48.05"},{date:"2025-02-21",description:"Version bumped to 0.49"},{date:"2025-12-24",description:"Version bumped to 0.51"},{date:"2026-02-18",description:"Version bumped to 0.53"},{date:"2026-04-29",description:"Version bumped to 0.55.3"}],links:[{label:"Website",url:"https://changedetection.io"},{label:"Github",url:"https://github.com/dgtlmoon/changedetection.io"}],contributors:[{name:"Bedeoan Raul",url:"https://github.com/bedeoan"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"changedetection"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/dgtlmoon/changedetection.io:0.55.3"}}},benefits:[{title:"Real-Time Website Change Detection",description:"Stay ahead of the curve by receiving instant notifications when a website you're monitoring undergoes changes. This is particularly useful for tracking price changes, restock notifications, and more."},{title:"Intelligent Product Restock Detection",description:"Never miss out on a restock again. Our intelligent product restock detection feature alerts you the moment a product is back in stock."},{title:"Extensive Text Triggers",description:"Our app allows you to set up extensive text triggers, enabling you to receive notifications based on specific changes in the text content of a website."},{title:"Affordable Subscription",description:"For just $8.99 per month, you can monitor up to 5,000 URLs. This is half the price of other website change monitoring services, making it a cost-effective solution."}],features:[{title:"PDF Text Support",description:"Our app supports PDF text monitoring, allowing you to track and receive notifications when a PDF file undergoes text changes."},{title:"JSON and XML Monitoring",description:"Stay updated with changes in JSON and XML data on websites. This feature is particularly useful for developers and data scientists."},{title:"Visual Selector Tool",description:"Target specific parts of a webpage for monitoring using our Visual Selector tool. This feature allows you to focus on the content you're most interested in."},{title:"Interactive Browser Steps",description:"Set up your change detection scenario by performing interactive browser steps such as filling in text boxes, clicking buttons, and more."},{title:"85+ Notification Formats Supported",description:"Receive notifications in a format that suits you. Our app supports over 85 notification formats, including Discord, Email, Slack, Telegram, API calls, and many more."}],tags:["Monitoring","Data","Notifications"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"datastore",mountPath:"/datastore"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}]}}),{services:t}}},{slug:"changerawr",meta:{name:"Changerawr",description:"Changerawr is a modern, open-source change management platform designed to help organizations track, manage, and implement changes efficiently. Built with Next.js and PostgreSQL, it provides a comprehensive solution for change requests, approval workflows, impact assessment, and rollback procedures. The platform features real-time collaboration, automated notifications, audit trails, and detailed reporting capabilities. Perfect for DevOps teams, IT departments, and organizations that need to maintain control over their change management processes while ensuring transparency and accountability.",instructions:"To enable automatic updates for Changerawr, configure the Easypanel Project ID, Service ID, panel URL and API token in Environment Variables of Changerawr App Service. The
1se configurations allow the system to automatically detect and apply new updates. Make sure not to use CloudFlare Zero Trust, that will causes issues.",changeLog:[{date:"2025-08-08",description:"First Release (v1.0.4)"},{date:"2026-04-19",description:"Added website link; pinned OAuth2 sidecar image by digest; removed placeholder Easypanel secrets from schema and generated env"},{date:"2026-04-29",description:"Version bumped to v1.0.6"}],links:[{label:"Website",url:"https://github.com/supernova3339/changerawr"},{label:"Github",url:"https://github.com/supernova3339/changerawr"},{label:"Documentation",url:"https://github.com/supernova3339/changerawr#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"changerawr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/supernova3339/changerawr:v1.0.6"},enableOAuth2:{type:"boolean",title:"Enable OAuth2 Server",description:"Enable OAuth2 server for Easypanel integration",default:!1},oauth2ServiceImage:{type:"string",title:"OAuth2 Service Image",default:"ghcr.io/supernova3339/ep-oauth2-serv@sha256:81832fa28a9e109b619f61514b930b3fb7a588845469b5c291297af236209785"},easypanelApiToken:{type:"string",title:"Easypanel API Token (OAuth2 sidecar)",description:"Easypanel API token for the OAuth2 service (required when OAuth2 is enabled). Create a token in your Easypanel instance; do not use a placeholder."},easypanelUrl:{type:"string",title:"Easypanel URL",description:"Base URL of your Easypanel instance for the OAuth2 sidecar (when OAuth2 is enabled).",default:"https://$(EASYPANEL_HOST)"},easypanelProjectId:{type:"string",title:"Easypanel Project ID",description:"Project ID from Easypanel for automatic updates (optional; set in the template or later in the app service environment)."},easypanelServiceId:{type:"string",title:"Easypanel Service ID",description:"Service ID from Easypanel for automatic updates (optional; set in the template or later in the app service environment)."},easypanelApiKey:{type:"string",title:"Easypanel API Key (main app)",description:"API key the Changerawr app uses for Easypanel automatic updates (optional; set in the template or later in the app service environment)."}}},benefits:[{title:"Integrated with Easypanel",description:"Enjoy a seamless experience with Changerawr on Easypanel with SSO and automatic updates."},{title:"Full-text search",description:"Effortlessly browse everything, immediately. All your knowledge in one place, just a key bind away."},{title:"Powerful Content Editor",description:"Buttons, Embeds, Alerts, and more! Write changelogs that look professional to your team and your customers. efficiency."},{title:"Audit Logs",description:"Know everything that happens, when it happens. From approving a request to logging in, you get to know everything that has ever happened."},{title:"AI Powered",description:"Optional AI Integration for increasing your workflow 10x."},{title:"Tags & Versioning",description:"Organize your changelogs exactly how you want with colorful tags and modern versioning."}],features:[{title:"Change Request Management",description:"Create, track, and manage change requests with detailed information, attachments, and categorization for organized change handling."},{title:"Approval Workflows",description:"Configure custom approval workflows with multi-stage approvals, escalation rules, and role-based access control for proper governance."},{title:"Risk Assessment",description:"Built-in risk assessment tools with impact analysis, dependency mapping, and rollback planning for safer change implementation."},{title:"Calendar & Scheduling",description:"Integrated calendar system for scheduling changes, avoiding conflicts, and coordinating implementation timelines across teams."},{title:"Integration Support",description:"GitHub integration and API support for connecting with existing development tools and CI/CD pipelines for seamless workflows."},{title:"Notification System",description:"Automated email and in-app notifications keep stakeholders informed about change status updates, approvals, and deadlines."}],tags:["Change Management","DevOps","Project Management","Workflow","Compliance"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a,i,o,n=[],r=y(32),s=y(32),c=y(32),l=y(32),p=v(),d=y(32);return n.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:p,image:"postgres:17"}}),e.enableOAuth2&&n.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-oauth2"),source:{type:"image",image:e.oauth2ServiceImage||"ghcr.io/supernova3339/ep-oauth2-serv@sha256:81832fa28a9e109b619f61514b930b3fb7a588845469b5c291297af236209785"},env:["EASYPANEL_URL=".concat(e.easypanelUrl),"SESSION_SECRET=".concat(l),"API_TOKEN=".concat(null!==(t=e.easypanelApiToken)&&void 0!==t?t:""),"NODE_ENV=production","PORT=3000","CLIENT_API_KEY=".concat(d)].join("\n"),mounts:[{type:"volume",name:"oauth2-data",mountPath:"/app/data"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),n.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["DATABASE_URL=postgresql://postgres:".concat(p,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-postgres:5432/$(PROJECT_NAME)?schema=public"),"JWT_ACCESS_SECRET=".concat(r),"NEXT_PUBLIC_APP_URL=https://$(PRIMARY_DOMAIN)","GITHUB_ENCRYPTION_KEY=".concat(s),"ANALYTICS_SALT=".concat(c),"NODE_ENV=production","EASYPANEL_PROJECT_ID=".concat(null!==(a=e.easypanelProjectId)&&void 0!==a?a:""),"EASYPANEL_SERVICE_ID=".concat(null!==(i=e.easypanelServiceId)&&void 0!==i?i:""),"EASYPANEL_PANEL_URL=https://$(EASYPANEL_HOST)","EASYPANEL_API_KEY=".concat(null!==(o=e.easypanelApiKey)&&void 0!==o?o:""),"CHR_EPOA2_SERV_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-oauth2.$(EASYPANEL_HOST)"),"CHR_EPOA2_SERV_API_KEY=".concat(d)].join("\n"),mounts:[{type:"volume",name:"uploads",mountPath:"/app/uploads"},{type:"volume",name:"public-generated",mountPath:"/app/public/generated"}]}}),{services:n}}},{slug:"chartdb",meta:{name:"ChartDB",description:"ChartDB is an open-source, web-based database diagramming editor that enables you to visualize and manage database schemas through interactive diagrams. Create entity-relationship diagrams (ER
1Ds) instantly by connecting to your databases and automatically generating visual representations of your schema. The application supports instant schema visualization using a single query and offers AI-powered features through OpenAI integration for intelligent SQL export and schema management. ChartDB provides an intuitive interface for understanding complex database structures, making it perfect for developers, database administrators, and teams who need to document and communicate database designs. With its modern web-based approach, you can access your database diagrams from anywhere and collaborate effectively on database architecture without installing desktop software.",instructions:null,changeLog:[{date:"2025-10-30",description:"Initial Template Release"},{date:"2026-02-18",description:"Version bumped to 1.19.0"},{date:"2026-04-29",description:"Version bumped to 1.20.1"}],links:[{label:"Website",url:"https://chartdb.io"},{label:"GitHub",url:"https://github.com/chartdb/chartdb"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"chartdb"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/chartdb/chartdb:1.20.1",description:"ChartDB Docker image"},openaiApiKey:{type:"string",title:"OpenAI API Key",description:"Optional OpenAI API key to enable AI-powered features like intelligent SQL export and schema suggestions"}}},benefits:[{title:"Instant Schema Visualization",description:"Connect to your databases and automatically generate visual entity-relationship diagrams with a single query, saving hours of manual diagramming work."},{title:"AI-Powered Features",description:"Leverage OpenAI integration for intelligent SQL export, schema suggestions, and automated database documentation generation."},{title:"Web-Based Access",description:"Access your database diagrams from anywhere with a modern web interface, no desktop software installation required."},{title:"Open Source",description:"Benefit from a fully open-source solution with active community support and the flexibility to customize for your needs."}],features:[{title:"Database Schema Visualization",description:"Automatically generate interactive entity-relationship diagrams from your existing databases with instant schema detection and visualization."},{title:"Interactive Diagrams",description:"Create and edit database diagrams with an intuitive drag-and-drop interface, making database design accessible and collaborative."},{title:"AI-Powered SQL Export",description:"Use OpenAI integration to generate intelligent SQL exports and receive smart suggestions for schema optimization and design improvements."},{title:"Single Query Schema Import",description:"Import entire database schemas instantly with a single query, supporting rapid visualization of complex database structures."},{title:"Modern Web Interface",description:"Access ChartDB through a clean, modern web interface that works seamlessly across desktop and mobile devices."},{title:"Multiple Database Support",description:"Connect to various database systems and visualize schemas from different database platforms in a unified interface."},{title:"Self-Hosted Solution",description:"Deploy ChartDB on your own infrastructure to maintain complete control over your database documentation and sensitive schema information."},{title:"Collaboration Ready",description:"Share and collaborate on database designs with your team through a centralized web-based platform accessible to all stakeholders."}],tags:["Database","Diagram","ERD","Visualization","Schema","Self-Hosted","AI","Design Tool","Documentation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=[];return e.openaiApiKey&&a.push("OPENAI_API_KEY=".concat(e.openaiApiKey)),t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"chatchat",meta:{name:"ChatChat",description:"ChatChat is a simple chat application built on modern technologies. It provides a lightweight and responsive chat interface for real-time communication.",instructions:null,changeLog:[{date:"2025-05-20",description:"First Release"}],links:[{label:"GitHub",url:"https://github.com/okisdev/chatchat"},{label:"Website",url:"https://chat.okis.dev"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"chatchat"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/okisdev/chatchat:0.1.9"}}},benefits:[{title:"Simple and Lightweight",description:"A streamlined chat application with minimal resource requirements."},{title:"Real-time Communication",description:"Instant messaging capabilities for seamless conversations."},{title:"Modern Interface",description:"Clean, responsive design for a pleasant user experience."}],features:[{title:"Web-based Chat",description:"Accessible from any modern web browser."},{title:"Docker Deployment",description:"Easy deployment and management using containerization."},{title:"Responsive Design",description:"Works on desktop and mobile devices."}],tags:["Chat","Communication","Web Application"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"chatgpt-next-web",meta:{name:"ChatGPT Next Web",description:"ChatGPT Next Web is a well-designed, feature-rich web interface for ChatGPT and other LLMs. It provides a clean and intuitive interface for interacting with OpenAI's ChatGPT, with support for multiple conversation modes, custom prompts, and various AI models. The application is self-hosted, allowing you to maintain control over your conversations and API usage while providing a superior user experience compared to the official ChatGPT web interface.",instructions:null,changeLog:[{date:"2025-06-17",description:"Initial Template Release"},{date:"2026-04-29",description:"Version bumped to v2.16.1"}],links:[{label:"Documentation",url:"https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web#readme"},{label:"GitHub",url:"https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web"},{label:"Website",url:"https://nextchat.club/login"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","openaiApiKey","accessCode"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"chatgpt-next-web"},appServiceImage:{type:"string",title:"App Service Image",default:"yidadaa/chatgpt-next-web:v2.16.1",description:"ChatGPT Next Web Docker image"},openaiApiKey:{type:"string",title:"OpenAI API Key",description:"Your OpenAI API key (starts with sk-)"},accessCode:{type:"string",title:"Access Code",description:"Password to protect your ChatGPT instance"}}},benefits:[{title:"Self-Hosted ChatGPT Interface",description:"Run your own ChatGPT web interface with full control over conversations and API usage."},{title:"Enhanced User Experience",description:"Feature-rich interface with better design and functionality compared to the official ChatGPT web interface."},{title:"Privacy and Control",description:"Keep your conversations private and maintain full control over your data and API usage."},{title:"Multiple AI Models",description:"Support for various OpenAI models including GPT-3.5, GPT-4, and other compatible APIs."}],features:[{title:"Clean Interface",description:"Modern, responsive web interface optimized for desktop and mobile devices."},{title:"Conversation Management",description:"Organize and manage multiple conversations with easy switching and history."},{title:"Custom Prompts",description:"Create and use custom system prompts to enhance AI responses for specific use cases."},{title:"Password Protection",description:"Secure your instance with password protection to prevent unauthorized access."}],tags:["ChatGPT","AI","OpenAI","LLM","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["OPENAI_API_KEY=".concat(e.openaiApiKey),"CODE=".concat(e.accessCode),"PROXY_URL=http://127.0.0.1:7890"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"chatpad",meta:{name:"Chatpad",description:"Chatpad AI is a premium quality user interface for ChatGPT, designed to provide the ultimate chatting experience. It's not just another ChatGPT interface, but a broader vision to revolutionize the way users interact with ChatGPT. The app is free and open-source, with its source code readily available on GitHub for anyone interested. Privacy is a top priority in Chatpad AI, with no tracking, no cookies, and all data being stored locally. The app is crafted with love and care, ensuring the best possible experience for its users. It's available as a web app and a desktop app, providing flexibility and convenience. Chatpad AI is also self-hostable using Docker, giving users full control over their data and usage.",instructions:null,changeLog:[{date:"2023-3-26",description:"first release"}],links:[{label:"Website",url:"https://chatpad.ai"},{label:"Github",url:"https://github.com/deiucanta/chatpad"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"chatpad"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/deiucanta/chatpad"}}},benefits:[{title:"Free and Open Source",description:"Chatpad AI is a free and open-source application. This means you can use it without any cost, and if you're interested in how it works, you can check out the source code on GitHub."},{title:"Privacy Focused",description:"Chatpad AI is designed with a strong focus on privacy. It does not track your activities, use cookies, or store your data on remote servers. All your data is stored locally on your device."},{title:"Premium Quality User Interface",description:"Chatpad AI offers a premium quality user interface for ChatGPT. It is designed with attention to detail to provide the best possible user experience."}],features:[{title:"ChatGPT Interface",description:"Chatpad AI provides a user-friendly interface for interacting with ChatGPT. It makes using ChatGPT a seamless and enjoyable experience."},{title:"Local Data Storage",description:"Chatpad AI stores all your data locally on your device. This ensures that your data remains private and secure."},{title:"Self-hosting Capabilities",description:"Chatpad AI can be self-hosted using Docker. This gives you full control over the application and its data."}],tags:["Chat","Privacy","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"chatwoot",meta:{name:"Chatwoot",description:"Chatwoot is a new age multi-channel customer experience platform designed for businesses of all sizes. It serves as an open-source customer engagement suite, providing an alternative to platforms like Intercom, Zendesk, and Salesforce Service Cloud. With Chatwoot, you can manage your agents' workload, track their performance through auto-updating reports, and work smarter with automations. The app allows you to perform key actions on multiple conversations at once and provides super quick responses to customer conversations, making your agents super productive. It also offers features to manage your email, Facebook, Instagram, Line, SMS, Telegram, and Twitter customer interactions directly from the platform. Additionally, Chatwoot provides detailed insights into your conversations and allows you to measure and track your CSAT score on autopilot.",instructions:null,changeLog:[{date:"2023-1-22",description:"first release"},{date:"2025-01-09",description:"Version bumped to v3.16.0"},{date:"2025-02-21",description:"PgVector Extention enabled PG17 has been added and version bumped to v4.0.1"},{date:"2025-07-15",description:"Version bumped to v4.3.0"},{date:"2025-12-24",description:"Version bumped to v4.9.1"},{date:"2026-02-18",description:"Version bumped to v4.11.0"},{date:"2026-04-29",description:"Version bumped to v4.13.0"}],links:[{label:"Documentation",url:"https://www.chatwoot.com/help-center"},{label:"Github",url:"https://github.com/chatwoot/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["defaultLocale","appServiceName","appServiceImage","sidekiqServiceName","databaseServiceName","redisServiceName"],properties:{defaultLocale:{type:"string",title:"Default Locale",default:"en"}
1,appServiceName:{type:"string",title:"App Service Name",default:"chatwoot"},appServiceImage:{type:"string",title:"App Service Image",default:"chatwoot/chatwoot:v4.13.0"},sidekiqServiceName:{type:"string",title:"Sidekiq Service Name",default:"chatwoot-sidekiq"},databaseServiceName:{type:"string",title:"Database Service Name",default:"chatwoot-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"chatwoot-redis"}}},benefits:[{title:"Efficient Customer Engagement",description:"Chatwoot is a powerful customer engagement suite that allows businesses to manage their customer interactions across multiple channels. It provides a streamlined platform for handling customer queries, ensuring quick responses and high productivity."},{title:"Multi-Channel Support",description:"With Chatwoot, businesses can stay connected with their customers across various platforms including email, Facebook, Instagram, Line, SMS, Telegram, Twitter, and WhatsApp. This ensures a seamless customer experience, regardless of the communication channel."},{title:"Real-Time Insights",description:"Chatwoot provides real-time insights into your conversations and agent performance. It allows businesses to track their customer satisfaction score on autopilot, ensuring continuous improvement in customer service."}],features:[{title:"Shared Inbox",description:"Chatwoot offers a shared inbox feature that allows teams to collaborate and solve customer queries together. This ensures efficie
1nt workload management and faster resolution of customer issues."},{title:"Automations",description:"Work smarter with Chatwoot's automation feature. It allows businesses to perform key actions on multiple conversations at once, saving time and improving efficiency."},{title:"Live Chat Channels",description:"Chatwoot provides live chat channels to facilitate real-time communication with customers. This feature enables businesses to provide instant support and enhance customer satisfaction."},{title:"Chatbots",description:"Chatwoot's chatbot feature allows businesses to automate conversations, providing quick responses to customer queries and improving agent productivity."},{title:"Mobile Apps",description:"Stay connected with your customers on the go with Chatwoot's mobile apps. It ensures uninterrupted customer service, regardless of your location."},{title:"Integrations",description:"Chatwoot can be integrated with various platforms including Slack, Dialogflow, and more. This allows businesses to extend Chatwoot's functionalities for back-office operations and other use cases."}],tags:["Chat","Customer Support"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v(),o=v(),n=["SECRET_KEY_BASE=".concat(a),"DEFAULT_LOCALE=".concat(e.defaultLocale),"FORCE_SSL=false","
1ENABLE_ACCOUNT_SIGNUP=true","REDIS_URL=redis://default@$(PROJECT_NAME)_".concat(e.redisServiceName,":6379"),"REDIS_PASSWORD=".concat(i),"REDIS_OPENSSL_VERIFY_MODE=none","POSTGRES_DATABASE=$(PROJECT_NAME)","POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"POSTGRES_USERNAME=postgres","POSTGRES_PASSWORD=".concat(o),"RAILS_MAX_THREADS=5","NODE_ENV=production","RAILS_ENV=production","INSTALLATION_ENV=docker","TRUSTED_PROXIES=*"].join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,env:["FRONTEND_URL=https://$(PRIMARY_DOMAIN)"].concat(Ne(n.split("\n"))).join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{command:"bundle exec rails db:chatwoot_prepare && bundle exec rails s -p 3000 -b 0.0.0.0"},mounts:[{type:"volume",name:"data",mountPath:"/data/storage"},{type:"volume",name:"app",mountPath:"/app/storage"}]}}),t.push({type:"app",data:{serviceName:e.sidekiqServiceName,env:["FRONTEND_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,".$(EASYPANEL_HOST)")].concat(Ne(n.split("\n"))).join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"bundle exec sidekiq -C config/sidekiq.yml"},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/app"),mountPath:"/app/storage"}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"pgvector/pgvector:pg17",password:o}}),{services:t}}},{slug:"checkmate",meta:{name:"Checkmate",description:"Checkmate is a modern, open-source uptime monitoring solution designed to keep track of your websites, APIs, and services. Built with a focus on simplicity and reliability, it provides real-time monitoring capabilities with instant notifications when your services go down. The application features a clean, intuitive dashboard that displays the current status of all monitored services, historical uptime data, and detailed analytics. Perfect for businesses, developers, and system administrators who need to ensure their digital services remain accessible to users.",instructions:"Go to the /register path to register your user.",changeLog:[{date:"2025-08-04",description:"First release"},{date:"2025-12-25",description:"Version bumped to v3.2.0"},{date:"2026-02-23",description:"Version bumped to v3.4.0"},{date:"2026-04-29",description:"Version bumped to v3.6.1"}],links:[{label:"Github",url:"https://github.com/bluewave-labs/checkmate"},{label:"Documentation",url:"https://github.com/bluewave-labs/checkmate#readme"},{label:"Website",url:"https://checkmate.so"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"checkmate"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/bluewave-labs/checkmate-backend-mono:v3.6.1"},mongoServiceImage:{type:"string",title:"MongoDB Service Image",default:"ghcr.io/bluewave-labs/checkmate-mongo:v3.6.1"}}},benefits:[{title:"Real-Time Monitoring",description:"Continuously monitor your websites, APIs, and services with real-time status updates and instant alerting when issues are detected."},{title:"Comprehensive Dashboard",description:"Clean and intuitive dashboard providing at-a-glance visibility into the health and performance of all your monitored services."},{title:"Historical Analytics",description:"Track uptime trends and performance metrics over time with detailed historical data and analytics for better insights."},{title:"Instant Notifications",description:"Get immediately notified via multiple channels when your services experience downtime or performance issues."},{title:"Easy Configuration",description:"Simple setup process with flexible configuration options to monitor various types of services and endpoints."},{title:"Scalable Architecture",description:"Built with MongoDB and Redis for high performance and scalability to handle monitoring of large numbers of services."}],features:[{title:"Service Health Monitoring",description:"Monitor HTTP/HTTPS endpoints, APIs, and web services with customizable check intervals and timeout settings."},{title:"Uptime Statistics",description:"Detailed uptime percentages and availability statistics with historical data visualization and reporting."},{title:"Alert Management",description:"Configurable alert rules with multiple notification channels including email, webhooks, and third-party integrations."},{title:"Response Time Tracking",description:"Monitor and track response times for your services with performance metrics and trend analysis over time."},{title:"Status Page",description:"Public status pages to communicate service availability to your users and stakeholders transparently."},{title:"Team Collaboration",description:"Multi-user support with role-based access control for team collaboration and shared monitoring responsibilities."}],tags:["Monitoring","Uptime","Analytics","DevOps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32);return t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-mongo"),image:e.mongoServiceImage,password:i}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:52345}],env:["UPTIME_APP_API_BASE_URL=https://$(PRIMARY_DOMAIN)/api/v1","UPTIME_APP_CLIENT_HOST=https://$(PRIMARY_DOMAIN)","DB_CONNECTION_STRING=mongodb://mongo:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-mongo:27017/?tls=false"),"REDIS_URL=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"CLIENT_HOST=https://$(PRIMARY_DOMAIN)","JWT_SECRET=".concat(o)].join("\n")}}),{services:t}}},{slug:"chevereto",meta:{name:"Chevereto",description:"Chevereto is a powerful, self-hosted image and video hosting platform designed for individuals, communities, and businesses. It allows users to upload, organize, and share media effortlessly. With a clean interface and a wide range of customization options, Chevereto supports private albums, multi-language capabilities, and robust file management, making it the ultimate solution for image and video hosting.",instructions:"Open the nginx domain to access Chevereto",changeLog:[{date:"2024-11-22",description:"First Release"},{date:"2025-07-15",description:"Version bumped to 4.3"},{date:"2025-12-25",description:"Version bumped to 4.4.1"},{date:"2026-02-18",description:"Version bumped to 4.4.2"},{date:"2026-05-15",description:"Version bumped to 4.5.3"}],links:[{label:"Github",url:"https://github.com/chevereto/chevereto"},{label:"Documentation",url:"https://v4-docs.chevereto.com/"},{label:"Demo",url:"https://demo.chevereto.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"},{name:"Rodolfo Berrios",url:"https://rodolfoberrios.com"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"chevereto"},appServiceImage:{type:"string",title:"App Service Image",default:"chevereto/chevereto:4.5.3"}}},benefits:[{title:"Easy Image and Video Hosting",description:"Chevereto provides an intuitive platform for uploading and managing images and video, with support for bulk uploads and organization features."},{title:"Customizable and Extensible",description:"Chevereto offers a wide range of customization options, including themes and API access, to tailor the platform to your needs."},{title:"Multi-Language and Multi-User Support",description:"Operate in multiple languages and create user accounts with varying permission levels, perfect for collaborative environments."}],features:[{title:"Private and Public Albums",description:"Organize images into private or public albums with advanced privacy controls."},{title:"Drag-and-Drop Uploads",description:"Easily upload images by dragging and dropping them into the platform."},{title:"Multi-User Capabilities",description:"Allow multiple users to upload and manage their own images securely within the platform."},{title:"Customizable Appearance",description:"Adjust themes, colors, and layouts to align with your personal or business branding."},{title:"Direct Image Links",description:"Quickly generate direct links for sharing images across social media and other platforms."}],tags:["Image Hosting","File Management","Open Source","Multi-User","Private Albums"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["CHEVERETO_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"CHEVERETO_DB_USER=mysql","CHEVERETO_DB_PASS=".concat(a),"CHEVERETO_DB_PORT=3306","CHEVERETO_DB_NAME=$(PROJECT_NAME)","CHEVERETO_HOSTNAME=$(PRIMARY_DOMAIN)","CHEVERETO_HOSTNAME_PATH=/","CHEVERETO_HTTPS=0","CHEVERETO_MAX_POST_SIZE=2G","CHEVERETO_MAX_UPLOAD_SIZE=2G","#CHEVERETO_SERVICING=server # uncomment to enable application filesystem upgrades"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"storage",mountPath:"/var/www/html/images/"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),password:a}}),{services:t}}},{slug:"chiefonboarding",meta:{name:"Chief-Onboarding",description:"Chief-Onboarding is a comprehensive, self-hosted onboarding and employee management platform designed for businesses to streamline their onboarding processes. It allows organizations to manage employee onboarding, document collection, and task tracking efficiently. With a clean interface and robust customization options, Chief-Onboarding supports role-based access, multi-language capabilities, and seamless integration with existing HR systems, making it the ultimate solution for employee onboarding.",instructions:null,changeLog:[{date:"2025-01-20",description:"First Release"},{date:"2025-07-15",description:"Version bumped to v2.2.7"},{date:"2025-12-25",description:"Version bumped to v2.3.1"},{date:"2026-04-29",description:"Version bumped to v2.4.1"}],links:[{label:"Github",url:"https://github.com/chiefonboarding/chiefonboarding"},{label:"Documentation",url:"https://docs.chiefonboarding.com/"},{label:"Demo",url:"https://demo.chiefonboarding.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"chiefonboarding"},appServiceImage:{type:"string",title:"App Service Image",default:"chiefonboarding/chiefonboarding:v2.4.1"}}},benefits:[{title:"Streamlined Employee Onboarding",description:"Chief-Onboarding provides an intuitive platform for managing employee onboarding tasks, document collection, and tracking progress seamlessly."},{title:"Customizable and Scalable",description:"Chief-Onboarding offers a wide range of customization options, including workflows and templates, to scale with your business needs."},{title:"Multi-Language and Role-Based Support",description:"Operate in multiple languages and assign roles with varying permission levels, perfect for diverse teams and compliance requirements."}],features:[{title:"Automated Task Management",description:"Streamline task assignments and track progress for a smoother onboarding process."},{title:"Document Collection and Storage",description:"Easily collect and store necessary documents securely in one place."},{title:"Role-Based Access Control",description:"Assign roles and permissions to ensure secure and efficient collaboration."},{title:"Customizable Workflows",description:"Tailor onboarding workflows to fit your organization's unique processes."},{title:"Seamless Integration",description:"Integrate with popular HR and productivity tools for a cohesive ecosystem."}],tags:["Employee Onboarding","HR Management","Task Tracking","Role-Based Access","Document Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(16);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SECRET_KEY=".concat(i),"DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"ALLOWED_HOSTS=$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"chiyogami",meta:{name:"Chiyogami",description:"Chiyogami is a sleek, modern, self-hosted pastebin written in Go. It supports client-side encryption via the WebCrypto API so passwords never reach the server, configurable paste expiry, public and private paste visibility, syntax highlighting via HighlightJS, Markdown rendering, user accounts and authentication, a REST API for scripted access, QR code sharing, built-in rate limiting, and a search and list view of public pastes. It uses SQLite for storage, making it lightweight and easy to deploy with a single container and one volume.",instructions:"After deployment open the web UI at your configured domain. Anonymous paste creation works immediately without an account. To create an account click the Sign Up button and register \u2014 there are no default admin credentials.",changeLog:[{date:"2026-07-01",description:"first release"}],links:[{label:"Website",url:"https://chiyogami.myaddr.dev"},{label:"GitHub",url:"https://github.com/rhee876527/chiyogami"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"chiyogami"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/rhee876527/chiyogami:1.5.5"}}},benefits:[{title:"Client-Side Encryption",description:"Paste content is encrypted in the browser with a user-supplied password before it is sent to the server. The server never sees the plaintext or the key."},{title:"Lightweight and Self-Contained",description:"A single Go binary backed by SQLite \u2014 no PostgreSQL, no Redis, no external services. One container and one volume is all you need."},{title:"Full User Account System",description:"Register accounts to manage your own pastes, set expiry, control visibility, and browse your paste history from the web UI."}],features:[{title:"Syntax Highlighting",description:"Paste code in any language and get automatic syntax highlighting powered by HighlightJS with language auto-detection."},{title:"Markdown Rendering",description:"Write pastes in Markdown and view them rendered directly in the browser without a separate preview step."},{title:"REST API",description:"Create, read, and delete pastes programmatically via a JSON API suitable for scripts, CLI tools, and CI pipelines."},{title:"QR Code Sharing",description:"Every paste page includes a QR code for quick sharing with phones or tablets without copying the URL."},{title:"Configurable Rate Limiting",description:"Built-in rate limiting on create, register, login, and delete operations protects public instances from abuse."}],tags:["Pastebin","Productivity","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["SECRET_KEY=".concat(a)].join("\n"),mounts:[{type:"volume",name:"pastes",mountPath:"/pastes"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),{services:t}}},{slug:"chromium",meta:{name:"Chromium",description:"Chromium is an open-source browser project that is designed to provide a safer, faster, and more stable way for all users to experience the web. This app is a Docker containerized version of Chromium, allowing you to deploy and run the Chromium browser in a Docker environment. The app supports multiple architectures, including x86-64 and arm64, and can be accessed via HTTP or HTTPS. It offers additional environment variables and run configurations to enable or disable specific functionality. The app also allows you to specify one or multiple Chromium CLI flags, which will be passed to the application in full. This containerized version of Chromium is designed to function efficiently with modern websites, and includes options for GPU acceleration and Docker in Docker (DinD) setup.",instructions:null,changeLog:[{date:"2022-11-14",description:"first release"},{date:"2024-09-30",description:"Version changed to version-dc5fa092"},{date:"2025-01-09",description:"Version bumped to 5f5dd27e-ls102"},{date:"2025-07-15",description:"Version bumped to 7a928a3a"},{date:"2025-12-25",description:"Version bumped to 110b1523"},{date:"2026-02-18",description:"Version bumped to c965db96"},{date:"2026-05-06",description:"Version bumped to 1aac4eaa"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-chromium"},{label:"Github",url:"https://github.com/linuxserver/docker-chromium"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"chromium"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/chromium:version-1aac4eaa"}}},benefits:[{title:"Open-Source Browser",description:"Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web. It is designed to be accessible and user-friendly, providing a seamless browsing experience."},{title:"Multi-Platform Awareness",description:"The app utilizes the docker manifest for multi-platform awareness. This means it can retrieve the correct image for your architecture, ensuring optimal performance and compatibility."},{title:"Customizable Environment",description:"The app offers a range of environment variables and run configurations to enable or disable specific functionality. This allows for a highly customizable browsing experience tailored to your needs."}],features:[{title:"Accessible Interface",description:"The application can be accessed at specific host addresses, providing a straightforward and easy-to-navigate interface."},{title:"HTTP Basic Auth",description:"Chromium supports HTTP Basic auth, providing an extra layer of security for your browsing. You can set a username and password for authentication."},{title:"Docker in Docker Setup",description:"The app offers a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. This feature enhances the performance and security of your browsing experience."},{title:"GPU Acceleration",description:"The app supports GPU acceleration, allowing you to leverage a host video card for GPU-accelerated applications. This feature enhances the speed and performance of the browser."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"config",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"cinephage",meta:{name:"Cinephage",description:"Cinephage is a self-hosted media management and streaming application designed for organizing and accessing your movie and TV show collection. It provides a modern web interface for browsing your media library, with features like metadata management, watch tracking, and streaming capabilities. Built with privacy and self-hosting in mind, Cinephage gives you complete control over your media collection without relying on external services.",instructions:null,changeLog:[{date:"2026-01-12",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/moldytaint/cinephage"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","mediaPath","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cinephage"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/moldytaint/cinephage:sha-7e755e4"},mediaPath:{type:"string",title:"Media Path",description:"Host path to your media directory (movies, TV shows, etc.)",default:"/media"},timezone:{type:"string",title:"Timezone",description:"Timezone for the application (e.g., America/New_York, UTC)",default:"UTC"}}},benefits:[{title:"Self-Hosted Media Management",description:"Complete control over your media library with no reliance on external services or cloud providers."},{title:"Privacy-Focused",description:"All your media and metadata stays on your own server, ensuring complete privacy and data ownership."},{title:"Modern Web Interface",description:"Clean, responsive web interface for browsing and managing your media collection from any device."},{title:"Streaming Capabilities",description:"Stream your media directly through the web interface without additional software."},{title:"Metadata Management",description:"Automatic metadata fetching and organization for movies and TV shows."}],features:[{title:"Media Library Organization",description:"Automatically organize and catalog your movie and TV show collection with rich metadata."},{title:"Watch Tracking",description:"Track what you've watched and manage your viewing history across your media library."},{title:"Multi-Format Support",description:"Supports various video formats and codecs for flexible media playback."},{title:"Secure Access",description:"Access your media library securely through the web interface with configurable authentication."},{title:"Easy Deployment",description:"Simple Docker-based deployment with minimal configuration required."}],tags:["Media","Streaming","Movies","TV Shows","Self-Hosted","Plex Alternative"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["TZ=".concat(e.timezone||"UTC"),"PUID=1000","PGID=1000"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"logs",mountPath:"/app/logs"},{type:"bind",hostPath:e.mediaPath,mountPath:"/media"}]}}),{services:t}}},{slug:"claper",meta:{name:"Claper",description:"Claper is an interactive presentation platform that transforms passive presentations into engaging, real-time experiences.  With Claper, presenters can create interactive presentations that allow audience members to participate through live polls,  Q&A sessions, reactions, and more. The platform offers seamless integration with popular presentation tools and provides  real-time analytics to help presenters understand audience engagement. Claper supports various presentation formats,  file uploads, and customizable branding options, making it perfect for conferences, webinars, educational sessions,  and corporate meetings.",instructions:"Click Login on the top right corner and register a new account.",changeLog:[{date:"2025-06-30",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to 2.4.0"}],links:[{label:"Website",url:"https://claper.co/"},{label:"Documentation",url:"https://docs.claper.co/"},{label:"Github",url:"https://github.com/ClaperCo/Claper"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"claper"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/claperco/claper:2.4.0"}}},benefits:[{title:"Interactive Presentations",description:"Transform static presentations into interactive experiences with live polls, Q&A sessions, and real-time audience engagement features."},{title:"Real-time Analytics",description:"Get instant insights into audience engagement and participation with comprehensive analytics and reporting tools."},{title:"Easy Integration",description:"Seamlessly integrate with popular presentation tools and platforms, making it easy to enhance existing workflows."}],features:[{title:"Live Polls & Q&A",description:"Create interactive polls, quizzes, and Q&A sessions that keep your audience engaged throughout the presentation."},{title:"File Upload Support",description:"Upload and manage presentation files with configurable storage options including local and cloud storage."},{title:"Email Integration",description:"Built-in email functionality with SMTP support for notifications, confirmations, and user management."},{title:"Authentication & Security",description:"Secure user authentication with support for OIDC providers and customizable security settings."}],tags:["Presentation","Interactive","Collaboration","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(64),o=["BASE_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"SECRET_KEY_BASE=".concat(i),"PRESENTATION_STORAGE=local","PRESENTATION_STORAGE_DIR=/app/uploads","MAX_FILE_SIZE_MB=15","ENABLE_ACCOUNT_CREATION=true","EMAIL_CONFIRMATION=false"];return t.push({type:"app",data:{serviceName:e.appServiceName,env:o.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}],mounts:[{type:"volume",name:"uploads",mountPath:"/app/uploads"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"classicpress",meta:{name:"ClassicPress",description:"ClassicPress is a community-led open source content management system for creators. It is a fork of WordPress 6.2 that preserves the TinyMCE classic editor as the default option. It is half the size of WordPress, contains less bloat improving performance, and has no block editor (Gutenberg/Full Site Editing).",instructions:null,changeLog:[{date:"2025-02-14",description:"first release"},{date:"2025-12-25",description:"Version bumped to php8.5-apache"}],links:[{label:"Website",url:"https://www.classicpress.net/"},{label:"Documentation",url:"https://docs.classicpress.net/"},{label:"Github",url:"https://github.com/ClassicPress/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"classicpress"},appServiceImage:{type:"string",title:"App Service Image",default:"classicpress/classicpress:php8.5-apache"}}},benefits:[{title:"Open-Source CMS",description:"ClassicPress is an open-source content management system (CMS) that focuses on security, stability, and simplicity. It is a community-driven alternative to WordPress, designed for users who want more control and fewer unnecessary updates."},{title:"Multi-Site Capability",description:"ClassicPress supports multi-site setups, allowing users to manage multiple websites from a single installation. This makes it an ideal solution for agencies and businesses managing multiple sites."},{title:"Customizable Environment",description:"ClassicPress offers a wide range of plugins and themes for customization. Users can configure the CMS environment to fit their specific needs, ensuring a highly personalized experience."}],features:[{title:"User-Friendly Interface",description:"ClassicPress provides a familiar and easy-to-navigate interface for content management. Its dashboard is intuitive, making it accessible for both beginners and advanced users."},{title:"Enhanced Security",description:"ClassicPress places a strong emphasis on security, with a focus on minimizing vulnerabilities. Regular updates and a security-first approach help keep your site safe."},{title:"Custom Post Types",description:"The CMS supports custom post types, giving users the flexibility to create different content types beyond posts and pages. This feature is essential for building complex websites with varied content structures."},{title:"Plugin and Theme Compatibility",description:"ClassicPress is compatible with a wide range of plugins and themes, making it easy to extend functionality and customize the appearance of your site."}],tags:["Content Management","Developer Tools","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["CLASSICPRESS_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"CLASSICPRESS_DB_USER=mariadb","CLASSICPRESS_DB_PASSWORD=".concat(a),"CLASSICPRESS_DB_NAME=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"cleanuparr",meta:{name:"Cleanuparr",description:"Cleanuparr is an advanced automated download manager for the Servarr ecosystem (Sonarr, Radarr, Lidarr, Readarr, Whisparr). It monitors and cleans up problematic downloads across qBittorrent, Transmission, Deluge, \xb5Torrent, and rTorrent clients. Core features include a strike-based system for failed imports, stalled and slow downloads; automatic blocklist-based malware file detection and removal; auto-triggered replacement searches when downloads are removed; seeding duration and ratio cleanup; orphaned file detection with hardlink checking; proactive missing-content and quality-upgrade searching; and smart notifications for all events. All configuration and state are stored in a single /config volume \u2014 no external database is required.",instructions:"After deployment open the app URL. Create your Account. Configure your Sonarr, Radarr, and download client connections under Settings. All automation rules are managed from the web interface.",changeLog:[{date:"2026-07-01",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/Cleanuparr/Cleanuparr"},{label:"Documentation",url:"https://cleanuparr.github.io/Cleanuparr/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cleanuparr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/cleanuparr/cleanuparr:2.9.14"}}},benefits:[{title:"Automated Download Cleanup",description:"Automatically detects and removes stalled, slow, failed, or malware- flagged downloads across every major torrent client \u2014 no manual intervention needed."},{title:"Servarr-Native Integration",description:"Deeply integrates with Sonarr, Radarr, Lidarr, Readarr, and Whisparr; triggers replacement searches and blocklists entries directly through their APIs when a download is removed."},{title:"No External Dependencies",description:"Runs as a single container with an internal SQLite database. There is no separate database or cache service to maintain."}],features:[{title:"Strike-Based Removal",description:"Assigns strikes to failed imports, stalled downloads, and slow transfers. Removals are triggered only after a configurable strike threshold, reducing false positives."},{title:"Blocklist File Detection",description:"Scans download contents against a malware / unwanted-file blocklist and removes matching torrents before they import into your media library."},{title:"Seeding Ratio and Duration Control",description:"Removes torrents that have hit your configured seeding ratio or time limit, keeping your torrent client tidy after downloads complete."},{title:"Orphaned File Detection",description:"Identifies orphaned files in your download client \u2014 with optional hardlink checking \u2014 so disk space is reclaimed safely."},{title:"Proactive Content Search",description:"Periodically triggers Sonarr/Radarr searches for missing episodes or movies and queues quality upgrades without manual intervention."},{title:"Smart Notifications",description:"Sends per-event notifications (removals, strikes, blocklist hits) via webhooks, Discord, Apprise, and more."}],tags:["Media","Automation","Download Manager","Servarr","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PORT=11011","BIND_ADDRESS=0.0.0.0","BASE_PATH=","TZ=Etc/UTC"].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:11011}]}}),{services:t}}},{slug:"clickhouse",meta:{name:"Clickhouse",description:"ClickHouse is an open-source database designed for real-time apps and analytics. It is renowned for its speed and resource efficiency, capable of querying billions of rows in mere milliseconds. ClickHouse supports a wide range of data sources, including databases, data warehouses, streams, logs, analytics, data lake formats, and local files. It is built on a column-oriented database structure, which is ideally suited to Online Analytical Processing (OLAP) scenarios, making it significantly faster in processing most queries. ClickHouse utilizes all available system resources to their full potential to process each analytical query as swiftly as possible. It can be deployed in any environment, whether on your machine or in the cloud, and offers the ability to run fast queries on local files without a server. ClickHouse is trusted by developers working with data at scale, including major companies like Disney+ and Uber.",instructions:null,changeLog:[{date:"2022-10-28",description:"first release"},{date:"2025-01-09",description:"Version bumped to 24.8"},{date:"2025-07-15",description:"Version bumped to 25.6"},{date:"2025-12-25",description:"Version bumped to 25.11"},{date:"2026-04-29",description:"Version bumped to 26.3.9.8"}],links:[{label:"Website",url:"https://clickhouse.com/"},{label:"Documentation",url:"https://clickhouse.com/docs"},{label:"Github",url:"https://github.com/ClickHouse/ClickHouse"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"clickhouse"},appServiceImage:{type:"string",title:"App Service Image",default:"clickhouse/clickhouse-server:26.3.9.8"}}},benefits:[{title:"Real-Time Analytics",description:"ClickHouse is designed for real-time analytics, allowing you to query billions of rows in milliseconds. This makes it an ideal solution for applications that require immediate insights from large volumes of data."},{title:"High Performance",description:"ClickHouse is the fastest and most resource-efficient open-source database available. It uses all available system resources to their full potential to process each analytical query as quickly as possible."},{title:"Versatile Data Source Support",description:"ClickHouse supports all the data sources you need to power your apps. Whether you're working with databases, data warehouses, streams, logs, analytics, data lake formats, or local files, ClickHouse can handle it."}],features:[{title:"Column-Oriented Databases",description:"Unlike row-oriented databases where data is stored in rows, ClickHouse is a column-oriented database. This means that data is stored in columns, with values from the same columns stored together. This makes ClickHouse at least 100x faster in processing most queries."},{title:"Flexible Deployment",description:"ClickHouse can be deployed in any environment, whether it's on your machine or in the cloud. You can run fast queries on local files without a server, spin up a database server with open-source ClickHouse, or deploy a fully managed ClickHouse service on AWS or GCP."},{title:"Trusted by Developers",description:"ClickHouse is trusted by developers that work with data at scale. Companies like Disney+ use ClickHouse to provide analytics for their content distribution system, and Uber migrated to ClickHouse from the ELK stack for their log analytics platform."}],tags:["Databases","Analytics"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8123}],mounts:[{type:"volume",name:"event-data",mountPath:"/var/lib/clickhouse"},{type:"file",content:["<yandex>","<profiles>","<default>","<log_queries>0</log_queries>","<log_query_threads>0</log_query_threads>","</default>","</profiles>","</yandex>",""].join("\n"),mountPath:"/etc/clickhouse-server/users.d/logging.xml"},{type:"file",content:["<yandex>","<listen_host>0.0.0.0</listen_host>","","<logger>","<level>warning</level>","<console>true</console>","</logger>","","</yandex>",""].join("\n"),mountPath:"/etc/clickhouse-server/config.d/logging.xml"}]}}),{services:t}}},{slug:"cloud9",meta:{name:"Cloud9",description:"Cloud9 is a cloud-based integrated development environment (IDE) designed for developers to code, build, and debug applications collaboratively in real time. It supports a wide range of programming languages and provides a full-featured development environment directly in the browser. Cloud9 allows developers to work on their projects from anywhere, using any device, with the power of a full Linux server behind it. It includes features like built-in terminal, code editor, and support for debugging and running applications seamlessly. Cloud9 is trusted by developers for its efficiency, collaboration tools, and ability to streamline the development workflow.",instructions:null,changeLog:[{date:"2024-12-26",description:"First release"}],links:[{label:"Website",url:"https://aws.amazon.com/cloud9/"},{label:"Documentation",url:"https://docs.aws.amazon.com/cloud9/"},{label:"Github",url:"https://github.com/c9"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cloud9"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/cloud9:1.29.2"},username:{type:"string",title:"Username",default:"admin"},password:{type:"string",title:"Password",default:"admin"}}},benefits:[{title:"Cloud-Based Development",description:"Cloud9 enables developers to code directly in the cloud, providing access to their development environment from anywhere with an internet connection."},{title:"Real-Time Collaboration",description:"Developers can collaborate in real time, sharing their environment with team members, making it an ideal choice for remote or distributed teams."},{title:"Fully Integrated Tools",description:"Cloud9 offers a built-in terminal, code editor, and debugger, streamlining the development workflow without the need for additional installations."}],features:[{title:"Browser-Based IDE",description:"Cloud9 provides a powerful, browser-based IDE that includes a rich text editor, syntax highlighting, and a terminal, making it easy to develop applications without requiring local installations."},{title:"Multi-Language Support",description:"Cloud9 supports a wide range of programming languages, from Python to JavaScript, enabling developers to work on diverse projects within a single platform."},{title:"Scalable and Customizable",description:"Cloud9 can be scaled to meet the needs of different projects and environments, with full support for customizing the IDE settings and environment configurations."}],tags:["IDE","Development","Cloud-Based"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Europe/London","GITURL=https://github.com/linuxserver/docker-cloud9.git","USERNAME=".concat(e.username),"PASSWORD=".concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:8e3}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"code",mountPath:"/code"}]}}),{services:t}}},{slug:"cloudbeaver",meta:{name:"CloudBeaver",description:"CloudBeaver is a web-based database management tool developed by DBeaver team. It provides a modern, intuitive interface for managing databases through your web browser. CloudBeaver supports multiple database types including PostgreSQL, MySQL, MariaDB, SQLite, Oracle, SQL Server, and many others. Perfect for teams who need collaborative database management without installing desktop software.",instructions:"On first launch, a setup wizard will guide you to create an administrator account and configure the server. After completing the wizard, log in with the credentials you created.",changeLog:[{date:"2025-07-11",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to 26.0.3"}],links:[{label:"Website",url:"https://cloudbeaver.io/"},{label:"Documentation",url:"https://github.com/dbeaver/cloudbeaver/wiki"},{label:"GitHub",url:"https://github.com/dbeaver/cloudbeaver"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cloudbeaver"},appServiceImage:{type:"string",title:"App Service Image",default:"dbeaver/cloudbeaver:26.0.3"}}},benefits:[{title:"Web-Based Interface",description:"Access your databases from anywhere using just a web browser, no desktop software required"},{title:"Multi-Database Support",description:"Connect to PostgreSQL, MySQL, Oracle, SQL Server, SQLite, and dozens of other database types"},{title:"Team Collaboration",description:"Share database connections and queries with your team through a centralized web interface"},{title:"Enterprise Features",description:"Advanced authentication, user management, and security features for enterprise environments"}],features:[{title:"Visual Query Builder",description:"Build complex SQL queries using an intuitive drag-and-drop interface"},{title:"Data Editor",description:"View, edit, and manage database records with spreadsheet-like functionality"},{title:"SQL Editor",description:"Advanced SQL editor with syntax highlighting, autocomplete, and execution planning"},{title:"Database Navigator",description:"Browse database schemas, tables, views, and other objects in a tree structure"},{title:"Connection Management",description:"Manage multiple database connections with secure credential storage"},{title:"Data Export/Import",description:"Export query results and import data in various formats including CSV, JSON, and SQL"},{title:"User Management",description:"Role-based access control with support for teams and individual users"},{title:"Query History",description:"Keep track of executed queries and reuse them across sessions"},{title:"Database Metadata",description:"View detailed information about tables, indexes, constraints, and relationships"},{title:"Custom Dashboards",description:"Create personalized dashboards with charts and visualizations"}],tags:["Database","SQL","Management","Web Interface","PostgreSQL","MySQL","Oracle","Development","Analytics","Team Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8978}],mounts:[{type:"volume",name:"cloudbeaver-workspace",mountPath:"/opt/cloudbeaver/workspace"}]}}),{services:t}}},{slug:"cloudcommander",meta:{name:"Cloud Commander",description:"Cloud Commander is a file manager for the web. It includes a command-line console and a text editor. Cloud Commander helps you manage your server and work with files, directories and programs in a web browser from any computer, mobile or tablet.",instructions:null,changeLog:[{date:"2024-01-22",description:"first release"},{date:"2024-09-30",description:"Version changed to 18.1.0"},{date:"2025-01-09",description:"Version bumped to 18.4.1"},{date:"2025-02-24",description:"Version bumped to 18.5.1"},{date:"2025-07-15",description:"Version bumped to 18.6.1"},{date:"2025-12-25",description:"Version bumped to 19.0.17"},{date:"2026-02-18",description:"Version bumped to 19.4.1"},{date:"2026-04-29",description:"Version bumped to 19.15.0"}],links:[{label:"Website",url:"https://cloudcmd.io"},{label:"Github",url:"https://github.com/coderaiser/cloudcmd"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cloudcmd"},appServiceImage:{type:"string",title:"App Service Image",default:"coderaiser/cloudcmd:19.15.0"},username:{type:"string",title:"Username",default:"admin"},password:{type:"string",title:"Password"}}},logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["CLOUDCMD_ROOT=/mnt/fs","CLOUDCMD_AUTH=true","CLOUDCMD_USERNAME=".concat(e.username),"CLOUDCMD_PASSWORD=".concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"bind",hostPath:"/root",mountPath:"/root"},{type:"bind",hostPath:"/",mountPath:"/mnt/fs"}]}}),{services:t}}},{slug:"cloudreve",meta:{name:"Cloudreve",description:"Cloudreve is a self-hosted cloud storage platform that allows you to build your own file hosting and sharing service with support for multiple storage backends. Designed as a powerful alternative to commercial cloud storage services, Cloudreve provides a feature-rich web interface for uploading, organizing, and sharing files with complete control over your data. The application supports various storage providers including local storage, remote servers, OneDrive, S3-compatible storage, and more, allowing you to leverage existing infrastructure or cloud services as backends. Key features include drag-and-drop uploads, file previews for images, videos, and documents, shareable download links with optional password protection and expiration dates, and WebDAV support for seamless integration with desktop and mobile applications. Cloudreve offers user management with customizable storage quotas, group permissions, and file policies to control how users interact with the system. The modern, responsive interface works across devices, providing a smooth experience whether accessing from desktop or mobile. Built with performance in mind, Cloudreve uses PostgreSQL for reliable data storage and Redis for caching, ensuring fast and responsive file operations. Perfect for individuals wanting private cloud storage, teams needing collaborative file sharing, organizations requiring self-hosted file management, or anyone seeking an alternative to commercial cloud storage with complete data ownership and privacy.",instructions:null,changeLog:[{date:"2025-12-05",description:"Template Release"},{date:"2026-02-18",description:"Version bumped to 4.14.1"},{date:"2026-04-29",description:"Version bumped to 4.15.0"}],links:[{label:"Website",url:"https://cloudreve.org"},{label:"GitHub",url:"https://github.com/cloudreve/Cloudreve"},{label:"Documentation",url:"https://docs.cloudreve.org"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cloudreve"},appServiceImage:{type:"string",title:"App Service Image",default:"cloudreve/cloudreve:4.15.0"}}},benefits:[{title:"Complete Data Ownership",description:"Host your own cloud storage with full control over your files and data without relying on third-party services."},{title:"Multiple Storage Backends",description:"Support for local storage, S3-compatible services, OneDrive, and remote servers gives flexibility in how and where files are stored."},{title:"Secure File Sharing",description:"Share files with password protection, expiration dates, and customizable permissions for secure collaboration."},{title:"Modern User Experience",description:"Beautiful, responsive web interface with drag-and-drop uploads and file previews works seamlessly across all devices."}],features:[{title:"Multi-Backend Storage",description:"Connect to various storage providers including local disk, S3, OneDrive, and remote servers to leverage existing infrastructure."},{title:"File Preview",description:"Built-in preview support for images, videos, audio files, PDFs, and office documents directly in the browser."},{title:"Drag & Drop Upload",description:"Easy file uploading with drag-and-drop support, progress tracking, and resumable uploads for large files."},{title:"Share Links",description:"Create shareable download links with optional password protection, expiration dates, and download limits."},{title:"WebDAV Support",description:"Access your files via WebDAV protocol for seamless integration with desktop file managers and mobile apps."},{title:"User Management",description:"Manage multiple users with customizable storage quotas, group permissions, and file access policies."},{title:"File Policies",description:"Define upload restrictions, allowed file types, and storage rules through flexible file policy configurations."},{title:"Aria2 Integration",description:"Offline download support through Aria2 integration for downloading files directly to your cloud storage."}],tags:["Cloud Storage","File Sharing","File Management","Self-Hosted","Storage","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5212}],env:["CR_CONF_Database.Type=postgres","CR_CONF_Database.Host=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"CR_CONF_Database.User=postgres","CR_CONF_Database.Password=".concat(a),"CR_CONF_Database.Name=$(PROJECT_NAME)","CR_CONF_Database.Port=5432","CR_CONF_Redis.Server=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis:6379"),"CR_CONF_Redis.Password=".concat(i)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/cloudreve/data"}]}}),{services:t}}},{slug:"cockpit",meta:{name:"Cockpit",description:"Cockpit is a headless content platform designed to streamline the creation, connection, and delivery of content for creators, marketers, and developers. It is built with an API-first approach, enabling limitless digital solutions. Cockpit offers a range of features including a content hub, multichannel localization, roles & permissions, and revisions. It also comes with a set of ready-to-use addons to support your projects. These include flexible structured content models, an assets manager, SEO and menu routes, content migration, custom action triggers, component-based layouts, full-text search for your content, form submissions collection, and localization. Cockpit is designed to fit your favorite tech stack, making it a versatile tool for all your content needs.",instructions:"Navigate to /install to create the initial user account.",changeLog:[{date:"2023-3-20",description:"first release"},{date:"2024-09-30",description:"Version changed to core-2.9.3"},{date:"2025-01-09",description:"Version bumped to core-2.10.3"},{date:"2025-07-15",description:"Version bumped to core-2.11.4"},{date:"2025-12-25",description:"Version bumped to core-2.13.0"},{date:"2026-02-18",description:"Version bumped to core-2.13.4"},{date:"2026-04-29",description:"Version bumped to core-2.14.0"}],links:[{label:"Website",url:"https://getcockpit.com"},{label:"Documentation",url:"https://getcockpit.com/documentation"},{label:"Github",url:"https://github.com/Cockpit-HQ"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cockpit"},appServiceImage:{type:"string",title:"App Service Image",default:"cockpithq/cockpit:core-2.14.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"cockpit-db"}}},benefits:[{title:"Ignite Your Creativity",description:"Cockpit Content Platform is designed to spark your creativity and bring your next idea or project to life faster and more effortlessly. It provides the content you need to build creative solutions."},{title:"Boost Your Marketing",description:"With Cockpit, you can enhance your marketing efforts with flexible cross-channel content distribution, leading to exceptional digital outcomes."},{title:"Craft Limitless Digital Solutions",description:"Cockpit is an open-source platform built with an API-first approach, enabling developers to craft limitless digital solutions."}],features:[{title:"Content Hub",description:"Cockpit serves as a content hub, providing multichannel localization, roles and permissions, revisions, and more."},{title:"Assets Manager",description:"Cockpit includes an assets manager that you'll love to use, making it easy to manage and utilize your digital assets."},{title:"Content Migration",description:"Cockpit makes content migration simple, allowing you to easily move your content where it needs to go."},{title:"Custom Actions & Workflows",description:"With Cockpit, you can trigger custom actions and workflows, giving you more control over your content and how it's used."},{title:"Component Based Layouts",description:"Cockpit allows you to build component-based layouts, providing more flexibility and customization in your digital projects."},{title:"Full-text Search",description:"Cockpit includes a full-text search for your content, making it easy to find exactly what you're looking for."},{title:"Localization",description:"With Cockpit, you can easily localize your app or website, making it more accessible to users around the world."}],tags:["CMS"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["COCKPIT_SESSION_NAME=cockpit","COCKPIT_SALT=".concat(i),"COCKPIT_DATABASE_SERVER=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":27017"),"COCKPIT_DATABASE_NAME=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"html",mountPath:"/var/www/html"},{type:"volume",name:"data",mountPath:"/var/www/html/storage/data"}]}}),t.push({type:"mongo",data:{serviceName:e.databaseServiceName,image:"mongo:4",password:a}}),{services:t}}},{slug:"coder",meta:{name:"Coder",description:"Coder is an open source cloud development environment (CDE) that you download and host in your cloud. Deploy a single solution in seconds that provisions the infrastructure, IDE, language, and tools your developers desire. Upgrade to the Enterprise version and add security, governance, and observability capabilities for Platform teams.",instructions:null,changeLog:[{date:"2024-01-23",description:"first release"},{date:"2024-09-30",description:"Version changed to v2.14.3"},{date:"2025-01-09",description:"Version bumped to v2.18.2"},{date:"2025-07-15",description:"Version bumped to v2.23.3"},{date:"2025-12-25",description:"Version bumped to v2.27.9"},{date:"2026-02-18",description:"Version bumped to v2.30.1"},{date:"2026-04-29",description:"Version bumped to v2.31.10"}],links:[{label:"Website",url:"https://coder.com"},{label:"Documentation",url:"https://coder.com/docs/v2/latest"},{label:"Github",url:"https://github.com/coder/coder"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"coder"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/coder/coder:v2.31.10"},databaseServiceName:{type:"string",title:"Database Service Name",default:"coder-db"}}},logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["CODER_ACCESS_URL=https://$(PRIMARY_DOMAIN)","CODER_HTTP_ADDRESS=0.0.0.0:80","CODER_PG_CONNECTION_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable")].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{groups:["998","999"]},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"config",mountPath:"/home/coder/.config"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"codex-docs",meta:{name:"CodeX Docs",description:"CodeX is a comprehensive platform that brings together passionate engineers, designers, students, graduates, and young specialists from around the globe. The app is dedicated to creating high-quality open-source projects and providing a valuable experience of developing full-fledged products for the global market. CodeX offers a range of products including Editor.js, a block-styled, API-oriented editor for media that generates useful JSON-output with clear data, Hawk.so, a fast and lightweight error tracking service, and CodeX Notes, a simple and fast cross-platform notes application based on Editor.js and Electron. The platform also offers Capella, a cloud service for image storage and delivery, and a platform for integration of services into messengers. With a focus on media, social networks, education, augmented reality, and medicine, CodeX is a one-stop solution for tech enthusiasts looking to make a mark in the global market.",instructions:"View All Configuation on the Docs site - https://docs.codex.so/configuration",changeLog:[{date:"2023-01-23",description:"First Release"},{date:"2024-09-30",description:"Version changed to v2.2"},{date:"2025-07-15",description:"Version bumped to v2.2.3"},{date:"2026-04-29",description:"Version bumped to v2.2.5"}],links:[{label:"Website",url:"https://codex.so"},{label:"Documentation",url:"https://docs.codex.so"},{label:"Github",url:"https://github.com/codex-team/codex.docs"}],contributors:[{name:"DrMxrcy",url:"https://github.com/DrMxrcy"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["codexAuthPassword","appServiceName","appServiceImage","databaseServiceName"],properties:{codexAuthPassword:{type:"string",title:"CodeX Auth Password"}
1,appServiceName:{type:"string",title:"App Service Name",default:"codex"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/codex-team/codex.docs:v2.2.5"},databaseServiceName:{type:"string",title:"Database Service Name",default:"codex-db"}}},benefits:[{title:"High-Quality Open-Source Projects",description:"CodeX is dedicated to creating high-quality open-source projects. This provides a unique opportunity for users to access and utilize top-notch resources and tools."},{title:"Valuable Experience",description:"CodeX offers a priceless experience of making full-valued products on a global market. This can be a great learning opportunity for students, graduates, and young specialists."},{title:"Innovative Tools",description:"CodeX continuously releases new and improved tools, such as Editor.js with its multiple toolbox items, offering users more ways to configure their work."}],features:[{title:"Editor.js",description:"Editor.js is an API-oriented, block-styled editor for Media. It generates useful JSON-output with clear data, making it a loved tool for many."},{title:"Hawk.so",description:"Hawk.so is a fast and lightweight errors tracking service. It has catchers for various programming languages including JavaScript, Python, PHP, Node.js, Swift, Java Android, Kotlin, and Scala."},{title:"CodeX Notes",description:"CodeX Notes is a simple, fast, and useful cross-platform notes application based on Editor.js and Electron."},{title:"Capella",description:"Capella is a cloud service for image storage and delivery. It allows users to upload files and accept image-filters on the fly with a simple API."}],tags:["Developer Tools"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_CONFIG_database_driver=mongodb","APP_CONFIG_database_mongodb_uri=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":27017"),"APP_CONFIG_auth_password=".concat(e.codexAuthPassword),"APP_CONFIG_auth_secret=".concat(i)].join("\n"),mounts:[{type:"volume",name:"uploads",mountPath:"/usr/src/app/uploads"},{type:"volume",name:"db",mountPath:"/usr/src/app/db"},{type:"file",content:["# Custom Config, view Here https://github.com/codex-team/codex.docs/blob/main/docs-config.yaml","# Can Also Be configured with ENV, see here https://docs.codex.so/configuration#override-properties-with-environment-variables"].join("\n"),mountPath:"/usr/src/app/docs-config.yaml"}],source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"mongo",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"collabora-office",meta:{name:"Collabora Office",description:"Collabora Online is a powerful, flexible, and secure online office suite designed to break free from vendor lock-in and put you in full control of your documents. It offers a private office suite in the cloud, compatible with trillions of existing documents, and can be integrated into your own infrastructure or accessed via one of our trusted hosting partners. It is excellent for enterprises that need a powerful office suite in the cloud, or on-premise, that protects their privacy and allows them to keep full control of their sensitive corporate data. Collabora Online offers a range of business benefits that support collaboration and productivity whilst maintaining your digital sovereignty and keeping your corporate documents secure. It includes a text document editor, a spreadsheet tool, a presentation creator, and a drawing tool, all designed to provide a true WYSIWYG editing experience and make visualising your document layout incredibly easy. You can open any document, add comments, track changes, format and style your pages, create spreadsheets with advanced formulas, design attractive presentations, and draw shapes and diagrams with ease. Collabora Online is fully open source, offering native integration in Android and iOS, and prioritizing privacy by default.",instructions:"Access the admin console at https://<domain>
1/browser/dist/admin/admin.html",changeLog:[{date:"2023-07-14",description:"First Release"},{date:"2025-07-15",description:"Version bumped to 25.04.3.2.1"},{date:"2025-12-25",description:"Version bumped to 25.04.8.1.1"},{date:"2026-02-18",description:"Version bumped to 25.04.9.1.1"},{date:"2026-04-29",description:"Version bumped to 25.04.9.4.1"}],links:[{label:"Website",url:"https://collaboraonline.com"},{label:"Documentation",url:"https://sdk.collaboraonline.com/docs"},{label:"Github",url:"https://github.com/CollaboraOnline"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appUsername","appPassword","appServiceName","appServiceImage"],properties:{appUsername:{type:"string",title:"Username"},appPassword:{type:"string",title:"Password"},appServiceName:{type:"string",title:"App Service Name",default:"collabora"},appServiceImage:{type:"string",title:"App Service Image",default:"collabora/code:25.04.9.4.1"}}},benefits:[{title:"Digital Sovereignty",description:"Collabora Online is designed with your digital sovereignty in mind. It allows you to maintain full control over your sensitive corporate data, ensuring your privacy is always protected."},{title:"Powerful Online Office Suite",description:"This app provides a powerful online office suite that can be integrated into your own infrastructure or accessed via trusted hosting partners. It's perfect for enterprises that need a robust office suite in the cloud or on-premise."},{title:"World Class Compatibility",description:"Collabora Online is compatible with trillions of existing documents, making it a flexible solution for businesses of all sizes."}],features:[{title:"Collaborative Editing",description:"Collabora Online offers collaborative editing with professional features. This allows multiple users to work on the same document simultaneously, enhancing productivity and efficiency."},{title:"Customizable Integration and User Interface",description:"The app can be customized to integrate perfectly with your own solution. It also offers a flexible user interface that can be tailored to your needs."},{title:"Writer",description:"Collabora Online\u2019s text document editor provides a true WYSIWYG editing experience. You can open any document, add comments, track changes, format and style your pages with endless options."},{title:"Calc",description:"From simple spreadsheets to advanced formulas, Calc can do it all. Create giant spreadsheets, add charts, sparklines and hyperlinks, and benefit from powerful multi-column sort and filter options."},{title:"Impress",description:"Create impressive presentations with ease. Design attractive master slides, add text, images, tables and SmartArt, and collaboratively edit with your colleagues. Insert speaker notes, custom timings and transitions to engage your audience."},{title:"Draw",description:"Draw shapes and diagrams, add text, charts and tables, insert fields and links. Comment and collaborate with others, then download as an image or pdf to insert into your documents and presentations."}],tags:["Documents","Productivity","Privacy"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9980}],env:["domain=$(PRIMARY_DOMAIN)","username=".concat(e.appUsername),"password=".concat(e.appPassword),"extra_params=--o:ssl.enable=false"].join("\n")}}),{services:t}}},{slug:"commento",meta:{name:"Commento",description:"Commento is a comments widget designed to enhance the interaction on your website. It allows your readers to contribute to the discussion by upvoting comments that add value and downvoting those that don't. The widget supports markdown formatting, enabling bold, italics, external links, quotes, bullet points, code, and more. Commento also provides moderation tools to manage the conversation, allowing you to lock heated threads, remove off-topic comments, and enforce timeouts. It features a spam detection system, saving you the hassle of dealing with spammers. The widget supports nested replies, making discussions easier to follow. Importantly, Commento does not require your readers to sign up, reducing friction and encouraging more interaction. You can easily customize the look of the widget to match your website's aesthetics.",instructions:null,changeLog:[{date:"2022-12-13",description:"first release"},{date:"2024-09-30",description:"Version changed to v1.8.0"}],links:[{label:"Website",url:"https://commento.io/"},{label:"Documentation",url:"https://commento.io/"},{label:"Gitlab",url:"https://gitlab.com/commento/commento"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Derock",url:"https://github.com/ItzDerock"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"commento"},appServiceImage:{type:"string",title:"App Service Image",default:"registry.gitlab.com/commento/commento:v1.8.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"commento-db"}}},benefits:[{title:"Engage Your Audience",description:"Commento allows your readers to engage in discussions, ask questions, and provide feedback on your content. This interaction can enhance the user experience and increase the value of your website."},{title:"Effortless Integration",description:"Adding Commento to your website is a breeze. It usually takes less than 10 minutes from start to finish, making it a quick and easy way to enhance your website's functionality."},{title:"Customizable Appearance",description:"While Commento looks great out of the box, you can easily customize the widget to match your website's look. This ensures a seamless integration with your existing design."},{title:"Spam-Free Environment",description:"Don't waste time fighting spammers. Commento comes with built-in spam detection, ensuring a clean and pleasant discussion environment for your readers."}],features:[{title:"Sticky Comments",description:"Pin important comments to the top of the thread to ensure they don't get lost in the discussion."},{title:"Upvotes and Downvotes",description:"Your readers can upvote comments that contribute to the discussion and downvote those that don't, promoting a healthy and constructive conversation."},{title:"Markdown Formatting",description:"Commento supports markdown formatting, allowing your readers to use bold, italics, external links, quotes, bullet points, code, and more in their comments."},{title:"Moderation Tools",description:"Manage your comment threads effectively with Commento's moderation tools. You can lock heated threads, remove off-topic comments, and enforce timeouts."},{title:"Nested Replies",description:"Commento supports nested replies, similar to how Reddit comments work. This makes discussions easier to follow and understand."},{title:"No Sign-Up Required",description:"Commento reduces friction by allowing your readers to comment without creating an account, encouraging more people to join the discussion."}],tags:["Comments","Discussion","Website"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["COMMENTO_ORIGIN=https://$(PRIMARY_DOMAIN)","COMMENTO_POSTGRES=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:11",password:a}}),{services:t}}},{slug:"commentoplusplus",meta:{name:"Commento++",description:"Commento++ is a free, open-source application designed to provide a fast, lightweight comments box that you can embed in your static website. It offers a range of features including Markdown support, Disqus import, voting, automated spam detection, moderation tools, sticky comments, thread locking, and OAuth login. It also supports hot-reloading of comments and email notifications. Commento++ is designed to respect your privacy, with no adverts, and offers a more attractive comments box compared to other free and open-source alternatives. It is significantly lighter and faster than alternatives and can be deployed with a single click to a free Heroku account. For maximum control, you can also choose to self-host the application.",instructions:null,changeLog:[{date:"2023-3-25",description:"first release"}],links:[{label:"Github",url:"https://github.com/souramoo/commentoplusplus"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"commentoplusplus"},appServiceImage:{type:"string",title:"App Service Image",default:"caroga/commentoplusplus:v1.8.7"},databaseServiceName:{type:"string",title:"Database Service Name",default:"commentoplusplus-db"}}},benefits:[{title:"Privacy-Friendly",description:"Commento++ is designed with user privacy in mind. It respects your privacy and does not display any advertisements."},{title:"Lightweight and Fast",description:"Commento++ is significantly lighter and faster than other comment box alternatives. It ensures a smooth user experience without slowing down your website."},{title:"Customizable",description:"With Commento++, you have the freedom to deploy your own instance and self-host for maximum control. It also offers a prettier comments box compared to other open-source alternatives."}],features:[{title:"Markdown Support",description:"Commento++ supports Markdown, allowing users to format their comments with ease."},{title:"Import from Disqus",description:"If you're switching from Disqus, Commento++ makes it easy for you to import your existing comments."},{title:"Voting",description:"Users can vote on comments, promoting engagement and interaction within your website."},{title:"Automated Spam Detection",description:"Commento++ integrates with Askimet and Perspective for automated spam detection, keeping your comments section clean and relevant."},{title:"Moderation Tools",description:"Commento++ provides moderation tools, allowing you to manage and control the comments on your website."},{title:"Sticky Comments and Thread Locking",description:"You can make important comments sticky or lock threads when necessary."},{title:"OAuth Login and Single Sign-On",description:"Users can log in using their Google, Github, or Twitter accounts for convenience."},{title:"Hot-Reloading of Comments",description:"Comments are automatically updated in real-time, ensuring that users always see the latest comments."},{title:"Email Notifications",description:"Users receive email notifications about new comments, keeping them engaged and encouraging them to return to your website."}],tags:["Comments","Website","Open Source"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["COMMENTO_ORIGIN=https://$(PRIMARY_DOMAIN)","COMMENTO_POSTGRES=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"COMMENTO_ENABLE_WILDCARDS=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:11",password:a}}),{services:t}}},{slug:"confluence",meta:{name:"Confluence",description:"Confluence is a powerful team collaboration and knowledge-sharing tool. It allows you to create, organize, and collaborate on content in a centralized space. Designed for project management, documentation, and team communication, Confluence helps streamline workflows and enhances productivity. It offers seamless integration with other Atlassian products such as Jira and Bitbucket, making it an ideal solution for agile teams. The intuitive editor and advanced search capabilities ensure that team knowledge is easily accessible. With extensive customization, permission controls, and plugin support, Confluence is a scalable solution for teams of all sizes.",instructions:"Get the License Key to access Confluence.",changeLog:[{date:"2025-02-13",description:"First Release"}],links:[{label:"Documentation",url:"https://confluence.atlassian.com"},{label:"Dockerhub",url:"https://hub.docker.com/r/atlassian/confluence-server"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"confluence"},appServiceImage:{type:"string",title:"App Service Image",default:"atlassian/confluence-server:8.6-ubuntu-jdk17"}}},benefits:[{title:"Centralized Knowledge Base",description:"Confluence provides a centralized space for team documentation and knowledge sharing. This ensures that all team members can easily access important information and contribute to content creation."},{title:"Seamless Collaboration",description:"Teams can collaborate in real-time on documents, comment on pages, and track changes easily. This helps improve communication and boosts overall team productivity."},{title:"Integration with Atlassian Ecosystem",description:"Confluence integrates seamlessly with Jira, Bitbucket, and other Atlassian tools, providing a cohesive workflow for agile teams. This makes task tracking, reporting, and documentation effortless."}],features:[{title:"Intuitive Content Editor",description:"The content editor allows you to create well-structured and visually appealing documents with ease. It supports rich text, tables, media embeds, and macros to enhance content."},{title:"Advanced Search and Organization",description:"Confluence offers powerful search and organization features, helping you quickly find pages and spaces. Tags, labels, and hierarchical page structures improve content discoverability."},{title:"Permissions and Access Control",description:"With detailed permissions and access control settings, you can ensure that sensitive information is protected while allowing open collaboration on other content."},{title:"Customization and Plugins",description:"Confluence supports extensive customization and a wide range of plugins. This allows you to tailor the platform to meet your team\u2019s specific needs."},{title:"Version History and Page Tracking",description:"Track changes made to pages with version history, ensuring that you can review, compare, and restore previous versions if needed."}],tags:["Collaboration","Documentation","Productivity","Project Management"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8090}],mounts:[{type:"volume",name:"data",mountPath:"/var/atlassian/application-data/confluence"}]}}),{services:t}}},{slug:"convertx",meta:{name:"Convertx",description:"Convertx is a free, open-source application designed to provide a fast, lightweight media conversion tool that you can use on your desktop or integrate into your workflows. It offers a range of features including support for multiple file formats, batch processing, video trimming, audio extraction, and format customization. It also supports hot-reloading of tasks and notifications upon completion.",instructions:null,changeLog:[{date:"2025-01-20",description:"First Release"},{date:"2025-12-25",description:"Version bumped to v0.16.0"},{date:"2026-02-18",description:"Version bumped to v0.17.0"}],links:[{label:"Github",url:"https://github.com/C4illin/ConvertX/tree/main"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"convertx"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/c4illin/convertx:v0.17.0"}}},benefits:[{title:"Efficient and Fast",description:"Convertx is optimized for high performance, enabling fast media conversion without sacrificing quality."},{title:"User-Friendly",description:"Convertx is designed with an intuitive interface, making it accessible to both novice and advanced users."},{title:"Customizable and Open-Source",description:"Convertx is open-source, allowing you to customize it to your exact needs and deploy it in the environment of your choice."}],features:[{title:"Multi-Format Support",description:"Convertx supports a wide range of file formats, ensuring compatibility with your media conversion needs."},{title:"Batch Processing",description:"Easily process multiple files at once, saving time and effort for large workloads."},{title:"Video Trimming",description:"Trim videos to the desired length with precision, directly within Convertx."},{title:"Audio Extraction",description:"Extract audio from video files effortlessly and save them in your preferred format."},{title:"Format Customization",description:"Customize the output format, including resolution, bitrate, and encoding options."},{title:"Hot-Reloading of Tasks",description:"Monitor and manage tasks in real-time with live progress updates."},{title:"Notification Support",description:"Receive notifications when your media conversions are complete, even for large batches."}],tags:["Media Conversion","Open Source","Efficiency","Customization"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["JWT_SECRET=".concat(a),"ACCOUNT_REGISTRATION=true","HTTP_ALLOWED=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"convex",meta:{name:"Convex",description:"Convex is the open-source reactive database and backend platform designed for modern app developers. It provides real-time data synchronization, TypeScript-first development, and built-in features like authentication, file storage, and serverless functions. The self-hosted version includes the main backend service, dashboard for data management, and PostgreSQL database support. Perfect for building full-stack applications with automatic caching, real-time updates, and strong consistency guarantees.",instructions:'Click the "Generate Admin Key" script on the backend service, copy the printed key, then use it to log into the Convex dashboard.',changeLog:[{date:"2026-02-02",description:"Template Release (1ece1b58fdb62ccd618f1d8183fa2d7ba414cc35)"},{date:"2026-05-15",description:"Update to e03b3a72dc412eeff4c1a6958ef1879712fb70e6"}],links:[{label:"Website",url:"https://www.convex.dev"},{label:"Documentation",url:"https://docs.convex.dev"},{label:"GitHub",url:"https://github.com/get-convex/convex-backend"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dashboardServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"convex"},appServiceImage:{type:"string",title:"Backend Service Image",default:"ghcr.io/get-convex/convex-backend:e03b3a72dc412eeff4c1a6958ef1879712fb70e6"},dashboardServiceImage:{type:"string",title:"Dashboard Service Image",default:"ghcr.io/get-convex/convex-dashboard:e03b3a72dc412eeff4c1a6958ef1879712fb70e6"},convexCloudOrigin:{type:"string",title:"Convex Cloud Origin",default:"https://$(PRIMARY_DOMAIN)",description:"Public URL for the Convex backend API"},convexSiteOrigin:{type:"string",title:"Convex Site Origin",default:"https://$(PRIMARY_DOMAIN):3211",description:"Public URL for the Convex site proxy"},nextPublicDeploymentUrl:{type:"string",title:"Next Public Deployment URL",default:"https://$(PRIMARY_DOMAIN)",description:"Public URL for the deployment (used by dashboard)"},instanceSecret:{type:"string",title:"Instance Secret",default:"",description:"Secret key for instance authentication (auto-generated if empty)"},databaseType:{type:"string",title:"Database Type",default:"none",description:"Select the database type to use",oneOf:[{enum:["none"],title:"None (No Database)"},{enum:["DATABASE_URL"],title:"Generic Database URL"},{enum:["POSTGRES_URL"],title:"PostgreSQL"},{enum:["MYSQL_URL"],title:"MySQL"}]},databaseUrl:{type:"string",title:"Database URL",default:"",description:"Full database connection URL (required if database type is selected)"},rustLog:{type:"string",title:"Rust Log Level",default:"info",description:"Logging level for Rust backend (e.g., info, debug, warn, error)"},documentRetentionDelay:{type:"string",title:"Document Retention Delay",default:"172800",description:"Document retention delay in seconds (default: 2 days)"},instanceName:{type:"string",title:"Instance Name",default:"",description:"Name for this Convex instance (defaults to the app service name if left empty)"},awsAccessKeyId:{type:"string",title:"AWS Access Key ID",default:"",description:"AWS access key for S3 storage (optional)"},awsSecretAccessKey:{type:"string",title:"AWS Secret Access Key",default:"",description:"AWS secret key for S3 storage (optional)"},awsRegion:{type:"string",title:"AWS Region",default:"",description:"AWS region for S3 storage (optional)"},s3EndpointUrl:{type:"string",title:"S3 Endpoint URL",default:"",description:"Custom S3 endpoint URL (for S3-compatible storage, optional)"},s3StorageFilesBucket:{type:"string",title:"S3 Files Bucket",default:"",description:"S3 bucket name for file storage (optional)"},s3StorageModulesBucket:{type:"string",title:"S3 Modules Bucket",default:"",description:"S3 bucket name for modules storage (optional)"},nextPublicLoadMonacoInternally:{type:"string",title:"Load Monaco Internally",default:"",description:"Load Monaco editor internally (optional)"}}},benefits:[{title:"Real-time Data Synchronization",description:"Automatic real-time updates across all clients with optimistic concurrency control and conflict resolution for seamless user experiences."},{title:"TypeScript-First Development",description:"Write your entire backend in TypeScript with full type safety from database schema to client-side queries and mutations."},{title:"Built-in Reactive Queries",description:"Database queries automatically cache and subscribe to data changes, eliminating the need for manual cache invalidation or WebSocket management."},{title:"Strong Consistency Guarantees",description:"ACID compliance with immediate consistency, serializable isolation, and automatic conflict resolution using optimistic multi-version concurrency control."},{title:"Serverless Functions Runtime",description:"Deploy server functions with automatic scaling, hot reloads, and integrated development workflow using the Convex CLI."},{title:"Integrated Development Experience",description:"Built-in dashboard for data browsing, function testing, log viewing, and environment variable management with cloud-first development workflow."}],features:[{title:"Reactive Database",description:"NoSQL-style documents with relationships, custom indexes, and real-time subscriptions that automatically update your UI when data changes."},{title:"TypeScript Functions",description:"Write queries, mutations, and actions in TypeScript with full type safety and automatic code generation for client-side usage."},{title:"Real-time Subscriptions",description:"Automatic real-time data synchronization across all connected clients with optimistic updates and conflict resolution."},{title:"Built-in Authentication",description:"Integrated user authentication system with support for various providers and secure session management."},{title:"File Storage",description:"Built-in file upload and storage c
1apabilities with automatic URL generation and secure access controls."},{title:"Background Jobs",description:"Schedule functions to run in the background with cron job support and automatic retry mechanisms for reliable task execution."},{title:"HTTP Endpoints",description:"Create HTTP endpoints for webhooks and external API integrations with automatic request routing and response handling."},{title:"Vector Search",description:"Built-in vector search capabilities for AI and machine learning applications with efficient similarity matching."},{title:"Development Dashboard",description:"Web-based interface for browsing data, testing functions, viewing logs, and managing environment variables during development."},{title:"CLI Integration",description:"Command-line tools for deployment, function management, schema migrations, and local development with hot reloading."},{title:"Import/Export Tools",description:"Streaming import and export capabilities for data migration and backup with snapshot support for point-in-time recovery."},{title:"Runtime Validation",description:"Automatic validation for function arguments and database data with schema enforcement and type checking at runtime."}],tags:["Database","Backend","Real-time","TypeScript","Serverless","Full-stack","Reactive","WebSocket","API","Authentication"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],i=a(2474).randomBytes(32).toString("hex"),o=["CONVEX_CLOUD_ORIGIN=".concat(e.convexCloudOrigin||"https://$(PRIMARY_DOMAIN)"),"CONVEX_SITE_ORIGIN=".concat(e.convexSiteOrigin||"https://$(PRIMARY_DOMAIN):3211"),"INSTANCE_NAME=".concat(e.instanceName||e.appServiceName),"INSTANCE_SECRET=".concat(e.instanceSecret||i),"RUST_LOG=".concat(e.rustLog||"info"),"DOCUMENT_RETENTION_DELAY=".concat(e.documentRetentionDelay||"172800"),"DO_NOT_REQUIRE_SSL=true","DISABLE_BEACON=true"];e.databaseType&&"none"!==e.databaseType&&e.databaseUrl&&o.push("".concat(e.databaseType,"=").concat(e.databaseUrl)),e.awsAccessKeyId&&o.push("AWS_ACCESS_KEY_ID=".concat(e.awsAccessKeyId)),e.awsSecretAccessKey&&o.push("AWS_SECRET_ACCESS_KEY=".concat(e.awsSecretAccessKey)),e.awsRegion&&o.push("AWS_REGION=".concat(e.awsRegion)),e.s3EndpointUrl&&o.push("S3_ENDPOINT_URL=".concat(e.s3EndpointUrl)),e.s3StorageFilesBucket&&o.push("S3_STORAGE_FILES_BUCKET=".concat(e.s3StorageFilesBucket)),e.s3StorageModulesBucket&&o.push("S3_STORAGE_MODULES_BUCKET=".concat(e.s3StorageModulesBucket)),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-backend"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3210}],env:o.join("\n"),scripts:[{name:"Generate Admin Key",script:"./generate_admin_key.sh"}],mounts:[{type:"volume",name:"data",mountPath:"/convex/data"}],ports:[{published:3210,target:3210,protocol:"tcp"},{published:3211,target:3211,protocol:"tcp"}]}});var n=["NEXT_PUBLIC_DEPLOYMENT_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-backend.$(EASYPANEL_HOST)")];return e.nextPublicLoadMonacoInternally&&n.push("NEXT_PUBLIC_LOAD_MONACO_INTERNALLY=".concat(e.nextPublicLoadMonacoInternally)),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-dashboard"),source:{type:"image",image:e.dashboardServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6791}],env:n.join("\n")}}),{services:t}}},{slug:"convoy",meta:{name:"Convoy",description:"Convoy is a self-hosted webhooks gateway. It receives, transforms, retries, and delivers webhooks between your services, with a dashboard for tracking every event and delivery. This template runs Convoy's real production architecture \u2014 separate control-plane (web) and data-plane (agent) processes behind a Caddy gateway, backed by Postgres and Redis \u2014 matching the project's own reference docker-compose rather than a single container.",instructions:"On first boot, an admin account is created with the email you configured and a randomly generated password printed to the web service's deploy logs. Open those logs, copy the password, and sign in. Self-signup is disabled by default. Once signed in, create an organization and project to get your ingestion and API endpoints.",changeLog:[{date:"2026-07-21",description:"first release"}],links:[{label:"Website",url:"https://getconvoy.io"},{label:"GitHub",url:"https://github.com/frain-dev/convoy"},{label:"Documentation",url:"https://getconvoy.io/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminEmail"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"convoy"},appServiceImage:{type:"string",title:"App Service Image",default:"getconvoy/convoy:v26.6.6"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]",description:"Email for the first admin account. Its password is generated on first boot \u2014 find it in the web service's deploy logs."},publicDomain:{type:"string",title:"Public Domain",description:"Optional, without https:// or a trailing slash (e.g. convoy.example.com). Leave blank to deploy on the domain Easypanel assigns automatically."}}},benefits:[{title:"Real Production Architecture",description:"Runs Convoy's actual control-plane and data-plane processes as separate services, the way the project's own reference deployment does, instead of a single do-everything container."},{title:"Reliable Delivery With Retries",description:"Failed webhook deliveries are automatically retried with backoff, so a subscriber's brief downtime doesn't mean a lost event."},{title:"Full Event History",description:"Every inbound and outbound event is logged with its payload and delivery attempts, so you can debug integrations without re-triggering them."}],features:[{title:"Webhook Transformation",description:"Transform incoming payloads before they're forwarded to subscribers, instead of forcing every consumer to handle the source format."},{title:"Multi-Tenant Projects",description:"Organize sources, subscriptions, and event history into separate projects and organizations from one instance."},{title:"Delivery Dashboard",description:"Track event delivery status, retries, and failures from a web dashboard instead of digging through logs."}],tags:["Webhooks","API Gateway","Self-Hosted","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(32),r="".concat(e.appServiceName,"-db"),s="".concat(e.appServiceName,"-redis"),c="".concat(e.appServiceName,"-web"),l="".concat(e.appServiceName,"-agent"),p=e.publicDomain||"$(PROJECT_NAME)-".concat(e.appServiceName,".local"),d={auth:{native:{enabled:!0},jwt:{enabled:!0,secret:o,expiry:3600,refresh_secret:n,refresh_expiry:86400},is_signup_enabled:!1},database:{type:"postgres",scheme:"postgres",host:"$(PROJECT_NAME)_".concat(r),username:"postgres",password:a,database:"convoy",options:"sslmode=disable",port:5432},redis:{scheme:"redis",host:"$(PROJECT_NAME)_".concat(s),username:"default",password:i,port:6379},server:{http:{ssl:!1,port:5005,socket_port:5008}},env:"production",host:p,root_path:"",storage_policy:{type:"on_prem",on_prem:{path:"/convoy/storage"}}},u={type:"file",content:JSON.stringify(d,null,2),mountPath:"/convoy.json"};t.push({type:"app",data:{serviceName:c,source:{type:"image",image:e.appServiceImage},deploy:{command:"/cmd migrate up --config /convoy.json && /cmd bootstrap --email ".concat(e.adminEmail," --config /convoy.json && /cmd server --config /convoy.json")},mounts:[u,{type:"volume",name:"storage",mountPath:"/convoy/storage"}]}}),t.push({type:"app",data:{serviceName:l,source:{type:"image",image:e.appServiceImage},deploy:{command:"sleep 20 && /cmd agent --config /convoy.json"},mounts:[u]}});var m=":80 {\n\thandle /ingest/* {\n\t\treverse_proxy $(PROJECT_NAME)_".concat(l,":5008\n\t}\n\n\thandle /portal-api/events/* {\n\t\treverse_proxy $(PROJECT_NAME)_").concat(l,":5008\n\t}\n\thandle /portal-api/events {\n\t\treverse_proxy $(PROJECT_NAME)_").concat(l,":5008\n\t}\n\n\thandle /portal-api/eventdeliveries/* {\n\t\treverse_proxy $(PROJECT_NAME)_").concat(l,":5008\n\t}\n\thandle /portal-api/eventdeliveries {\n\t\treverse_proxy $(PROJECT_NAME)_").concat(l,":5008\n\t}\n\n\thandle {\n\t\treverse_proxy $(PROJECT_NAME)_").concat(c,":5005\n\t}\n}\n");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:"caddy:2.8.4-alpine"},domains:[{host:e.publicDomain||"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"file",content:m,mountPath:"/etc/caddy/Caddyfile"}]}}),t.push({type:"postgres",data:{serviceName:r,databaseName:"convoy",password:a}}),t.push({type:"redis",data:{serviceName:s,password:i}}),{services:t}}},{slug:"cookcli",meta:{name:"CookCLI",description:"CookCLI is a command line recipe manager for Cooklang files that can also run a local web interface for browsing and working with recipe collections. This template deploys the CookCLI server mode with persistent recipe storage.",instructions:"Deploy the template and open the app URL to access the CookCLI web interface.",changeLog:[{date:"2026-03-31",description:"Initial template release"},{date:"2026-04-29",description:"Version Bumped to 0.29.1"}],links:[{label:"Website",url:"https://cooklang.org/cli/"},{label:"Documentation",url:"https://cooklang.org/cli/help/"},{label:"GitHub",url:"https://github.com/cooklang/cookcli"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cookcli"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/cooklang/cookcli:0.29.1"}}},benefits:[{title:"Self-Hosted Recipe Workspace",description:"Keep your Cooklang recipe collection in your own infrastructure with full control over files and updates."},{title:"Web and CLI Friendly",description:"Run the same CookCLI toolchain while exposing a browser-based recipe UI."},{title:"Simple Persistent Storage",description:"Store recipes in a mounted volume at /recipes for reliable long-term use."}],features:[{title:"Cooklang Native",description:"Works directly with Cooklang recipe files without proprietary formats."},{title:"Lightweight Service",description:"Single-container deployment with straightforward configuration."},{title:"Persistent Recipe Mount",description:"Volume-backed /recipes path ensures files survive redeployments."}],tags:["Recipes","Cooklang","CLI","Productivity","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9080}],mounts:[{type:"volume",name:"recipes",mountPath:"/recipes"}]}}),{services:t}}},{slug:"copyparty",meta:{name:"Copyparty",description:"Copyparty turns a server into a file server with resumable uploads and downloads, accessible from any web browser. It supports HTTP(S), WebDAV, FTP(S), SFTP and TFTP in a single lightweight process, with per-folder, per-user permissions, thumbnails, a media player, zip/tar folder downloads, full-text and tag search, a markdown viewer and editor, and RSS/OPDS feeds. It is built for turning almost any device into a capable, self-hosted alternative to cloud file-sharing services.",instructions:'Log in with the username and password you set below \u2014 read/write/move/ delete/admin access is scoped to that account only, so nothing is publicly readable by default. Uploaded files live under the "data" volume, which is shared at the webroot. Add more accounts or volumes later by editing the mounted /cfg/copyparty.conf file and redeploying.',changeLog:[{date:"2026-07-30",description:"first release"}],links:[{label:"Website",url:"https://copyparty.eu"},{label:"GitHub",url:"https://github.com/9001/copyparty"},{label:"Documentation",url:"https://github.com/9001/copyparty#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminUsername"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"copyparty"},appServiceImage:{type:"string",title:"App Service Image",default:"copyparty/ac:1.20.19"},adminUsername:{type:"string",title:"Admin Username",default:"admin"},adminPassword:{type:"string",title:"Admin Password",description:"Auto-generated if left blank \u2014 find it in the conf file in the storage section after deployment."}}},benefits:[{title:"Any Protocol",description:"Serves the same files over HTTP(S), WebDAV, FTP(S), SFTP and TFTP"},{title:"Resumable Transfers",description:"Uploads and downloads survive interrupted connections"},{title:"Self-Hosted",description:"Runs as a single lightweight process on your own storage"}],features:[{title:"Per-User Permissions",description:"Scope read, write, move, delete and admin access per account"},{title:"Media Player and Thumbnails",description:"Browse with thumbnails and play audio/video straight from the browser"},{title:"Full-Text and Tag Search",description:"Search by filename, contents, size, date or media tags"},{title:"Markdown Viewer and Editor",description:"View and edit markdown files directly in the browser"}],tags:["File Sharing","File Management","Self-Hosted","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.adminPassword||v(),i="[global]\n  e2dsa\n  e2ts\n  xff-src: lan\n  rproxy: -1\n\n[accounts]\n  ".concat(e.adminUsername,": ").concat(a,"\n\n[/]\n  /w\n  accs:\n    rwmda: ").concat(e.adminUsername,"\n  flags:\n    e2ds\n");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3923}],mounts:[{type:"volume",name:"data",mountPath:"/w"},{type:"file",content:i,mountPath:"/cfg/copyparty.conf"}]}}),{services:t}}},{slug:"coralproject",meta:{name:"Coral",description:"Coral is a revolutionary app designed to enhance the commenting experience on your website. It employs smart technology and effective design to improve interactions, making it easier for commenters to engage in meaningful discussions. With Coral, commenters can easily identify journalists in the conversation, mute disruptive voices, share discussions, receive notifications, and see new comment alerts instantly. The app also provides a full suite of tools for moderators to easily identify disruptive comments and highlight the best submissions, all backed by smart AI technology. Coral is built for publishing, increasing loyalty and engagement on your website, giving you complete control of the interactions and data, without inserting any ads or trackers on your page. It's lightweight, secure, flexible, responsive, and fully customizable, allowing you to connect it to your existing registration system and customize the look and feel to match your brand. Coral is used across the globe in nearly 20 countries and 14 languages, in newsrooms large and small, trusted by more than 500 news sites in 28 countries, including The Washington Post, The Financial Times, Wired, USA Today, and Foreign Policy.",instructions:null,changeLog:[{date:"2023-2-19",description:"first release"},{date:"2023-06-18",description:"Fixed bug that prevented the application from working version has been replaced with the current version"},{date:"2024-09-30",description:"Version changed to 9.3.1"},{date:"2025-01-09",description:"Version bumped to 9.6.1"},{date:"2025-07-15",description:"Version bumped to 9.9.7"},{date:"2025-12-25",description:"Version bumped to 9.11.1"},{date:"2026-02-18",description:"Version bumped to 9.11.2"},{date:"2026-04-29",description:"Version bumped to 9.11.3"}],links:[{label:"Website",url:"https://coralproject.net/"},{label:"Documentation",url:"https://docs.coralproject.net/"},{label:"Github",url:"https://github.com/coralproject/talk"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","redisServiceName","databaseServiceName","enableMetricsPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"coral"},appServiceImage:{type:"string",title:"App Service Image",default:"coralproject/talk:9.11.3"},redisServiceName:{type:"string",title:"Redis Service Name",default:"coral-redis"},databaseServiceName:{type:"string",title:"Database Service Name",default:"coral-db"},enableMetricsPort:{type:"boolean",title:"Metrics Port Enable",default:!1}}},benefits:[{title:"Improved Commenting Experience",description:"Coral enhances the commenting experience on your website by using smart technology and effective design. It helps to increase loyalty and engagement on your website, giving you complete control of the interactions and data."},{title:"No Ads or Trackers",description:"Coral prioritizes user privacy. It does not insert any ads or trackers on your page, making it more secure, faster to load, and transparently better for you and your users."},{title:"Customizable and Flexible",description:"Coral is lightweight, secure, flexible, and responsive. You can easily connect it to your existing registration system, fully customize the look and feel, and extend the platform with our GraphQL API."}],features:[{title:"Smart Commenting Tools",description:"With Coral, your commenters can identify journalists in the conversation, mute annoying voices, share discussions, receive notifications, and see new comment alerts instantly."},{title:"Effective Moderation Tools",description:"Coral provides a full suite of tools that help moderators easily identify disruptive comments and surface the best submissions. These tools are supported by smart AI technology."},{title:"Built for Publishing",description:"Coral is designed to increase loyalty and engagement on your website. It gives you complete control of the interactions and data, without inserting any ads or trackers on your page. It also works great on mobile."}],tags:["Communication","Community","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MONGODB_URI=mongodb://mongo:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":27017"),"REDIS_URI=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"SIGNING_SECRET=".concat(btoa(y(45))),"NODE_ENV=production"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],ports:e.enableMetricsPort?[{protocol:"tcp",published:9e3,target:9e3}]:[]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:a}}),t.push({type:"mongo",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"corsfix",meta:{name:"Corsfix",description:"Corsfix is a CORS proxy that eliminates cross-origin errors and lets you fetch any data for your website with zero hassle. It acts as an intermediary between your applications and target servers, automatically adding the necessary CORS headers to responses. Corsfix handles your requests securely while keeping API keys and credentials safe.",instructions:null,changeLog:[{date:"2026-02-24",description:"Initial template"},{date:"2026-04-29",description:"Version bumped to b464c8b69d10e035c416df4bbe082ae896090c67"}],links:[{label:"Corsfix CORS proxy",url:"https://corsfix.com"},{label:"Documentation",url:"https://corsfix.com/docs"},{label:"Github",url:"https://github.com/corsfix/corsfix"}],contributors:[{name:"Corsfix",url:"https://github.com/corsfix"}],schema:{type:"object",required:["appServiceName","appServiceImage","proxyServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"corsfix"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/corsfix/corsfix-app:b464c8b69d10e035c416df4bbe082ae896090c67"},proxyServiceImage:{type:"string",title:"Proxy Service Image",default:"ghcr.io/corsfix/corsfix-proxy:b464c8b69d10e035c416df4bbe082ae896090c67"}}},benefits:[{title:"Fix CORS Errors Instantly",description:"Eliminate cross-origin errors that prevent browsers from accessing resources. Just one line change to your code and Corsfix handles the rest, no complex server-side workarounds needed."},{title:"Self-Hosted and Private",description:"Run Corsfix on your own infrastructure with full control over your data and proxy configurations. No third-party dependencies or external services involved."},{title:"Secure by Design",description:"Protected against SSRF with DNS-level validation to block access to localhost, private networks, and local files. Cookie leakage is prevented by renaming Set-Cookie headers to X-Corsfix-Set-Cookie, stopping unintended cookie sharing across proxied domains."},{title:"Minimal Latency",description:"Responses are streamed directly from the target server through the proxy, ensuring minimal latency without buffering the entire response first."},{title:"Seamless Integration",description:"Add the proxy URL before your target API endpoint and you're done. No SDK or library required \u2014 works with any HTTP client or frontend framework."}],features:[{title:"App Dashboard",description:"A web interface for managing which website domains can access your proxy and which target domains the proxy is allowed to fetch."},{title:"CORS Proxy Server",description:"A high-performance proxy server that acts as an intermediary between your applications and target servers, automatically adding the necessary CORS headers to responses for seamless cross-origin communication."},{title:"Secure API Key Management",description:"Securely manage API keys and credentials without exposing them in your frontend code. Keep sensitive data safe while still accessing the services you need."},{title:"Override Request Headers",description:"Override forbidden headers that browsers normally restrict, giving you full control over the request headers sent to the target server."},{title:"Cached Responses",description:"Set cache headers on proxied responses to speed up repeated requests and reduce load on target servers."},{title:"JSONP Response",description:"Support for JSONP responses, enabling cross-origin data fetching for legacy applications that rely on JSONP callbacks."},{title:"Playground",description:"A built-in playground to test proxy requests directly from the dashboard, making it easy to debug and verify your configurations before deploying."},{title:"Metrics",description:"Monitor traffic and request volume to your proxy with built-in metrics, giving you visibility into usage patterns and performance."}],tags:["Proxy","CORS","Networking","Developer Tools"],logo:"logo.svg",screenshots:["screenshot1.jpg","screenshot2.jpg","screenshot3.jpg","screenshot4.jpg","screenshot5.jpg","screenshot6.jpg","screenshot7.jpg"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(32);return t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-app"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["MONGODB_URI=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:27017/?tls=false"),"REDIS_URI=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"KEK_VERSION=KEK_VERSION_1","KEK_VERSION_1=".concat(n),"AUTH_SECRET=".concat(o),"AUTH_TRUST_HOST=true","AUTH_URL=https://$(PRIMARY_DOMAIN)","PROXY_DOMAIN=$(PROJECT_NAME)-".concat(e.appServiceName,"-proxy.$(EASYPANEL_HOST)")].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-proxy"),source:{type:"image",image:e.proxyServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["MONGODB_URI=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:27017/?tls=false"),"REDIS_URI=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"KEK_VERSION_1=".concat(n),"APP_DOMAIN=$(PROJECT_NAME)-".concat(e.appServiceName,"-app.$(EASYPANEL_HOST)")].join("\n")}}),{services:t}}}
1,{slug:"corteza",meta:{name:"Corteza",description:"Corteza is a powerful, open-source low-code platform designed to streamline the process of app development, business process integration, and data harmonization. Built with a backend in Golang and a front end in Vue.js, Corteza allows you to easily build native web apps and expand your software ecosystem with complete control and flexibility. You can connect with any record data source, control everything you build, transform your data into a standardized JSON format, and build unlimited web applications and process workflows using block-based tools and Javascript automations. Corteza is cloud-native and deploys via Docker containers, providing a seamless and efficient app development experience. It is 100% free and open-source, ensuring that it will always be accessible to all.",instructions:"Create an account to login. The first account created will have administrator priviledges. Go to /admin for the admijnistration interface",changeLog:[{date:"2023-3-2",description:"first release"},{date:"2024-09-30",description:"Version changed to 2023.9.8"},{date:"2025-01-09",description:"Version bumped to 2024.9.0"},{date:"2025-07-15",description:"Version bumped to 2024.9.3"},{date:"2026-02-18",description:"Version bumped to 2024.9.7"},{date:"2026-04-29",description:"Version bumped to 2024.9.8"}],links:[{label:"Website",url:"https://cortezaproject.org"},{label:"Documentation",url:"https://docs.cortezaproject.org"},{label:"Github",url:"https://github.com/cortezaproject/corteza"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"corteza"},appServiceImage:{type:"string",title:"App Service Image",default:"cortezaproject/corteza:2024.9.8"},databaseServiceName:{type:"string",title:"Database Service Name",default:"corteza-db"}}},benefits:[{title:"Open-Source and Free",description:"Corteza is a 100% open-source platform, meaning it is freely available to all. You can use, modify, distribute or even sell Corteza or apps built with it under your own license and trademark for free, with no obligation to publish your modified code."},{title:"Complete Control",description:"Corteza gives you complete flexibility, freedom, and control over your platform and everything you build on it. You can export and import complete app configurations, workflows, and record data without limits."},{title:"Data Standardization",description:"Corteza allows you to transform all data into a standardized JSON format to create data models for app and workflows or to federate out."},{title:"Unlimited App Creation",description:"With Corteza, you can create unlimited web applications and process workflows using block-based tools and Javascript automations in a fraction of the time of traditional coding."}],features:[{title:"Low-Code Platform",description:"Corteza is a fully standardized low-code app development platform. It makes it easy to build native web apps and expand your third-party software ecosystem."},{title:"Integration Management",description:"Corteza allows you to integrate with data from any machine-readable system or database, regardless of format, across and between instances."},{title:"Business Process Workflows",description:"Corteza enables you to create business process workflows. You can deploy applications and workflows instantly, iterate and redeploy as much as you want."},{title:"Data Harmonization",description:"Corteza provides a platform for data harmonization. It allows you to transform all data into a standardized JSON format to create data models for app and workflows or to federate out."}],tags:["Low-Code Platform","App Development","Business Process","Integration","Data Harmonization"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(512),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DOMAIN=https://$(PRIMARY_DOMAIN)","AUTH_BASE_URL=https://$(PRIMARY_DOMAIN)/auth","VERSION=2022.9.8","DB_DSN=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"AUTH_JWT_SECRET=".concat(a),"HTTP_WEBAPP_ENABLED=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:13",password:i}}),{services:t}}},{slug:"countly",meta:{name:"Countly",description:"Countly is an innovative, open-source analytics and engagement platform designed to help you understand and optimize customer journeys in web, mobile, and desktop applications. Built with a flexible architecture, Countly supports multiple integrations and can be deployed on-premises or in the cloud. This platform enables developers and product managers to gain real-time insights into user behavior, track important metrics, and enhance product experiences through push notifications, A/B testing, and other engagement features. Countly is cloud-native, deploys via Docker containers, and provides data control, security, and a streamlined experience for building and monitoring user engagement. Countly is 100% free and open-source, ensuring it is accessible to everyone.",instructions:null,changeLog:[{date:"2024-11-02",description:"Template Release"},{date:"2025-01-09",description:"Version bumped to 24.10.4"},{date:"2025-07-15",description:"Version bumped to 25.03.10"},{date:"2026-02-18",description:"Version bumped to 25.03.35"},{date:"2026-04-29",description:"Version bumped to 25.03.43"},{date:"2026-09-15",description:'Fixed image tag (had an invalid "v" prefix that doesn\'t exist on Docker Hub, causing deployments to fail) and bumped to 25.03.53-LTS'}],links:[{label:"Website",url:"https://count.ly"},{label:"Documentation",url:"https://docs.count.ly"},{label:"GitHub",url:"https://github.com/countly/countly-server"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"countly"},appServiceImage:{type:"string",title:"App Service Image",default:"countly/countly-server:25.03.53-LTS"},databaseServiceName:{type:"string",title:"Database Service Name",default:"countly-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"countly-redis"}}},benefits:[{title:"Open-Source and Free",description:"Countly is 100% open-source, providing everyone the freedom to use, modify, and distribute it under their terms."},{title:"Full Control and Flexibility",description:"Countly gives you control over user data, engagement workflows, and custom analytics setups."},{title:"Real-Time Analytics and Customization",description:"Countly allows you to transform and visualize data, creating custom reports and dashboards for various applications."},{title:"Unlimited App Monitoring",description:"Monitor multiple applications seamlessly, creating tailored engagement workflows and tracking critical metrics."}],features:[{title:"Real-Time User Analytics",description:"Gain insights into user behavior in real-time, helping you make data-driven decisions."},{title:"Push Notifications and A/B Testing",description:"Engage users effectively and optimize their experience through custom notifications and controlled A/B testing."},{title:"Customizable Dashboards and Reports",description:"Build custom dashboards to visualize data metrics and generate detailed reports."},{title:"Data Privacy and Security",description:"Countly\u2019s on-premises deployment provides complete data control, ensuring compliance with privacy standards."}],tags:["Analytics","User Engagement","Real-Time Insights","Open-Source","A/B Testing"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MONGO_INITDB_ROOT_USERNAME=mongo","MONGO_INITDB_ROOT_PASSWORD=".concat(a),"MONGO_URL=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)-").concat(e.databaseServiceName,":27017/$(PROJECT_NAME)?authSource=admin"),"REDIS_URL=redis://:".concat(i,"@$(PROJECT_NAME)-").concat(e.redisServiceName,":6379"),"COUNTLY_DBNAME=$(PROJECT_NAME)","COUNTLY_SSL_ENABLED=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/usr/share/countly"}]}}),t.push({type:"mongo",data:{serviceName:e.databaseServiceName,image:"mongo:6",password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,image:"redis:7",password:i}}),{services:t}}},{slug:"crawel4ai",meta:{name:"Crawl4AI",description:"Crawl4AI is an advanced AI-powered web crawling and data extraction tool designed to streamline the process of collecting, processing, and structuring web data for AI applications. It allows you to efficiently crawl websites, extract relevant information, and store it in structured formats such as JSON, CSV, or vector databases. With Crawl4AI, you can integrate real-time web data into your AI models, enhancing their knowledge base and enabling dynamic responses. It supports both cloud-based and on-premise deployments, making it flexible for different use cases. Crawl4AI comes with powerful features such as intelligent content filtering, automated rate-limiting handling, JavaScript rendering for dynamic pages, built-in APIs for seamless integration, and robust authentication support. The latest version, Crawl4AI 2.1, introduces enhanced AI-based content classification, improved speed optimizations, support for multi-agent crawling, and various bug fixes.",instructions:null,changeLog:[{date:"2025-02-24",description:"First Release"}],links:[{label:"GitHub",url:"https://github.com/unclecode/crawl4ai"},{label:"Documentation",url:"https://docs.crawl4ai.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"crwal4ai"},enableArm:{type:"boolean",title:"Enable ARM Support",default:!0},appServiceImage:{type:"string",title:"Service Images",oneOf:[{enum:["unclecode/crawl4ai:basic"],title:"Basic"},{enum:["unclecode/crawl4ai:all"],title:"All (ML/LLM Support)"},{enum:["unclecode/crawl4ai:gpu"],title:"GPU Support"}],enableArm:{type:"boolean",title:"Enable ARM Support",default:!1}}}},benefits:[{title:"AI-Powered Web Crawling",description:"Crawl4AI leverages artificial intelligence to efficiently extract, process, and structure web data, enabling more intelligent and automated crawling."},{title:"Scalable & Flexible",description:"Whether you need to crawl small websites or enterprise-scale platforms, Crawl4AI adapts to your needs with cloud and on-premise deployment options."},{title:"Real-Time Data Extraction",description:"Ensure your AI applications always have the latest data by dynamically retrieving and updating content from the web."},{title:"Intelligent Content Filtering",description:"Advanced filtering mechanisms help refine the crawled data, extracting only what\u2019s most relevant for AI models and analytics."},{title:"Seamless AI Integration",description:"Crawl4AI is built with AI-first applications in mind, allowing easy integration with LLMs, vector databases, and knowledge bases."}],features:[{title:"Multi-Agent Crawling",description:"Scale your crawling operations with multiple agents working simultaneously for faster and more efficient data retrieval."},{title:"AI-Based Content Classification",description:"Automatically categorize and tag extracted data based on its relevance and context using built-in AI classifiers."},{title:"JavaScript Rendering",description:"Crawl and extract data from dynamic websites that rely on JavaScript, ensuring comprehensive data coverage."},{title:"Anti-Bot Evasion",description:"Intelligent handling of rate limiting, CAPTCHAs, and anti-bot measures allows for seamless crawling without interruptions."},{title:"API-First Design",description:"Integrate easily with external applications, databases, and AI pipelines using Crawl4AI\u2019s powerful RESTful APIs."},{title:"Vector Database Compatibility",description:"Seamlessly store and retrieve embeddings for AI-driven applications, making Crawl4AI ideal for RAG-based models."},{title:"Automated Scheduler",description:"Set up automated crawling schedules to continuously collect and refresh web data without manual intervention."},{title:"Secure Authentication",description:"Crawl4AI supports user authentication and encrypted data transmission to ensure safe and secure crawling."}],tags:["Web Crawling","AI Data Extraction","Machine Learning","Vector Database","AI-Powered Search"],logo:null,screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:"".concat(e.appServiceImage).concat(e.enableArm?"-arm64":"-amd64")},domains:[{host:"$(EASYPANEL_DOMAIN)",port:11235}]}}),{services:t}}},{slug:"cronicle",meta:{name:"Cronicle",description:"Cronicle is a powerful, multi-server task scheduler and runner, with an easy-to-use web-based interface. It allows you to schedule and run scripts, commands, or software programs on a recurring basis, similar to cron jobs but with the added capability of visual management and log tracking. Cronicle supports complex workflows including dependencies between tasks, and it can distribute tasks across multiple servers for load balancing. It's ideal for automating backups, updates, data processing tasks, and more in a distributed environment.",instructions:"The default username is 'admin' and the default password is 'admin'",changeLog:[{date:"2024-03-18",description:"added template"},{date:"2024-09-30",description:"Version changed to 0.9.9"},{date:"2025-01-09",description:"Version bumped to 0"},{date:"2026-04-29",description:"Version bumped to 0.9.80"}],links:[{label:"Website",url:"https://cronicle.net/"},{label:"Github",url:"https://github.com/jhuckaby/Cronicle"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cronicle"},appServiceImage:{type:"string",title:"App Service Image",default:"soulteary/cronicle:0.9.80"}}},benefits:[{title:"Automated Task Scheduling",description:"Automate recurring tasks with precise scheduling and dependency management."},{title:"Multi-Server Support",description:"EDistribute tasks across multiple servers for improved performance and redundancy."},{title:"Visual Management",description:"Manage tasks, view logs, and monitor performance through an easy-to-use web interface."}],features:[{title:"Web-Based Interface",description:"A user-friendly web interface for managing scheduled tasks."},{title:"Support for Complex Workflows",description:"Handle complex task dependencies and conditional execution."},{title:"Distributed Execution",description:"Run tasks across multiple servers, balancing load and ensuring high availability."},{title:"Detailed Logging",description:"Keep detailed logs of all task executions for auditing and troubleshooting."}],tags:["Automation","Task Scheduler","Distributed Computing"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:"TZ=Europe/Copenhagen",deploy:{replicas:1,command:null,zeroDowntime:!0},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3012}],mounts:[{type:"volume",name:"data",mountPath:"/opt/cronicle/data"},{type:"volume",name:"logs",mountPath:"/opt/cronicle/logs"},{type:"volume",name:"plugins",mountPath:"/opt/cronicle/plugins"}]}}),{services:t}}},{slug:"crontab-guru",meta:{name:"Crontab Guru",description:"Crontab Guru is a simple web interface for managing and testing cron expressions. It provides an intuitive dashboard for creating, editing, and validating crontab entries with real-time feedback. Perfect for system administrators and developers who need to schedule tasks and want to ensure their cron expressions are correct before deployment.",instructions:"Login using the default credentials; admin/secret123",changeLog:[{date:"2025-07-21",description:"Initial release (dockeriddonuts/crontab-dashboard:1.0)"}],links:[{label:"Website",url:"https://crontab.guru"},{label:"Documentation",url:"https://crontab.guru/examples.html"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"crontab-guru"},appServiceImage:{type:"string",title:"App Service Image",default:"dockeriddonuts/crontab-dashboard:1.0"}}},benefits:[{title:"Cron Expression Validation",description:"Test and validate your cron expressions before deployment to ensure they run at the correct times."},{title:"Visual Cron Builder",description:"Build cron expressions visually with an intuitive interface that shows next run times."},{title:"Crontab Management",description:"Manage your crontab entries through a clean web interface with persistent storage."},{title:"Real-time Feedback",description:"Get immediate feedback on your cron expressions with human-readable descriptions."}],features:[{title:"Cron Expression Editor",description:"Visual editor for creating and modifying cron expressions with syntax highlighting and validation."},{title:"Schedule Preview",description:"Preview when your cron jobs will run with a clear timeline view of upcoming executions."},{title:"Expression Validation",description:"Real-time validation of cron expressions with detailed error messages and suggestions."},{title:"Persistent Storage",description:"Store your crontab configurations persistently with volume mounting for data retention."},{title:"Web Interface",description:"Clean, responsive web interface accessible from any browser for easy cron management."},{title:"Example Library",description:"Built-in library of common cron expression examples for quick reference and learning."}],tags:["Cron","Scheduling","System Administration","Task Management","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"volume",name:"crontab-data",mountPath:"/var/spool/cron/crontabs"}]}}),{services:t}}},{slug:"crosswatch",meta:{name:"Crosswatch",description:"CrossWatch is a self-hosted synchronization engine that keeps Plex, Jellyfin, Emby, SIMKL, Trakt, AniList, TMDb, MDBList, and Tautulli aligned. It runs locally with a web UI on port 8787 where you link accounts, define sync pairs, run them manually or on a schedule, and review stats and history. It includes a built-in tracker with snapshots, profiles for separate setups (e.g. family or different servers), watchlist and progress sync, scrobbling and webhooks to trackers, and tools like Analyzer, Editor, and Captures for stuck or inconsistent items. Configuration persists under /config; set TZ for your timezone.",instructions:null,changeLog:[{date:"2025-01-21",description:"Initial Template Release"},{date:"2026-04-29",description:"Version bumped to 0.9.18"}],links:[{label:"Website",url:"https://crosswatch.app"},{label:"Documentation",url:"https://wiki.crosswatch.app"},{label:"GitHub",url:"https://github.com/cenodude/CrossWatch"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"crosswatch"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/cenodude/crosswatch:0.9.18"},timezone:{type:"string",title:"Timezone",default:"Asia/Karachi",description:"Timezone for the application (e.g., Asia/Karachi, America/New_York, Europe/London)"}}},benefits:[{title:"One sync hub",description:"Configure Plex, Jellyfin, Emby, and multiple trackers from a single web UI with profiles for separate users or servers."},{title:"Rich sync & scrobble",description:"Watchlists, ratings, history, progress between servers, and scrobbling to Trakt, SIMKL, MDBList\u2014without requiring Plex Pass or Emby Premiere for watcher flows."},{title:"Data safety",description:"Built-in tracker snapshots and Captures help you inspect, adjust, or roll back provider data when something looks wrong."},{title:"Persistent config",description:"State lives in /config so accounts, pairs, and schedules survive restarts."}],features:[{title:"Sync pairs & scheduling",description:"Define what syncs between which services; run on demand or on simple or advanced schedules."},{title:"Analyzer & Editor",description:"Find stuck or inconsistent items across providers; inspect and fix or block entries."},{title:"Unified watchlist & player card",description:"See combined watchlists and what is playing across your setup in real time."},{title:"Timezone support",description:"Set TZ so schedules and timestamps match your region."}],tags:["Media","Sync","Plex","Jellyfin","Emby","Trakt","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8787}],env:["TZ=".concat(e.timezone)].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"crowdsec",meta:{name:"CrowdSec",description:"CrowdSec is a free, modern, and collaborative security engine utilizing crowdsourcing to generate cyber threat intelligence data. It analyzes visitor behavior & provides an adapted response to all kinds of attacks. It can read logs, spot malevolent visitors, and trigger appropriate remediation.",instructions:null,changeLog:[{date:"2024-04-09",description:"First Release"}],links:[{label:"Website",url:"https://www.crowdsec.net/"},{label:"Documentation",url:"https://docs.crowdsec.net/"},{label:"Github",url:"https://github.com/crowdsecurity/crowdsec"}],contributors:[{name:"CrowdSec",url:"https://github.com/crowdsecurity"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"crowdsec"},appServiceImage:{type:"string",title:"App Service Image",default:"crowdsecurity/crowdsec"}}},benefits:[{title:"Real-time Protection",description:"Detect and block attacks in real-time using behavior analysis."},{title:"Community-driven",description:"Benefit from shared threat intelligence across the CrowdSec community."},{title:"Easy Integration",description:"Seamlessly integrates with popular services like Nginx, Apache, and more."},{title:"Automated Response",description:"Automatically block malicious IPs and protect your infrastructure."},{title:"Open Source",description:"Free, open-source solution with a strong community backing."}],features:[{title:"Log Analysis",description:"Advanced log parsing and analysis capabilities."},{title:"Threat Detection",description:"Detect various types of attacks including brute force, port scanning, and more."},{title:"IP Reputation",description:"Access to community-maintained IP reputation database."},{title:"Multiple Backends",description:"Support for various remediation backends like iptables, nginx, etc."},{title:"API Access",description:"RESTful API for integration with other security tools."}],tags:["Security","IDS","IPS","Firewall","Protection"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["COLLECTIONS=crowdsecurity/nginx","GID=1000"].join("\n"),mounts:[{type:"file",content:"",mountPath:"/etc/crowdsec/acquis.yaml"},{type:"volume",name:"logs",mountPath:"/var/log/nginx"},{type:"volume",name:"crowdsec-db",mountPath:"/var/lib/crowdsec/data/"},{type:"volume",name:"crowdsec-config",mountPath:"/etc/crowdsec/"}]}}),{services:t}}},{slug:"cryptgeon",meta:{name:"Cryptgeon",description:"Cryptgeon is a secure, open source sharing note or file service inspired by PrivNote. It includes a server, a web page and a CLI client.",instructions:null,changeLog:[{date:"2025-03-11",description:"First Release"}],links:[{label:"Github",url:"https://github.com/cupcakearmy/cryptgeon"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cryptgeon"},appServiceImage:{type:"string",title:"App Service Image",default:"cupcakearmy/cryptgeon:2.9.1"}}},benefits:[{title:"Secure Sharing",description:"Cryptgeon uses encryption to ensure your shared notes and files remain confidential."},{title:"Multi-Platform Access",description:"Access your content via the server, web page, or CLI client for versatility."},{title:"Open Source & Transparent",description:"Built as an open source project, Cryptgeon encourages community trust and collaboration."}],features:[{title:"Server Component",description:"Handles secure sharing of notes and files."},{title:"Web Interface",description:"A user-friendly web page for easy note and file access."},{title:"CLI Client",description:"A command-line tool for managing and sharing notes and files."},{title:"Secure Encryption",description:"Implements robust encryption protocols to protect your data."}],tags:["Secure Sharing","File Sharing","Notes","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["SIZE_LIMIT=4","REDIS=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a}}),{services:t}}},{slug:"cryptpad",meta:{name:"Cryptpad",description:"CryptPad is an open-source collaborative office suite that offers end-to-end encryption, ensuring your data remains private and secure. It provides a full suite of applications, allowing you to work on various projects in real-time with your colleagues or friends. Whether you're planning a camping trip or setting up client briefs, CryptPad makes it easy to share files and collaborate without the need for account creation or app downloads. It's more than just a document editor; it's a secure platform for all your collaborative needs.",instructions:null,changeLog:[{date:"2023-07-14",description:"First Release"}],links:[{label:"Website",url:"https://cryptpad.org"},{label:"Docs",url:"https://docs.cryptpad.org"},{label:"Github",url:"https://github.com/cryptpad"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cryptpad"},appServiceImage:{type:"string",title:"App Service Image",default:"promasu/cryptpad:v5.2.1"}}},benefits:[{title:"Secure Collaboration",description:"CryptPad allows you to collaborate securely with friends and colleagues. It provides end-to-end encryption, ensuring that your data remains private and secure."},{title:"Real-time Editing",description:"CryptPad offers real-time editing capabilities. This means you can collaborate on documents, spreadsheets, and other files in real-time, making it easier to work together and stay on the same page."},{title:"No Account or Download Required",description:"With CryptPad, there's no need for your collaborators to create accounts or download apps. This makes it easy for anyone to join in and start collaborating immediately."}],features:[{title:"Collaborative Office Suite",description:"CryptPad is a full suite of office apps, allowing you to create and collaborate on documents, spreadsheets, presentations, and more."},{title:"End-to-End Encryption",description:"CryptPad uses end-to-end encryption to keep your data secure. This means that only you and the people you choose to share with can access your files."},{title:"Open-Source",description:"CryptPad is open-source, meaning it's built on a platform that is freely available and can be modified. This ensures transparency and trust in the security of the app."}],tags:["Collaboration","Privacy","Office Suite","Encryption","Open-source"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"blob",mountPath:"/cryptpad/blob"},{type:"volume",name:"block",mountPath:"/cryptpad/block"},{type:"volume",name:"customize",mountPath:"/cryptpad/customize"},{type:"volume",name:"data",mountPath:"/cryptpad/data"},{type:"volume",name:"datastore",mountPath:"/cryptpad/datastore"},{type:"file",content:"module.exports = "+JSON.stringify({httpUnsafeOrigin:"https://$(PRIMARY_DOMAIN)",httpSafeOrigin:"https://$(PRIMARY_DOMAIN)",httpAddress:"::",httpPort:80,httpSafePort:443,adminKeys:[],filePath:"./datastore/",archivePath:"./data/archive",pinPath:"./data/pins",taskPath:"./data/tasks",blockPath:"./block",blobPath:"./blob",blobStagingPath:"./data/blobstage",decreePath:"./data/decrees",logPath:"./data/logs",logToStdout:!1,logLevel:"info",logFeedback:!1,verbose:!1,installMethod:"docker"},null,2),mountPath:"/cryptpad/config/config.js"}]}}),{services:t}}},{slug:"cs2",meta:{name:"Counter-Strike 2 Dedicated Server",description:"Counter-Strike 2 Dedicated Server allows you to host your own CS2 game server with full control over configuration and settings. This self-hosted gaming solution provides a professional-grade server environment for competitive matches, casual gameplay, or private practice sessions. The server supports various game modes including casual, competitive, and deathmatch, with extensive customization options for maps, player limits, server rules, and bot configurations. Features include RCON remote administration, CSTV for broadcasting matches, workshop map support, and comprehensive logging. Perfect for gaming communities, esports teams, or anyone wanting to run their own CS2 server with dedicated resources and low latency.",instructions:"IMPORTANT - You must obtain a Game Server Token from https://steamcommunity.com/dev/managegameservers before your server can be listed publicly.",changeLog:[{date:"2025-11-04",description:"Template Release"},{date:"2026-04-29",description:"Version bumped to 4.0.1"}],links:[{label:"Steam Game Server Account Management",url:"https://steamcommunity.com/dev/managegameservers"},{label:"Docker Hub",url:"https://hub.docker.com/r/joedwards32/cs2"},{label:"CS2 Dedicated Servers Wiki",url:"https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers"},{label:"Github",url:"https://github.com/joedwards32/CS2"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","udpPort","tcpPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cs2-server"},appServiceImage:{type:"string",title:"App Service Image",default:"joedwards32/cs2:4.0.1"},srcdToken:{type:"string",title:"Steam Game Server Token",default:""},serverName:{type:"string",title:"Server Name",default:"My CS2 Server"},rconPassword:{type:"string",title:"RCON Password",default:"changeme"},serverPassword:{type:"string",title:"Server Password (Optional)",default:""},maxPlayers:{type:"string",title:"Max Players",default:"10"},gameAlias:{type:"string",title:"Game Alias",default:"casual"},mapGroup:{type:"string",title:"Map Group",default:"mg_active"},startMap:{type:"string",title:"Start Map",default:"de_inferno"},tcpPort:{type:"string",title:"TCP/UDP Port",default:"27015"},udpPort:{type:"string",title:"TV UDP Port",default:"27020"}}},benefits:[{title:"Full Control & Customization",description:"Host your own CS2 server with complete control over game modes, maps, rules, and server settings. Perfect for competitive teams and gaming communities."},{title:"Self-Hosted Performance",description:"Ensure low latency and optimal performance by hosting on your own infrastructure. No reliance on third-party hosting services."},{title:"Private & Secure",description:"Create password-protected servers for private matches, practice sessions, or exclusive community events with full administrative control."}],features:[{title:"Multiple Game Modes",description:"Support for casual, competitive, deathmatch, and custom game modes with configurable settings for each type of gameplay."},{title:"Workshop Integration",description:"Load custom maps and collections directly from the Steam Workshop to expand your server's content and provide unique experiences."},{title:"RCON Administration",description:"Remote console access for server administration, allowing you to manage your server, execute commands, and monitor activity from anywhere."},{title:"CSTV Broadcasting",description:"Built-in SourceTV support for broadcasting matches with configurable delay, recording, and spectator settings for tournaments and events."}],tags:["Gaming","Game Server","Counter-Strike","FPS","Multiplayer"],logo:null,screenshots:[]},generate:function(e){var t=[],a=["SRCDS_TOKEN=".concat(e.srcdToken),"DEBUG=0","STEAMAPPVALIDATE=0","CS2_SERVERNAME=".concat(e.serverName),"CS2_CHEATS=0","CS2_PORT=".concat(e.tcpPort),"CS2_SERVER_HIBERNATE=0","CS2_RCON_PORT=","CS2_LAN=0","CS2_RCONPW=".concat(e.rconPassword),"CS2_PW=".concat(e.serverPassword),"CS2_MAXPLAYERS=".concat(e.maxPlayers),"CS2_ADDITIONAL_ARGS=","CS2_CFG_URL=","CS2_GAMEALIAS=".concat(e.gameAlias),"CS2_GAMETYPE=0","CS2_GAMEMODE=1","CS2_MAPGROUP=".concat(e.mapGroup),"CS2_STARTMAP=".concat(e.startMap),"CS2_HOST_WORKSHOP_COLLECTION=","CS2_HOST_WORKSHOP_MAP=","CS2_BOT_DIFFICULTY=","CS2_BOT_QUOTA=","CS2_BOT_QUOTA_MODE=","TV_AUTORECORD=0","TV_ENABLE=0","TV_PORT=".concat(e.udpPort),"TV_PW=changeme","TV_RELAY_PW=changeme","TV_MAXRATE=0","TV_DELAY=0","CS2_LOG=on","CS2_LOG_MONEY=0","CS2_LOG_DETAIL=0","CS2_LOG_ITEMS=0"].join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,env:a,source:{type:"image",image:e.appServiceImage},deploy:{capAdd:["NET_ADMIN"]},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],ports:[{published:parseInt(e.tcpPort),target:27015,protocol:"tcp"},{published:parseInt(e.tcpPort),target:27015,protocol:"udp"},{published:parseInt(e.udpPort),target:27020,protocol:"udp"}],mounts:[{type:"volume",name:"cs2-data",mountPath:"/home/steam/cs2-dedicated/"}]}}),{services:t}}},{slug:"cubejs",meta:{name:"CubeJS",description:"Cube is a Semantic Layer for every data app that aims to connect data silos, drive consistent metrics, and power your AI and analytics with context. It allows you to define and manage metrics upstream to consolidate your workflow, centralize definitions, and create a single source of truth. The app also provides granular access controls to grant column- and role-based operational and viewing permissions upstream. Cube ensures your data is reliably performant with a powerful caching layer and advanced preaggregation capabilities. Furthermore, it allows you to connect your data to any front-end application to build beautiful custom visualizations with Cube\u2019s GraphQL, REST, and SQL APIs. Cube is an API-first, four-part semantic layer that enables data engineers and developers to make their data consistent, secure, performant, and accessible across every application.",instructions:null,changeLog:[{date:"2023-2-27",description:"first release"},{date:"2024-09-30",description:"Version changed to v0.36.4"},{date:"2025-01-09",description:"Version bumped to v1"},{date:"2025-07-15",description:"Version bumped to v1.3"},{date:"2025-12-25",description:"Version bumped to v1.6"},{date:"2026-04-29",description:"Version bumped to v1.6.39"}],links:[{label:"Website",url:"https://cube.dev"},{label:"Documentation",url:"https://cube.dev/docs"}
1,{label:"Github",url:"https://github.com/cube-js/cube.js"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"cubejs"},appServiceImage:{type:"string",title:"App Service Image",default:"cubejs/cube:v1.6.39"},databaseServiceName:{type:"string",title:"Database Service Name",default:"cubejs-db"}}},benefits:[{title:"Unified Data Management",description:"The app serves as a semantic layer for every data application, connecting data silos and driving consistent metrics. It powers your AI and analytics with context, creating a single source of truth for your data."},{title:"Enhanced Data Security",description:"The app provides granular access controls, granting column- and role-based operational and viewing permissions. It ensures that only the right people have access to the right metrics."},{title:"Optimized Performance",description:"With a powerful caching layer and advanced pre-aggregation capabilities, the app ensures your data is reliably performant. It keeps every downstream app updated with the latest information cost-effectively and with low latency."},{title:"Universal Compatibility",description:"The app allows you to connect your data to any front-end application. With Cube\u2019s GraphQL, REST, and SQL APIs, it provides the universal compatibility data engineers and developers need."}],features:[{title:"Data Modeling",description:"Define and manage metrics upstream to consolidate your workflow, centralize definitions, and create a single source of truth. The app uses Data Models to model raw data into meaningful business definitions and pre-aggregate data for optimal results."},{title:"Access Control",description:"Grant column- and role-based operational and viewing permissions upstream with granular access controls. In the app, authorization is based on the security context, and authentication tokens are generated based on your API secret."},{title:"Caching",description:"Ensure your data is reliably performant with a powerful caching layer and advanced pre-aggregation capabilities. The app provides a two-level caching system: in-memory cache and configurable pre-aggregations."},{title:"APIs",description:"Connect your data to any front-end application to build beautiful custom visualizations. The app\u2019s SQL, REST, and GraphQL APIs provide the universal compatibility data engineers and developers need."}],tags:["Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(512),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["CUBEJS_DEV_MODE=true","CUBEJS_TELEMETRY=false","CUBEJS_DB_TYPE=postgres","CUBEJS_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"CUBEJS_DB_NAME=$(PROJECT_NAME)","CUBEJS_DB_USER=postgres","CUBEJS_DB_PASS=".concat(i),"CUBEJS_DB_PORT=5432","CUBEJS_DB_SSL=false","CUBEJS_API_SECRET=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}],mounts:[{type:"volume",name:"config",mountPath:"/cube/conf"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"cupdate",meta:{name:"Cupdate",description:"Cupdate is a self-hosted web application for monitoring and managing Docker container updates. It provides a centralized dashboard to track available updates for your running containers, view container versions, and manage update notifications. By connecting to the Docker daemon via the Docker socket, Cupdate scans all running containers and checks for newer image versions available in container registries. The web interface displays an overview of your container infrastructure with update status, image tags, registry information, and visual indicators for outdated containers. Cupdate features automatic update checking on a configurable schedule, support for multiple container registries, detailed container information with links to documentation and registries, and the ability to manage container logos and metadata. With its lightweight architecture and persistent storage using BoltDB and SQLite, Cupdate offers an efficie
1nt solution for staying informed about container updates without requiring complex automation or CI/CD pipelines. Perfect for home lab administrators managing multiple Docker containers, DevOps teams maintaining staging environments, system administrators tracking container versions across servers, or anyone who wants visibility into their Docker infrastructure's update status without manually checking each container.",instructions:null,changeLog:[{date:"2026-03-25",description:"Added official logo asset and corrected registry link label"},{date:"2025-11-26",description:"Template Release"},{date:"2026-04-29",description:"Version bumped to 0.24.5"}],links:[{label:"Website",url:"https://alexgustafsson.github.io/cupdate"},{label:"GitHub",url:"https://github.com/alexgustafsson/cupdate"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"cupdate"},appServiceImage:{type:"string",title:"Ap
1p Service Image",default:"ghcr.io/alexgustafsson/cupdate:0.24.5"}}},benefits:[{title:"Centralized Update Monitoring",description:"Track all your Docker container updates from a single dashboard, eliminating the need to manually check each container for available updates."},{title:"Proactive Update Awareness",description:"Stay informed about available container updates with automatic checking and visual indicators, helping you maintain security and access new features."},{title:"Simplified Container Management",description:"Get a comprehensive overview of your Docker infrastructure with version information, registry links, and update status at a glance."},{title:"Lightweight & Self-Hosted",description:"Run entirely on your own infrastructure with minimal resource requirements, ensuring your container information remains private."}],features:[{title:"Automatic Update Scanning",description:"Automatically scans running containers and checks container registries for newer image versions on a configurable schedule."},{title:"Web-Based Dashboard",description:"Intuitive web interface displaying all containers, their current versions, available updates, and registry information."},{title:"Multi-Registry Support",description:"Works with Docker Hub, GitHub Container Registry (ghcr.io), and other container registries to check for updates."},{title:"Container Metadata Management",description:"Store and display custom logos, descriptions, and metadata for your containers for better organization and identification."},{title:"Persistent Storage",description:"Uses BoltDB for caching and SQLite for database storage, ensuring data persists across container restarts."},{title:"Docker Socket Integration",description:"Connects directly to the Docker daemon via socket to monitor all running containers without requiring external APIs or credentials."}],tags:["Docker","Container Management","Update Monitoring","System Administration","DevOps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["CUPDATE_DOCKER_HOST=unix:///var/run/docker.sock","CUPDATE_CACHE_PATH=/var/run/data/cachev1.boltdb","CUPDATE_DB_PATH=/var/run/data/dbv1.sqlite","CUPDATE_LOGOS_PATH=/var/run/data/logos"].join("\n"),mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"data",mountPath:"/var/run/data"}]}}),{services:t}}},{slug:"cusdis",meta:{name:"Cusdis",description:"Cusdis is a lightweight, open-source comment system designed with privacy as a priority. It serves as an alternative to Disqus, offering a simple and user-friendly way to integrate a comment system into your existing website. The app is incredibly lightweight, with the JS SDK embedded to your website being only around 5kb. It features built-in i18n and dark-mode for a seamless user experience. Cusdis ensures you stay updated with new comments through email notifications, and allows for quick approval of comments directly from the notification email or webhook. You can also set a webhook URL that triggers when your website receives a new comment, allowing you to integrate Cusdis with your favorite tools such as Telegram. The app offers flexibility with its pricing, providing a free self-hosting option, a free cloud option with limited features, and a Cloud Pro option for unlimited access.",instructions:null,changeLog:[{date:"2023-04-12",description:"first release"}],links:[{label:"Website",url:"https://cusdis.com"},{label:"Documentation",url:"https://cusdis.com/docs"},{label:"Github",url:"https://github.com/djyde/cusdis/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cusdis"},appServiceImage:{type:"string",title:"App Service Image",default:"djyde/cusdis:1.3.2"},databaseServiceName:{type:"string",title:"Database Service Name",default:"cusdis-db"},username:{type:"string",title:"Username"},password:{type:"string",title:"Password"}}},benefits:[{title:"Privacy First",description:"Cusdis is a privacy-first comment system. It doesn't track you or your users, ensuring a secure and private commenting experience."},{title:"Lightweight",description:"The Cusdis JS SDK is super lightweight, at only around 5kb (gzipped), making it a fast and efficient addition to your website."},{title:"Easy Integration",description:"Cusdis is easy to integrate with your existing website, making it a hassle-free solution for adding a comment system."},{title:"Email Notifications",description:"Receive email notifications when a new comment comes in, allowing you to stay on top of user engagement."},{title:"Quick Approve",description:"Quickly approve or reply to new comments directly from the notification email, without needing to log in to the dashboard."}],features:[{title:"Lightweight JS SDK",description:"The Cusdis JS SDK is only around 5kb (gzipped), making it a fast and efficient addition to your website."},{title:"Built-in i18n and Dark Mode",description:"Cusdis comes with built-in i18n and dark mode, providing a customizable and user-friendly comment system."},{title:"Email Notification",description:"Cusdis sends you an email notification when a new comment comes in, allowing you to stay on top of user engagement."},{title:"Quick Approve",description:"With Cusdis, you can quickly approve or reply to new comments directly from the notification email, without needing to log in to the dashboard."},{title:"Webhook Integration",description:"Cusdis allows you to set a Webhook URL that will be triggered when your websites have a new comment, enabling you to integrate Cusdis with your favorite tools such as Telegram."}],tags:["Comments","Privacy","Open-source"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=y(32),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["USERNAME=".concat(e.username),"PASSWORD=".concat(e.password),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","DB_TYPE=pgsql","DB_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"JWT_SECRET=".concat(a),"IS_HOSTED=true","NODE_ENV=production","HOST=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"cyberchef",meta:{name:"CyberChef",description:"CyberChef, also known as the Cyber Swiss Army Knife, is a versatile web app designed to perform a wide array of 'cyber' operations within a web browser. It offers simple encoding methods like XOR and Base64, alongside more complex encryption techniques such as AES, DES, and Blowfish. CyberChef also provides tools for creating binary and hexdumps, compressing and decompressing data, calculating hashes and checksums, parsing IPv6 and X.509, changing character encodings, and much more. The app is designed to be user-friendly, enabling both technical and non-technical analysts to manipulate data in complex ways without the need for intricate tools or algorithms. CyberChef is still under active development, with ongoing testing, bug fixing, new feature additions, and documentation improvements.",instructions:null,changeLog:[{date:"2026-09-16",description:"Switched from the third-party mpepping/cyberchef:v10.24.0 mirror to the official ghcr.io/gchq/cyberchef:11.4.0 image (port changed 8000 -> 8080 to match)"},{date:"2023-2-9",description:"first release"},{date:"2024-09-30",description:"Version changed to v10.9.0"},{date:"2025-01-09",description:"Version bumped to v10.19.4"},{date:"2026-02-18",description:"Version bumped to v10.22.1"},{date:"2026-04-29",description:"Version bumped to v10.24.0"}],links:[{label:"Documentation",url:"https://github.com/gchq/CyberChef/wiki"},{label:"Github",url:"https://github.com/gchq/CyberChef"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cyberchef"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/gchq/cyberchef:11.4.0"}}},benefits:[{title:"Data Manipulation",description:"CyberChef is a web app that enables both technical and non-technical analysts to manipulate data in complex ways without having to deal with complex tools or algorithms. It simplifies tasks such as simple encoding like XOR and Base64, more complex encryption like AES, DES and Blowfish, creating binary and hexdumps, compression and decompression of data, calculating hashes and checksums, IPv6 and X.509 parsing, changing character encodings, and much more."},{title:"Intuitive Interface",description:"The app features an intuitive interface with four main areas: the input box, the output box, the operations list, and the recipe area. Users can easily drag and drop operations into the recipe area and see the outcome of their processing in the output box."},{title:"Automated Encoding Detection",description:"CyberChef uses a number of techniques to automatically detect which encodings your data is under. If it finds a suitable operation that makes sense of your data, it displays the 'magic' icon in the Output field which you can click to decode your data."}],features:[{title:"Drag and Drop",description:"Operations can be dragged in and out of the recipe list, or reorganised. Files up to 2GB can be dragged over the input box to load them directly into the browser."},{title:"Auto Bake",description:"Whenever you modify the input or the recipe, CyberChef will automatically 'bake' for you and produce the output immediately. This can be turned off and operated manually if it is affecting performance."},{title:"Breakpoints",description:"You can set breakpoints on any operation in your recipe to pause execution before running it. You can also step through the recipe one operation at a time to see what the data looks like at each stage."},{title:"Save and Load Recipes",description:"If you come up with an awesome recipe that you know you\u2019ll want to use again, just click 'Save recipe' and add it to your local storage. It'll be waiting for you next time you visit CyberChef. You can also copy the URL, which includes your recipe and input, to easily share it with others."},{title:"Search",description:"If you know the name of the operation you want or a word associated with it, start typing it into the search field and any matching operations will immediately be shown."},{title:"Highlighting",description:"When you highlight text in the input or output, the offset and length values will be displayed and, if possible, the corresponding data will be highlighted in the output or input respectively."},{title:"Save to File and Load from File",description:"You can save the output to a file at any time or load a file by dragging and dropping it into the input field. Files up to around 2GB are supported."},{title:"Client-Side Processing",description:"None of your recipe configuration or input (either text or files) is ever sent to the CyberChef web server - all processing is carried out within your browser, on your own computer. Due to this feature, CyberChef can be downloaded and run locally."},{title:"Deep Linking",description:"By manipulating CyberChef's URL hash, you can change the initial settings with which the page opens. Supported arguments are recipe, input (encoded in Base64), and theme."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"cypht",meta:{name:"Cypht",description:"Cypht is a modern, open-source webmail client that allows you to access multiple email accounts from a single interface. It supports various email protocols and provides a clean, intuitive user experience.",instructions:null,changeLog:[{date:"2025-04-30",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to 2.7.0"}],links:[{label:"Website",url:"https://cypht.org"},{label:"Documentation",url:"https://www.cypht.org/documentation/"},{label:"GitHub",url:"https://github.com/cypht-org/cypht"},{label:"Docker Hub",url:"https://hub.docker.com/r/cypht/cypht"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"cypht"},appServiceImage:{type:"string",title:"App Service Image",default:"cypht/cypht:2.7.0"},authUsername:{type:"string",title:"Auth Username",default:"admin"},authPassword:{type:"string",title:"Auth Password",default:"admin"}}},benefits:[{title:"Unified Email Access",description:"Access multiple email accounts from a single, modern interface"},{title:"Self-hosted Solution",description:"Keep your email data private by hosting your own webmail client"},{title:"Modern Interface",description:"Clean and intuitive user interface for better email management"},{title:"Open Source",description:"Free and open-source platform with active community support"}],features:[{title:"Multi-account Support",description:"Connect and manage multiple email accounts simultaneously"},{title:"Email Protocols",description:"Support for IMAP, POP3, and SMTP protocols"},{title:"Database Storage",description:"Secure storage of user configurations and session data"},{title:"Customizable Interface",description:"Personalize your email experience with various settings"},{title:"Mobile Friendly",description:"Responsive design for access from any device"},{title:"Security Features",description:"Built-in security measures for safe email handling"}],tags:["Email","Webmail","Self-hosted","Open Source","Communication"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"log-nginx",mountPath:"/var/log/nginx"},{type:"volume",name:"log-php",mountPath:"/var/log/php"},{type:"volume",name:"log-supervisord",mountPath:"/var/log/supervisord"},{type:"volume",name:"fonts",mountPath:"/usr/local/share/cypht/site/fonts"}],env:["AUTH_USERNAME=".concat(e.authUsername),"AUTH_PASSWORD=".concat(e.authPassword),"DB_CONNECTION_TYPE=host","DB_DRIVER=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_NAME=$(PROJECT_NAME)","DB_USER=mysql","DB_PASS=".concat(a),"SESSION_TYPE=DB","USER_CONFIG_TYPE=DB"].join("\n")}}),{services:t}}},{slug:"daapd",meta:{name:"Daapd",description:"Daapd is a robust, open-source DAAP (Digital Audio Access Protocol) server that allows users to share music libraries over a network. It is designed to work seamlessly with iTunes, Roku SoundBridges, and other DAAP clients, providing an efficient and reliable way to stream audio content across devices. Daapd also supports streaming internet radio, podcasts, and AirPlay devices. With its powerful backend, Daapd ensures smooth performance, a wide range of supported formats, and advanced features like library management and transcoding.",instructions:"AirPlay and Chromecast device discovery rely on mDNS/Bonjour, which does not reach devices outside this container's network. Add streaming devices by IP in Settings if they are not auto-discovered.",changeLog:[{date:"2026-09-16",description:"Switched from the archived linuxserver/daapd image to the official owntone/owntone:29.3 image (linuxserver/docker-daapd was archived and hadn't been updated since January 2025); corrected the Website/Documentation links, which still pointed at the old ejurgensen/forked-daapd project"},{date:"2024-12-26",description:"First Release"},{date:"2025-01-09",description:"Version bumped to 28.10.20250108"}],links:[{label:"Website",url:"https://github.com/owntone/owntone-server"},{label:"Documentation",url:"https://owntone.github.io/owntone-server/"},{label:"Github",url:"https://github.com/owntone/owntone-server"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"daapd"},appServiceImage:{type:"string",title:"App Service Image",default:"owntone/owntone:29.3"}}},benefits:[{title:"Seamless Audio Streaming",description:"Daapd provides smooth streaming of music libraries across multiple devices, including iTunes, Roku SoundBridges, and other DAAP-compatible clients."},{title:"Advanced Media Management",description:"Daapd offers features like library organization, metadata management, and support for multiple audio formats to keep your collection accessible and well-organized."},{title:"Network-Friendly",description:"Daapd is optimized for network performance, ensuring minimal latency and high-quality audio streaming over both wired and wireless connections."}],features:[{title:"DAAP Protocol Support",description:"Daapd fully supports the DAAP protocol, allowing devices like iTunes and other DAAP clients to access and play media libraries seamlessly."},{title:"AirPlay Integration",description:"Stream your audio to AirPlay-compatible devices directly through Daapd, enhancing your home or office audio experience."},{title:"Internet Radio and Podcast Support",description:"In addition to local music libraries, Daapd allows streaming of internet radio stations and podcasts for added entertainment options."}
1],tags:["DAAP","Music Server","Audio Streaming"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["UID=1000","GID=1000"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:3689}],mounts:[{type:"volume",name:"media",mountPath:"/srv/media"},{type:"volume",name:"config",mountPath:"/etc/owntone"},{type:"volume",name:"cache",mountPath:"/var/cache/owntone"}]}}),{services:t}}},{slug:"dailytxt",meta:{name:"DailyTxT",description:"DailyTxT is a secure, encrypted personal diary web application that allows users to write and manage daily entries with end-to-end encryption. It provides a user-friendly interface for journaling with features like file uploads, search functionality, and multi-language support. All data is encrypted locally, ensuring complete privacy and security for personal thoughts and memories.",instructions:"After deployment, open DailyTxT from your app domain and create your first account (if allow registration is enabled).",changeLog:[{date:"2026-09-17",description:"Updated to v2.6.3; replaced outdated annotated screenshot"},{date:"2026-05-19",description:"Updated to v2.6.1"},{date:"2025-10-03",description:"First Release"},{date:"2026-03-25",description:"Added logo asset and fixed secret env wiring in template"}],links:[{label:"Demo",url:"https://dailytxt.phitux.de"},{label:"Documentation",url:"https://github.com/PhiTux/DailyTxT#readme"},{label:"GitHub",url:"https://github.com/PhiTux/DailyTxT"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","allowRegistration","logoutAfterDays"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dailytxt"},appServiceImage:{type:"string",title:"App Service Image",default:"phitux/dailytxt:2.6.3"},allowRegistration:{type:"boolean",title:"Allow Registration",description:"Allow new users to register",default:!0},logoutAfterDays:{type:"number",title:"Logout After Days",description:"Days of inactivity before automatic logout",default:60}}},benefits:[{title:"End-to-End Encryption",description:"All diary entries and uploaded files are encrypted locally using your personal encryption key, ensuring complete privacy and security of your personal thoughts and memories."},{title:"Secure File Storage",description:"Upload and attach files to your diary entries with automatic encryption, providing a secure way to store photos, documents, and other media alongside your written entries."},{title:"Privacy-First Design",description:"Built with privacy as the core principle, DailyTxT ensures that only you can access your data through your personal encryption key, with no external data sharing or cloud dependencies."},{title:"Multi-User Support",description:"Support for multiple user accounts with individual encryption keys, making it suitable for families or small teams who want to maintain separate, secure diary spaces."}],features:[{title:"Encrypted Diary Entries",description:"Write and store daily diary entries with automatic encryption using your personal encryption key, ensuring complete privacy and security."},{title:"File Upload Support",description:"Attach files, photos, and documents to your diary entries with automatic encryption and secure storage alongside your written content."},{title:"Search Functionality",description:"Search through your encrypted diary entries efficiently with built-in search capabilities that work across all your stored content."},{title:"Multi-Language Support",description:"Automatic language detection based on browser settings with support for English and German, with more languages planned for future releases."},{title:"Responsive Design",description:"Optimized interface for both desktop and mobile devices, providing a seamless journaling experience across all your devices."},{title:"JWT Authentication",description:"Secure authentication system with configurable JWT token expiration, providing flexible session management for different security needs."},{title:"Data Persistence",description:"All diary entries, uploaded files, and user preferences persist across container restarts and updates with encrypted local storage."},{title:"Update Notifications",description:"Optional automatic checking for newer versions of DailyTxT to keep your installation up-to-date with the latest features and security improvements."}],tags:["Diary","Journal","Encryption","Privacy","Personal","Web App","File Storage","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"dailytxt-data",mountPath:"/data"}],env:["SECRET_TOKEN=".concat(a),"ALLOW_REGISTRATION=".concat(e.allowRegistration),"LOGOUT_AFTER_DAYS=".concat(e.logoutAfterDays)].join("\n")}}),{services:t}}},{slug:"damselfly",meta:{name:"Damselfly",description:"Damselfly is a modern, self-hosted photo management system that helps you organize, search, and share your photo collection. It uses AI-powered image recognition to automatically tag and categorize your photos, making it easy to find specific images in your collection.",instructions:"Add your photos and libraries in the respected volumes or change them to bind volumes as per your need.",changeLog:[{date:"2025-04-28",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to 4.5.3"}],links:[{label:"GitHub",url:"https://github.com/Webreaper/Damselfly"},{label:"Docker Hub",url:"https://hub.docker.com/r/webreaper/damselfly"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"damselfly"},appServiceImage:{type:"string",title:"App Service Image",default:"webreaper/damselfly:4.5.3"}}},benefits:[{title:"AI-Powered Organization",description:"Automatically tag and categorize photos using machine learning"},{title:"Fast Search",description:"Quickly find photos using tags, metadata, or visual search"},{title:"Privacy-Focused",description:"Keep your photos private with self-hosted storage"},{title:"Modern Interface",description:"Clean, responsive web interface for managing your photos"}],features:[{title:"Automatic Tagging",description:"AI-powered image recognition for automatic photo tagging"},{title:"Face Recognition",description:"Identify and group photos by people in them"},{title:"Metadata Extraction",description:"Extract and search by EXIF data and image metadata"},{title:"Duplicate Detection",description:"Find and manage duplicate photos in your collection"},{title:"Thumbnail Generation",description:"Automatic thumbnail generation for fast browsing"},{title:"Search & Filter",description:"Advanced search and filtering capabilities"},{title:"Export Options",description:"Export photos with metadata and tags"}],tags:["Photo Management","AI","Image Recognition","Self-hosted","Photography"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"damselfly-config",mountPath:"/config"},{type:"volume",name:"damselfly-thumbs",mountPath:"/thumbs"},{type:"volume",name:"damselfly-photos",mountPath:"/pictures"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:6363}]}}),{services:t}}},{slug:"daptin",meta:{name:"Daptin",description:"Daptin is an open-source backend development framework that enables rapid development and deployment of production-ready JSONAPI microservices. Design your data model and have a production-ready JSON API online in minutes.",instructions:null,changeLog:[{date:"2025-03-28",description:"Initial template release"}],links:[{label:"Documentation",url:"https://daptin.github.io/docs/"},{label:"Website",url:"https://daptin.github.io/daptin/"},{label:"GitHub",url:"https://github.com/daptin/daptin"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"daptin"},appServiceImage:{type:"string",title:"Daptin Image",default:"daptin/daptin:v0.11.3"}}},benefits:[{title:"Rapid API Development",description:"Create production-ready JSON APIs in minutes."},{title:"JSON:API Compliance",description:"Built-in support for JSON:API specification."},{title:"Data Model Design",description:"Visual data model design and automatic API generation."},{title:"Production Ready",description:"Includes authentication, validation, and real-time updates."}],features:[{title:"CRUD Operations",description:"Automatic CRUD endpoints for your data models."},{title:"API Documentation",description:"Built-in OpenAPI/Swagger documentation."},{title:"Authentication",description:"Built-in user authentication and authorization."},{title:"Real-time Updates",description:"WebSocket support for real-time data updates."}],tags:["Backend","API","Microservices","JSON:API","Database"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DAPTIN_PORT=8080","DAPTIN_DB_TYPE=mysql","DAPTIN_DB_CONNECTION_STRING=mysql:".concat(a,"@tcp(").concat(e.appServiceName,"-db:3306)/$(PROJECT_NAME)")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"darktable",meta:{name:"Darktable",description:"Darktable is an open-source photography workflow application and raw developer. It manages your digital negatives in a database, lets you view them through a zoomable lighttable, and enables you to develop raw images and enhance them with powerful editing tools. This browser-accessible version provides the full Darktable desktop application through a web interface, allowing you to edit photos from anywhere without local installation.",instructions:null,changeLog:[{date:"2025-10-13",description:"Initial Template Release (2025-07-12-ls220)"},{date:"2026-04-29",description:"Version bumped to 25.4.1"}],links:[{label:"Website",url:"https://www.darktable.org/"},{label:"Documentation",url:"https://docs.darktable.org/"},{label:"GitHub",url:"https://github.com/darktable-org/darktable"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"darktable"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/darktable:25.4.1"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC"}}},benefits:[{title:"Professional Photo Editing",description:"Industry-standard tools for professional photographers including non-destructive RAW development and advanced color management."},{title:"Web-Based Access",description:"Access the full Darktable application through your browser from any device without installing software locally."},{title:"RAW Image Support",description:"Native support for hundreds of RAW formats from various camera manufacturers for optimal image quality."},{title:"Non-Destructive Workflow",description:"All edits are non-destructive and stored separately, allowing unlimited experimentation without damaging original files."}],features:[{title:"Lighttable Mode",description:"Organize and manage your photo collection with filtering, tagging, and rating capabilities in an intuitive interface."},{title:"Darkroom Mode",description:"Powerful editing tools including exposure, color correction, sharpening, noise reduction, and dozens of other modules."},{title:"Color Management",description:"Professional color management with support for ICC profiles and various color spaces for accurate color reproduction."},{title:"Export Options",description:"Export images in multiple formats with customizable settings for print, web, or further processing in other applications."}],tags:["Photography","Image Editing","RAW","Desktop","Browser"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=0","PGID=0","TZ=".concat(e.timezone),"NO_DECOR=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"dashdot",meta:{name:"Dashdot",description:"Dash. (or dashdot) is a visually stunning, modern server dashboard designed with a glassmorphism aesthetic. It's built on the latest technology and is intended for use with smaller VPS and private servers. The dashboard is feature-rich, offering a dark/light mode, customizable widgets, beautiful animations and styles, and support for multiple architectures. It provides a high level of personalization options, allowing you to tailor the dashboard to your specific needs. Dash. is an open-source project, welcoming contributions from those interested in further developing the platform.",instructions:null,changeLog:[{date:"2023-3-29",description:"first release"},{date:"2024-10-02",description:"Version changed to 5.8.6"},{date:"2025-01-09",description:"Version bumped to 5.9"},{date:"2025-05-26",description:"Version bumped to 6"},{date:"2026-02-18",description:"Version bumped to 6.2.4"},{date:"2026-04-29",description:"Version bumped to 6.3.4"}],links:[{label:"Website",url:"https://getdashdot.com/"},{label:"Github",url:"https://github.com/MauriceNino/dashdot"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dashdot"},appServiceImage:{type:"string",title:"App Service Image",default:"mauricenino/dashdot:6.3.4"}}},benefits:[{title:"Modern Server Dashboard",description:"dash. (or dashdot) is a modern server dashboard, designed with the latest tech and glassmorphism in mind. It is intended for use with smaller VPS and private servers, providing a sleek and intuitive interface for server management."},{title:"Open-Source Project",description:"dash. is an open-source project, meaning it is freely available for use and further development. This ensures transparency and allows for continuous improvement of the app."}],features:[{title:"Dark/Light Mode",description:"dash. offers a Dark/Light mode feature, allowing users to switch between themes based on their preference or environmental conditions. This enhances user comfort and accessibility."},{title:"Customizable Widgets",description:"The app provides customizable widgets, enabling users to personalize their dashboard according to their needs and preferences. This feature enhances user experience and efficiency."}
1,{title:"Beautiful Animations and Styles",description:"dash. is designed with beautiful animations and styles, providing a visually appealing and engaging user interface. This enhances the overall user experience."},{title:"Support for Multiple Architectures",description:"dash. supports multiple architectures, making it versatile and adaptable to various server environments. This ensures compatibility and broad usability."},{title:"Personalization Options",description:"dash. offers a lot of personalization options, allowing users to tailor the app to their specific needs and preferences. This enhances user satisfaction and efficiency."}],tags:["Dashboard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001}],env:["DASHDOT_SHOW_HOST=false","DASHDOT_SHOW_DASH_VERSION=true","DASHDOT_ENABLE_CPU_TEMPS=false","DASHDOT_USE_IMPERIAL=false","DASHDOT_ALWAYS_SHOW_PERCENTAGES=false","DASHDOT_PAGE_TITLE=dashdot","DASHDOT_ACCEPT_OOKLA_EULA=true"].join("\n")}}),{services:t}}},{slug:"dashy",meta:{name:"Dashy",description:"Dashy is the ultimate homepage for your homelab, designed to be your personal, privacy-respecting dashboard. It is highly customizable and easy to use, offering a unique user experience with its built-in themes and UI color palette editor. Dashy can auto-fetch icons from the favicon of each of your apps or services, and it provides an instant overview of the health of each of your apps with status indicators. It also features a simple authentication feature for protecting your dashboard, and supports multiple users with granular controls. Dashy comes with 50+ pre-built widgets for displaying dynamic content from any API-enabled service. It offers alternate views for a minimal view or a workspace view, and allows you to choose how to launch your apps. Dashy also includes a search and shortcuts feature for easy navigation, and an optional cloud backup and sync service for off-site config backup. The app supports multiple languages and is easily configurable through a simple YAML file or directly through the UI.",instructions:"After deploying the project, it may take a while before the app is available (5 minutes).",changeLog:[{date:"2022-08-18",description:"First Release"},{date:"2025-01-09",description:"Version bumped to release-3.1.1"},{date:"2026-04-29",description:"Version bumped to 3.3.1"}],links:[{label:"Website",url:"https://dashy.to/"},{label:"Documentation",url:"https://dashy.to/docs/"},{label:"Github",url:"https://github.com/lissy93/dashy"}],contributors:[{name:"Bedeoan Raul",url:"https://github.com/bedeoan"},{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dashy"},appServiceImage:{type:"string",title:"App Service Image",default:"lissy93/dashy:3.3.1"}}},benefits:[{title:"Highly Customizable",description:"Dashy allows you to create a unique looking dashboard with tons of built-in themes and a UI color palette editor. You can also use custom CSS for further customization."},{title:"Privacy-Respecting",description:"Dashy respects your privacy and provides features like simple auth for protecting your dashboard. It also supports Keycloak and other SSO providers."},{title:"Multi-Language Support",description:"Dashy's UI has been translated into several languages including English, German, French, Dutch, and Slovenian. Your language should be applied automatically, or you can change it in the config menu."},{title:"Cloud Backup & Sync",description:"Dashy offers an optional, end-to-end encrypted, free backup cloud service. This enables you to have your config backed up off-site, and to sync data between multiple instances easily."}],features:[{title:"Theming",description:"With tons of built-in themes to choose from, plus a UI color palette editor, you can have a unique looking dashboard in no time. There is also support for custom CSS."},{title:"Icons",description:"Dashy can auto-fetch icons from the favicon of each of your apps/ services. There is also native support for Font Awesome, Material Design Icons, emoji icons and normal images."},{title:"Status Indicators",description:"Get an instant overview of the health of each of your apps with status indicators. Once enabled, a small dot next to each app will show whether it is up and online, with more info like response time visible on hover."},{title:"Widgets",description:"Display dynamic content from any API-enabled service. Dashy comes bundled with 50+ pre-built widgets for self-hosted services, productivity, and monitoring."},{title:"Alternate Views",description:"As well as the default home, there is also a minimal view, which makes a great fast-loading browser start page. Plus a workspace view useful for working on multiple apps at once, all without having to leave your dashboard."},{title:"Launching Methods",description:"Choose how to launch each of your apps by default, or right click for all options. Apps can be opened in a new tab, the same tab, a quick pop-up modal or in the workspace view."},{title:"Search & Shortcuts",description:"To search, just start typing, results will be filtered instantly. Use the arrow keys or tab to navigate through results, and press enter to launch. You can also create custom shortcuts for frequently used apps, or add custom tags for easier searching. Dashy can also be used to search the web using your favorite search engine."},{title:"Configuration",description:"Dashy's config is specified in a simple YAML file. But you can also configure directly through the UI, and have changes written to, and backed up on disk. Real-time validation and hints are in place to help you."},{title:"Customizable Layouts",description:"Structure your dashboard to fit your use case. From the UI, you can choose between different layouts, item sizes, show/ hide components, switch themes plus more. You can customize pretty much every area of your dashboard. There are config options for custom header, footer, nav bar links, title etc. You can also choose to hide any elements you don't need."}],tags:["Dashboard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:"NODE_ENV=production"}}),{services:t}}},{slug:"databasus",meta:{name:"Databasus",description:"Databasus is a free, open source, self-hosted backup platform focused on PostgreSQL with support for MySQL, MariaDB, and MongoDB. It helps you schedule backups, apply retention policies, store backups in multiple destinations, and receive notifications about backup progress.",instructions:"After deployment, open your domain and complete the initial setup in the Databasus UI. The template already mounts persistent storage at /databasus-data so configuration and backup metadata survive restarts.",changeLog:[{date:"2026-04-07",description:"Initial template release"},{date:"2026-04-29",description:"Version bumped to v3.33.0"}],links:[{label:"Website",url:"https://databasus.com"},{label:"Documentation",url:"https://databasus.com/installation"},{label:"GitHub",url:"https://github.com/databasus/databasus"},{label:"Container registry",url:"https://hub.docker.com/r/databasus/databasus"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"databasus"},appServiceImage:{type:"string",title:"Databasus Image",default:"databasus/databasus:v3.33.0"}}},benefits:[{title:"Automated backups",description:"Schedule reliable backups with flexible intervals and retention controls."},{title:"Multi-database support",description:"Manage PostgreSQL, MySQL, MariaDB, and MongoDB backups in one interface."},{title:"Self-hosted control",description:"Keep backup data and operations on infrastructure you control."}],features:[{title:"Storage destinations",description:"Send backups to local storage and cloud targets like S3-compatible systems."},{title:"Notifications",description:"Receive backup status alerts via channels such as email, Slack, or Telegram."},{title:"Web management UI",description:"Configure backup jobs, policies, and integrations from a browser dashboard."}],tags:["Backup","Database","PostgreSQL","MySQL","MongoDB","DevOps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4005}],mounts:[{type:"volume",name:"databasus-data",mountPath:"/databasus-data"}]}}),{services:t}}},{slug:"dataline",meta:{name:"Dataline",description:"Dataline is a powerful data management and visualization tool that helps users organize, analyze, and visualize their data in an intuitive way. It provides a user-friendly interface for data manipulation, chart creation, and data sharing capabilities. With its modern design and robust features, Dataline makes it easy to work with various data formats and create meaningful visualizations.",instructions:null,changeLog:[{date:"2026-09-16",description:"Set ALLOWED_ORIGINS to the deployed domain - DataLine defaults this to localhost only, which blocks the UI with CORS errors on any real domain"},{date:"2025-03-24",description:"Initial template release"},{date:"2025-07-15",description:"Version bumped to v1.2.0"}],links:[{label:"GitHub",url:"https://github.com/ramiawar/dataline"},{label:"Docker Hub",url:"https://hub.docker.com/r/ramiawar/dataline"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dataline"},appServiceImage:{type:"string",title:"Dataline Image",default:"ramiawar/dataline:v1.2.0"}}},benefits:[{title:"Intuitive Data Management",description:"Easily organize and manage your data with a user-friendly interface."},{title:"Powerful Visualization Tools",description:"Create stunning visualizations and charts from your data with built-in tools."},{title:"Data Sharing",description:"Share your data and visualizations with team members or the public."}],features:[{title:"Data Organization",description:"Organize and structure your data in a way that makes sense for your workflow."},{title:"Chart Creation",description:"Create various types of charts and graphs to visualize your data."},{title:"Data Import/Export",description:"Import data from various sources and export in multiple formats."},{title:"User Interface",description:"Modern and responsive interface for easy data management and visualization."}],tags:["Data","Visualization","Analytics","Management","Charts"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"dataline-data",mountPath:"/home/.dataline"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:7377}],env:["ALLOWED_ORIGINS=https://$(PRIMARY_DOMAIN)"].join("\n")}}),{services:t}}},{slug:"dcm",meta:{name:"DCM",description:"DCM is a lightweight self-hosted web interface for managing and monitoring Docker containers. It provides a simple dashboard to view container status, start/stop operations, and inspect basic container details. Designed to be minimal and easy to deploy, DCM helps you keep an eye on your containers without exposing the full Docker API or using heavier management stacks. Ideal for small home labs or users who want a quick overview of their running services via a browser.",instructions:null,changeLog:[{date:"2025-12-11",description:"Template Release"},{date:"2026-02-18",description:"Version bumped to sha-6d86fd5"}],links:[{label:"GitHub",url:"https://github.com/ajnart/dcm"},{label:"Docker Hub",url:"https://hub.docker.com/r/ajnart/dcm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dcm"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/ajnart/dcm:sha-6d86fd5"}}},benefits:[{title:"Simple Container Dashboard",description:"Monitor Docker containers from a minimal web UI without complex setups."},{title:"Lightweight & Easy",description:"Small footprint and quick deployment for home labs and small servers."},{title:"Safe Visibility",description:"View status and basic controls without exposing full Docker API access."},{title:"Self-Hosted Control",description:"Keep container visibility on your own infrastructure with no third-party dependencies."}],features:[{title:"Container Overview",description:"See running containers, status, and basic info at a glance."},{title:"Start/Stop Controls",description:"Basic lifecycle controls to start or stop containers from the UI."},{title:"Minimal Config",description:"No external databases or complex setup required; deploy and use."},{title:"Web Access",description:"Access the dashboard via browser on the exposed port."}],tags:["Docker","Dashboard","Monitoring","Self-Hosted"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7576}]}}),{services:t}}},{slug:"deluge",meta:{name:"Deluge",description:"Deluge is a comprehensive BitTorrent client designed to cater to your torrenting needs. It operates on a daemon/client model and is equipped with various user interfaces, including GTK-UI, Web-UI, and Console-UI. At its core, Deluge uses libtorrent to efficiently manage the BitTorrent protocol. The app allows you to start various user-interfaces and the Deluge daemon with simple commands. It also provides a web UI that can be accessed at http://localhost:8112 with the default password 'deluge'. For advanced users, Deluge offers features like bandwidth tweaking, VPN, and reverse proxy.",instructions:null,changeLog:[{date:"2023-1-25",description:"first release"},{date:"2025-05-26",description:"Version bumped to 2.2.0"}],links:[{label:"Documentation",url:"http://dev.deluge-torrent.org/wiki/UserGuide"},{label:"Github",url:"https://github.com/deluge-torrent/deluge"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"deluge"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/deluge:2.2.0"}}},benefits:[{title:"Efficient Torrent Management",description:"Deluge is a BitTorrent client that efficiently manages your torrent downloads. It uses a daemon/client model, making it a powerful tool for handling the BitTorrent protocol."},{title:"Multiple User Interfaces",description:"Deluge offers various user interfaces to cater to different user preferences. These include the GTK-UI, Web-UI, and Console-UI, providing flexibility and convenience."}],features:[{title:"Daemon/Client Model",description:"Deluge operates on a daemon/client model. This allows it to run the Deluge daemon in the background, enabling efficient torrent management."},{title:"Various User Interfaces",description:"Deluge provides multiple user interfaces. You can choose from the GTK-UI, Web-UI, and Console-UI based on your preference or needs."},{title:"Libtorrent Core",description:"At its core, Deluge uses libtorrent to handle the BitTorrent protocol. This ensures robust and reliable torrent downloading."},{title:"Remote Connection",description:"Deluge allows clients to remotely connect to the daemon, providing flexibility and convenience for managing your torrents."}],tags:["File Management","Networking Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8112}],ports:[{protocol:"tcp",published:6881,target:6881},{protocol:"udp",published:6881,target:6881}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"downloads",mountPath:"/downloads"}]}}),{services:t}}},{slug:"devlake",meta:{name:"DevLake",description:"DevLake is a highly customizable and self-hosted tool for engineering metrics and data integration. It enables teams to collect, transform, and visualize data from various development tools like GitHub, GitLab, and Jira. DevLake provides insightful dashboards and reports for continuous improvement, streamlining your software delivery process.",instructions:"Wait for the migration on backend to complete. Access Grafana using https://domain/grafana",changeLog:[{date:"2025-01-15",description:"Template Release"},{date:"2025-05-26",description:"Version bumped to main_250513_0111_15eba06"},{date:"2025-07-15",description:"Version bumped to main_250711_1608_3684cdb"},{date:"2026-04-29",description:"Version bumped to main_260429_1235_e26c61b"}],links:[{label:"Documentation",url:"https://devlake.apache.org/docs/GettingStarted"},{label:"Github",url:"https://github.com/apache/devlake"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","backendServiceImage","uiServiceImage","grafanaServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"devlake"},uiServiceImage:{type:"string",title:"UI Service Image",default:"devlake.docker.scarf.sh/apache/devlake-config-ui:main_260429_1235_e26c61b"},backendServiceImage:{type:"string",title:"Backend Service Image",default:"devlake.docker.scarf.sh/apache/devlake:main_260429_1235_e26c61b"},grafanaServiceImage:{type:"string",title:"Grafana Service Image",default:"devlake.docker.scarf.sh/apache/devlake-dashboard:main_260429_1235_e26c61b"}}},benefits:[{title:"Centralized Data Integration",description:"DevLake consolidates data from various tools into a single platform for better visibility and analysis."},{title:"Enhanced Team Productivity",description:"Gain actionable insights to optimize engineering workflows and improve team performance."},{title:"Open-Source and Flexible",description:"Leverage an open-source solution with the flexibility to adapt to your organization\u2019s specific needs."}],features:[{title:"Data Synchronization",description:"Seamlessly integrate data from popular development tools like GitHub, GitLab, Jira, and more."},{title:"Customizable Dashboards",description:"Visualize key metrics with prebuilt or custom dashboards tailored to your team\u2019s goals."},{title:"Powerful API",description:"Use DevLake\u2019s API to programmatically interact with and extend its capabilities."},{title:"Community and Enterprise Plugins",description:"Enhance functionality with a rich set of plugins for various tools and workflows."}],tags:["Engineering Metrics","Data Integration","Analytics","Open-Source"],logo:"logo.svg",screenshots:["screenshot.png","screenshot1.png"]},generate:function(e){var t=[],a=v(),i=y(128),o=["PLUGIN_DIR=bin/plugins","REMOTE_PLUGIN_DIR=python/plugins","DB_URL=mysql://mysql:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:3306/$(PROJECT_NAME)?charset=utf8mb4&parseTime=True&loc=UTC"),"E2E_DB_URL=mysql://mysql:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:3306/$(PROJECT_NAME)?charset=utf8mb4&parseTime=True&loc=UTC"),"DB_LOGGING_LEVEL=Error","SKIP_SUBTASK_PROGRESS=false","PORT=8080","MODE=release","NOTIFICATION_ENDPOINT=","NOTIFICATION_SECRET=","API_TIMEOUT=120s","API_RETRY=3","API_REQUESTS_PER_HOUR=10000","PIPELINE_MAX_PARALLEL=1","RESUME_PIPELINES=true","LOGGING_LEVEL=","LOGGING_DIR=./logs","ENABLE_STACKTRACE=true","FORCE_MIGRATION=false","TAP_PROPERTIES_DIR=","DISABLED_REMOTE_PLUGINS=","ENCRYPTION_SECRET=".concat(i),"IN_SECURE_SKIP_VERIFY=false","ENDPOINT_CIDR_BLACKLIST=","FORBID_REDIRECTION=false","USE_GO_GIT_IN_GIT_EXTRACTOR=false","SKIP_COMMIT_STAT=false","SKIP_COMMIT_FILES=true","WRAP_RESPONSE_ERROR=","ENABLE_SUBTASKS_BY_DEFAULT=jira:collectIssueChangelogs:true,jira:extractIssueChangelogs:true,jira:convertIssueChangelogs:true,tapd:collectBugChangelogs:true,tapd:extractBugChangelogs:true,tapd:convertBugChangelogs:true,zentao:collectBugRepoCommits:true,zentao:extractBugRepoCommits:true,zentao:convertBugRepoCommits:true,zentao:collectStoryRepoCommits:true,zentao:extractStoryRepoCommits:true,zentao:convertStoryRepoCommits:true,zentao:collectTaskRepoCommits:true,zentao:extractTaskRepoCommits:true,zentao:convertTaskRepoCommits:true"].join("\n");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-ui"),env:["DEVLAKE_ENDPOINT=$(PROJECT_NAME)_".concat(e.appServiceName,"-backend:8080"),"GRAFANA_ENDPOINT=$(PROJECT_NAME)_".concat(e.appServiceName,"-grafana:3000"),"TZ=UTC",o].join("\n"),source:{type:"image",image:e.uiServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-backend"),env:["LOGGING_DIR=/app/logs","TZ=UTC",o].join("\n"),source:{type:"image",image:e.backendServiceImage},mounts:[{type:"volume",name:"logs",mountPath:"/app/logs"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-grafana"),env:["GF_SERVER_ROOT_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-ui:4000/grafana"),"GF_USERS_DEFAULT_THEME=dark","MYSQL_URL=$(PROJECT_NAME)_".concat(e.appServiceName,"-db:3306"),"MYSQL_DATABASE=$(PROJECT_NAME)","MYSQL_USER=mysql","MYSQL_PASSWORD=".concat(a)].join("\n"),source:{type:"image",image:e.grafanaServiceImage},mounts:[{type:"volume",name:"grafana-storage",mountPath:"/var/lib/grafana"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"dify",meta:{name:"Dify",description:"Dify is an open-source platform designed to simplify the development and operation of AI a
1pplications using large language models (LLMs). It provides features like visual prompt orchestration, RAG pipeline, agent capabilities, model management, and LLMOps for efficient monitoring and analysis.",instructions:null,changeLog:[{date:"2024-7-26",description:"first release"},{date:"2025-12-30",description:"Updated Dify to v1.11.2"}],links:[{label:"Website",url:"https://dify.ai"},{label:"Documentation",url:"https://docs.dify.ai"},{label:"Github",url:"https://github.com/langgenius/dify"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["serviceName"],properties:{serviceName:{type:"string",title:"Service Name",default:"dify"}}},logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"compose",data:{serviceName:e.serviceName,source:{type:"git",repo:"https://github.com/easypanel-io/compose.git",ref:"18-05-2026",rootPath:"/dify/code",composeFile:"docker-compose.yaml"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80,service:"nginx"}]}}),{services:t}}},{slug:"dillinger",meta:{name:"Dillinger",description:"Dillinger is an open-source, online Markdown editor designed to provide a seamless and user-friendly experience for writing and editing Markdown files. With its intuitive interface, Dillinger supports real-time preview, file imports/exports, and integration with popular cloud storage services such as Dropbox, Google Drive, GitHub, and OneDrive. It allows users to write Markdown efficiently and export their work in various formats, including HTML, PDF, and Markdown itself. Dillinger operates as a modern, distraction-free editor that simplifies writing and content creation for developers, writers, and professionals.",instructions:null,changeLog:[{date:"2024-12-11",description:"first release"}],links:[{label:"Demo",url:"https://dillinger.io/"},{label:"GitHub",url:"https://github.com/joemccann/dillinger"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dillinger"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/dillinger:3.39.1"}}},benefits:[{title:"Seamless Markdown Editing",description:"Dillinger simplifies Markdown editing with an intuitive and distraction-free interface, enabling efficient content creation."},{title:"Real-Time Preview",description:"Provides a real-time preview of Markdown documents, helping you see changes instantly as you write."},{title:"Cloud Storage Integration",description:"Supports integration with popular cloud storage services like Dropbox, Google Drive, GitHub, and OneDrive for easy file management and synchronization."}],features:[{title:"Real-Time Markdown Preview",description:"See a live preview of your Markdown document as you write, ensuring accuracy and saving time."},{title:"Export Options",description:"Export Markdown files to various formats, including HTML, PDF, and plain Markdown for flexibility in publishing and sharing."},{title:"File Import and Cloud Sync",description:"Import files from and sync content with services like Dropbox, Google Drive, GitHub, and OneDrive for convenient file access."},{title:"User-Friendly Interface",description:"Dillinger offers a clean and distraction-free editor, ensuring a seamless writing experience for both new and experienced users."}],tags:["Markdown Editor","Content Creation","Productivity Tools","Cloud Integration","File Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"directus",meta:{name:"Directus",description:"Directus is a modern, open-source data platform that instantly transforms any SQL database into an API and a beautiful no-code app. It is designed to work with any SQL database, allowing you to maintain complete control over your new or existing database without the need for migration to a proprietary data model. The Directus API layers on top of your database, providing both REST and GraphQL APIs for your data. The Directus App enables your entire team to safely and intuitively browse, manage, and visualize data. It is a flexible platform that can be used as a Backend-as-a-Service, a Headless CMS, an Internal Tool Builder, and for Data Management & Analytics. With Directus, you can connect external digital experiences, design APIs, control data flows, build internal tools, and much more.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2025-05-26",description:"Version bumped to 11.7.2"},{date:"2025-08-13",description:"Version bumped to 11.10.2 MySQL 8 support added"},{date:"2025-12-25",description:"Version bumped to 11.14.0"},{date:"2026-02-18",description:"Version bumped to 11.15.4"},{date:"2026-04-29",description:"Version bumped to 11.17.3"}],links:[{label:"Website",url:"https://directus.io/"},{label:"Documentation",url:"https://docs.directus.io/"},{label:"Github",url:"https://github.com/directus/docs"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"},{name:"Abhinay M",url:"https://github.com/AbhinayMe"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminEmail","adminPassword","databaseType","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"directus"},appServiceImage:{type:"string",title:"App Service Image",default:"directus/directus:11.17.3"},adminEmail:{type:"string",title:"Admin Email",description:"[email protected]"},adminPassword:{type:"string",title:"Admin Password"},databaseType:{type:"string",title:"Database Type",oneOf:[{enum:["postgres"],title:"Postgres"},{enum:["mysql"],title:"MySQL"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"directus-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"directus-redis"}}},benefits:[{title:"Efficient Data Management",description:"Directus is a modern, open-source data platform that allows you to efficiently manage your SQL database. It provides a dynamic API for your data, enabling you to browse, manage, and visualize your data in an intuitive no-code app."},{title:"Flexible and Scalable",description:"Whether you're managing content for websites, apps, or digital signage, or building back-office apps and admin panels, Directus offers endless solutions. Its flexibility and scalability make it an ideal solution for projects of any size."},{title:"No Vendor Lock-In",description:"Directus installs on top of any SQL database, allowing you to remain in complete control of your new or existing database. There's no need to migrate to a proprietary data model, so there's no vendor lock-in."}],features:[{title:"Data Engine",description:"Directus features a modern data stack that turns any SQL database into an API and a beautiful no-code app. It's the world's first Open Data Platform for instantly managing your data."},{title:"Data Studio",description:"The Data Studio feature allows for no-code data collaboration. It enables your entire team to safely and intuitively browse, manage, and visualize data."},{title:"Workflow Automation",description:"With the Workflow Automation feature, Directus allows you to automate your workflows, increasing efficiency and productivity."},{title:"Asset Management",description:"Directus also features an Asset Management system that allows you to manage and deliver assets efficiently."}],tags:["Developer Tools","CMS","Databases"],logo:"logo.png",screenshots:[]},generate:function(e){var t,a=[],i=y(48),o=y(48),n=v(),r=v(),s=null!==(t=e.adminPassword)&&void 0!==t?t:v();return a.push({type:"app",data:{serviceName:e.appServiceName,env:["KEY=".concat(i),"SECRET=".concat(o),"DB_CLIENT=".concat(e.databaseType),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_PORT=".concat("postgres"===e.databaseType?"5432":"3306"),"DB_DATABASE=$(PROJECT_NAME)","DB_USER=".concat("postgres"===e.databaseType?"postgres":"mysql"),"DB_PASSWORD=".concat(n),"CACHE_ENABLED=true","CACHE_STORE=redis","REDIS=redis://default:".concat(r,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"ADMIN_EMAIL=".concat(e.adminEmail),"ADMIN_PASSWORD=".concat(s)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8055}],mounts:[{type:"volume",name:"uploads",mountPath:"/directus/uploads"},{type:"volume",name:"extensions",mountPath:"/directus/extensions"}]}}),"postgres"===e.databaseType&&a.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:n}}),"mysql"===e.databaseType&&a.push({type:"mysql",data:{serviceName:e.databaseServiceName,image:"mysql:8",password:n}}),a.push({type:"redis",data:{serviceName:e.redisServiceName,password:r}}),{services:a}}},{slug:"discourse",meta:{name:"Discourse",description:"Discourse is a modern, open-source discussion platform built for the next decade of the internet. It provides a clean, intuitive interface for community discussions, forums, mailing lists, and chat. Discourse is fully self-hosted and includes real-time notifications, a rich markdown editor, trust levels, plugin support, and deep email integration. This template uses the official Discourse Docker images with a bundled Postgres database and a Redis cache.",instructions:"After deployment, the first setup wizard will walk you through creating your admin account and configuring your site. Make sure your SMTP credentials are correct before deploying \u2014 Discourse requires email to activate accounts. Allow 5-10 minutes for the initial bootstrap to complete.",changeLog:[{date:"2025-04-30",description:"Initial release"},{date:"2025-07-15",description:"Version bumped to 3.4.5"},{date:"2026-06-30",description:"Switched to official discourse/discourse image"}],links:[{label:"Website",url:"https://www.discourse.org"},{label:"Documentation",url:"https://docs.discourse.org"},{label:"GitHub",url:"https://github.com/discourse/discourse"},{label:"Docker Hub",url:"https://hub.docker.com/r/discourse/discourse"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dbServiceImage","discourseEmail","smtpAddress","smtpPort","smtpUsername","smtpPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"discourse"},appServiceImage:{type:"string",title:"App Service Image",default:"discourse/discourse:2026.1.4"},dbServiceImage:{type:"string",title:"Database Service Image",default:"discourse/postgres:pg17@sha256:75d07f64264da8499bae58cfe002d6de28509e9aca6817159984f0d62ef768be"},discourseEmail:{type:"string",title:"Developer Email",default:"[email protected]"},smtpAddress:{type:"string",title:"SMTP Address",default:"smtp.gmail.com"},smtpPort:{type:"string",title:"SMTP Port",default:"587"},smtpUsername:{type:"string",title:"SMTP Username",default:"[email protected]"},smtpPassword:{type:"string",title:"SMTP Password",default:""}}},benefits:[{title:"Modern Discussion Platform",description:"Clean, intuitive interface for community discussions and forums"},{title:"Self-hosted Solution",description:"Keep your community data private by hosting your own platform"},{title:"Scalable Architecture",description:"Built with performance and scalability in mind"},{title:"Open Source",description:"Free and open-source platform with active community support"}],features:[{title:"Rich Text Editor",description:"Advanced text editing with markdown support"},{title:"Real-time Updates",description:"Live updates and notifications"},{title:"Mobile Responsive",description:"Fully responsive design for all devices"},{title:"User Management",description:"Comprehensive user and permission management"},{title:"Search Functionality",description:"Powerful search capabilities"},{title:"Plugin System",description:"Extensible through plugins and themes"}],tags:["Forum","Discussion","Self-hosted","Open Source","Community"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DISCOURSE_HOSTNAME=$(PRIMARY_DOMAIN)","DISCOURSE_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DISCOURSE_DB_PASSWORD=".concat(a),"DISCOURSE_REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"DISCOURSE_DEVELOPER_EMAILS=".concat(e.discourseEmail),"DISCOURSE_SMTP_ADDRESS=".concat(e.smtpAddress),"DISCOURSE_SMTP_PORT=".concat(e.smtpPort),"DISCOURSE_SMTP_USER_NAME=".concat(e.smtpUsername),"DISCOURSE_SMTP_PASSWORD=".concat(e.smtpPassword)].join("\n"),mounts:[{type:"volume",name:"web-data",mountPath:"/shared"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-db"),source:{type:"image",image:e.dbServiceImage},env:["DB_PASSWORD=".concat(a)].join("\n"),mounts:[{type:"volume",name:"db-d
1ata",mountPath:"/var/lib/postgresql"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-redis"),source:{type:"image",image:"redis:7.4.11-alpine"},deploy:{command:"redis-server --save 60 1"},mounts:[{type:"volume",name:"redis-data",mountPath:"/data"}]}}),{services:t}}},{slug:"dittofeed",meta:{name:"Dittofeed",description:"Dittofeed is an advanced, self-hosted customer engagement platform designed to streamline and enhance your marketing automation workflows. It empowers businesses with real-time insights, robust data-driven personalization, and multi-channel communication tools, including email, SMS, and push notifications. Dittofeed offers a user-friendly interface, powerful API integrations, and extensive customization options, making it ideal for organizations of all sizes. By providing a self-hosted solution, Dittofeed ensures data privacy and compliance while giving you full control over your infrastructure and customer data.",instructions:"Please remove the bootstrap environment variable after the initial setup is complete.",changeLog:[{date:"2025-01-03",description:"Template Release"},{date:"2025-05-26",description:"Version bumped to v0.22.0"},{date:"2025-12-25",description:"Version bumped to v0.23.0"},{date:"2026-02-16",description:"Added Bootstrap environment variable"}],links:[{label:"Website",url:"https://dittofeed.com"},{label:"Documentation",url:"https://docs.dittofeed.com/introduction"},{label:"Github",url:"https://github.com/dittofeed/dittofeed"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","clickHouseImage","minioImage","temporalImage","temporalUiImage","defaultWorkspaceName","dittofeedPassword","clickHouseUser","clickHousePassword","minioUser","minioPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dittofeed"},appServiceImage:{type:"string",title:"App Service Image",default:"dittofeed/dittofeed-lite:v0.23.0"},clickHouseImage:{type:"string",title:"Clickhouse Service Image",default:"clickhouse/clickhouse-server:23.8.8.20-alpine"},minioImage:{type:"string",title:"Minio Service Image",default:"minio/minio:RELEASE.2025-07-23T15-54-02Z"},temporalImage:{type:"string",title:"Temporal Service Image",default:"temporalio/auto-setup:1.22.4"},temporalUiImage:{type:"string",title:"Temporal UI Service Image",default:"temporalio/ui:2.22.1"},defaultWorkspaceName:{type:"string",title:"Default Workspace Name",default:"default"},dittofeedPassword:{type:"string",title:"Dittofeed Password",default:"admin12345"},clickHouseUser:{type:"string",title:"Click House User",default:"clickhouse"},clickHousePassword:{type:"string",title:"Click House Password",default:"clickhouse"},minioUser:{type:"string",title:"Minio User",default:"admin"},minioPassword:{type:"string",title:"Minio Password",default:"password"}}},benefits:[{title:"Streamlined Marketing Automation",description:"Dittofeed simplifies customer engagement by providing an intuitive way to manage, analyze, and optimize your marketing workflows across multiple channels."},{title:"Self-Hosted Flexibility",description:"Maintain full control over your customer data and operations with a self-hosted setup that ensures privacy and compliance."},{title:"Enhanced Customer Insights",description:"Gain valuable insights into customer behavior and engagement with detailed analytics and reporting tools."}],features:[{title:"Powerful API Access",description:"Seamlessly integrate Dittofeed into your existing systems using its robust API for efficient data handling and personalized communications."},{title:"Multi-Channel Communication",description:"Engage with customers through email, SMS, push notifications, and other channels, all from a unified platform."},{title:"Customizable Campaigns",description:"Tailor your marketing campaigns with dynamic content, audience segmentation, and automated triggers to maximize engagement."},{title:"Real-Time Analytics",description:"Monitor campaign performance with real-time metrics, user interactions, and conversion tracking for data-driven decision-making."}],tags:["Marketing Automation","Self-Hosted","Customer Engagement","Multi-Channel","Real-Time Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=["BOOTSTRAP=true","DATABASE_USER=postgres","DATABASE_PASSWORD=".concat(a),"DATABASE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DATABASE_PORT=5432","CLICKHOUSE_USER=".concat(e.clickHouseUser),"CLICKHOUSE_PASSWORD=".concat(e.clickHousePassword),"CLICKHOUSE_HOST=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-clickhouse:8123"),"TEMPORAL_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-temporal:7233"),"NODE_ENV=production","WORKSPACE_NAME=".concat(e.defaultWorkspaceName),"AUTH_MODE=single-tenant","SECRET_KEY=".concat(i),"PASSWORD=".concat(e.dittofeedPassword),"DASHBOARD_API_BASE=https://$(PRIMARY_DOMAIN)","SESSION_COOKIE_SECURE=true","BOOTSTRAP=true"].join("\n");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:[o].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"node --max-old-space-size=412 ./packages/lite/dist/scripts/startLite.js --workspace-name=".concat(e.defaultWorkspaceName)},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:3e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-admincli"),env:[o].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"tail -f /dev/null"},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:3e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-clickhouse"),env:["CLICKHOUSE_USER=".concat(e.clickHouseUser),"CLICKHOUSE_PASSWORD=".concat(e.clickHousePassword)].join("\n"),source:{type:"image",image:e.clickHouseImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"clickhouse_data",mountPath:"/var/lib/clickhouse"},{type:"volume",name:"clickhouse_logs",mountPath:"/var/log/clickhouse-server"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),env:["MINIO_SERVER_URL=https://$(EASYPANEL_DOMAIN)","MINIO_ROOT_USER=".concat(e.minioUser),"MINIO_ROOT_PASSWORD=".concat(e.minioPassword)].join("\n"),source:{type:"image",image:e.minioImage},deploy:{command:'minio server /data --console-address ":9001"'},domains:[{host:"console-$(EASYPANEL_DOMAIN)",port:9001},{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-temporal"),env:["DB=postgresql","DB_PORT=5432","POSTGRES_USER=p
1ostgres","POSTGRES_PWD=".concat(a),"POSTGRES_SEEDS=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/prod.yaml"].join("\n"),source:{type:"image",image:e.temporalImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"file",content:"",mountPath:"/etc/temporal/config/dynamicconfig/prod.yaml"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-temporal-ui"),env:["TEMPORAL_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-temporal:7233"),"TEMPORAL_CORS_ORIGINS=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.temporalUiImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:8080}],mounts:[{type:"file",content:"",mountPath:"/etc/temporal/config/dynamicconfig/prod.yaml"}]}}),{services:t}}},{slug:"dnote",meta:{name:"Dnote",description:"Dnote is a simple command-line notebook application that helps you capture and organize your thoughts. It provides a clean interface for taking notes and organizing them into books.",instructions:"Configure SMTP to enable email verification and password resets. Dnote v3 uses embedded SQLite \u2014 no external database is required.",changeLog:[{date:"2026-05-19",description:"Updated to v3.0.0"},{date:"2025-04-11",description:"First Release"}],links:[{label:"GitHub",url:"https://github.com/dnote/dnote"},{label:"Website",url:"https://dnote.io"},{label:"Documentation",url:"https://www.getdnote.com/blog/introducing-dnote-web/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","SmtpHost","SmtpPort","SmtpUser","SmtpPassword","SmtpFrom"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dnote"},appServiceImage:{type:"string",title:"App Service Image",default:"dnote/dnote:3.0.0"},SmtpHost:{type:"string",title:"SMTP Host",default:"smtp.gmail.com"},SmtpPort:{type:"string",title:"SMTP Port",default:"587"},SmtpUser:{type:"string",title:"SMTP User",default:"[email protected]"},SmtpPassword:{type:"string",title:"SMTP Password",default:"your-password"},SmtpFrom:{type:"string",title:"SMTP From",default:"[email protected]"}}},benefits:[{title:"Note Taking",description:"Simple and efficient note-taking"},{title:"Organization",description:"Organize notes into books"},{title:"Command Line",description:"Access notes from the command line"},{title:"Self-Hosted",description:"Keep your notes private and secure"}],features:[{title:"Note Management",description:"Create and manage notes easily"},{title:"Book Organization",description:"Organize notes into books"},{title:"Search",description:"Search through your notes"},{title:"CLI Access",description:"Access notes from the command line"},{title:"Web Interface",description:"Access notes through a web interface"}],tags:["Note Taking","CLI","Organization","Self-Hosted","Productivity"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001}],mounts:[{type:"volume",name:"dnote-data",mountPath:"/data"}],env:["GO_ENV=PRODUCTION","DBPath=/data/dnote.db","BaseURL=https://$(PRIMARY_DOMAIN)","SmtpHost=".concat(e.SmtpHost),"SmtpPort=".concat(e.SmtpPort),"SmtpUsername=".concat(e.SmtpUser),"SmtpPassword=".concat(e.SmtpPassword),"SmtpFrom=".concat(e.SmtpFrom)].join("\n")}}),{services:t}}},{slug:"docker-mailserver",meta:{name:"Docker Mailserver",description:"A fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container. It provides a complete email solution with features like spam filtering, virus scanning, and secure email delivery.",instructions:"Follow the guide to configure the mail server with environment variables.",changeLog:[{date:"2025-04-24",description:"First Release"},{date:"2026-05-06",description:"Version bumped to v15.1.0"}],links:[{label:"Github",url:"https://github.com/docker-mailserver/docker-mailserver"},{label:"Guide",url:"https://github.com/docker-mailserver/docker-mailserver/blob/master/mailserver.env"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","hostname","relayHost","relayPort","relayUser","relayPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mailserver"},appServiceImage:{type:"string",title:"App Service Image",default:"docker.io/mailserver/docker-mailserver:v15.1.0"},hostname:{type:"string",title:"Hostname",default:"mail.example.com"},relayHost:{type:"string",title:"Relay Host",default:"smtp.example.com"},relayPort:{type:"string",title:"Relay Port",default:"587"},relayUser:{type:"string",title:"Relay User",default:"user"},relayPassword:{type:"string",title:"Relay Password",default:"password"}}},benefits:[{title:"Complete Email Solution",description:"Docker Mailserver provides a full-featured email server with SMTP, IMAP, and LDAP support. It includes all the essential components needed for a production-ready email system."},{title:"Advanced Security Features",description:"Built-in support for ClamAV antivirus, SpamAssassin spam filtering, and Fail2ban protection ensures your email server is secure and protected against common threats."},{title:"Easy Deployment and Maintenance",description:"As a Docker container, it's easy to deploy and maintain. The configuration is simple and version-controlled, making it perfect for both development and production environments."}],features:[{title:"SMTP and IMAP Support",description:"Full support for SMTP (port 25), IMAP (port 143), Submission (port 587), and IMAPS (port 993) protocols, making it compatible with all standard email clients."},{title:"Antivirus and Spam Protection",description:"Integrated ClamAV antivirus and SpamAssassin spam filtering provide comprehensive protection against malicious content and unwanted emails."},{title:"Security Features",description:"Includes Fail2ban protection against brute force attacks and Postgrey greylisting to reduce spam. Supports Let's Encrypt for SSL certificates."},{title:"LDAP Integration",description:"Built-in LDAP support allows for easy integration with existing directory services and user management systems."},{title:"Customizable Configuration",description:"Extensive configuration options through environment variables allow you to customize the server to your specific needs."},{title:"Persistent Storage",description:"Uses Docker volumes for persistent storage of mail data, logs, and SSL certificates, ensuring data is preserved across container restarts."}],tags:["Email","SMTP","IMAP","LDAP","Antispam","Antivirus"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},ports:[{published:25,target:25},{published:143,target:143},{published:465,target:465},{published:587,target:587},{published:993,target:993}],mounts:[{type:"volume",name:"maildata",mountPath:"/var/mail"},{type:"volume",name:"mailstate",mountPath:"/var/mail-state"},{type:"volume",name:"maillogs",mountPath:"/var/log/mail"},{type:"volume",name:"config",mountPath:"/tmp/docker-mailserver"},{type:"bind",hostPath:"/etc/localtime",mountPath:"/etc/localtime"}],env:["OVERRIDE_HOSTNAME=".concat(e.hostname),"DMS_DEBUG=0","LOG_LEVEL=info","SUPERVISOR_LOGLEVEL=","DMS_VMAIL_UID=","DMS_VMAIL_GID=","ACCOUNT_PROVISIONER=","POSTMASTER_ADDRESS=","ENABLE_UPDATE_CHECK=1","UPDATE_CHECK_INTERVAL=1d","PERMIT_DOCKER=none","TZ=","NETWORK_INTERFACE=","TLS_LEVEL=","SPOOF_PROTECTION=","ENABLE_SRS=0","ENABLE_OPENDKIM=1","ENABLE_OPENDMARC=1","ENABLE_POLICYD_SPF=1","ENABLE_POP3=","ENABLE_IMAP=1","ENABLE_CLAMAV=0","SPAM_SUBJECT=","ENABLE_RSPAMD=0","ENABLE_RSPAMD_REDIS=","RSPAMD_LEARN=0","RSPAMD_CHECK_AUTHENTICATED=0","RSPAMD_GREYLISTING=0","RSPAMD_HFILTER=1","RSPAMD_HFILTER_HOSTNAME_UNKNOWN_SCORE=6","RSPAMD_NEURAL=0","ENABLE_AMAVIS=1","AMAVIS_LOGLEVEL=0","ENABLE_DNSBL=0","ENABLE_FAIL2BAN=0","FAIL2BAN_BLOCKTYPE=drop","ENABLE_MANAGESIEVE=","POSTSCREEN_ACTION=enforce","SMTP_ONLY=","SSL_TYPE=","SSL_CERT_PATH=","SSL_KEY_PATH=","SSL_ALT_CERT_PATH=","SSL_ALT_KEY_PATH=","VIRUSMAILS_DELETE_DELAY=","POSTFIX_DAGENT=","POSTFIX_MAILBOX_SIZE_LIMIT=","ENABLE_QUOTAS=1","POSTFIX_MESSAGE_SIZE_LIMIT=","CLAMAV_MESSAGE_SIZE_LIMIT=","PFLOGSUMM_TRIGGER=","PFLOGSUMM_RECIPIENT=","PFLOGSUMM_SENDER=","LOGWATCH_INTERVAL=","LOGWATCH_RECIPIENT=","LOGWATCH_SENDER=","REPORT_RECIPIENT=","REPORT_SENDER=","LOGROTATE_INTERVAL=weekly","LOGROTATE_COUNT=4","POSTFIX_REJECT_UNKNOWN_CLIENT_HOSTNAME=0","POSTFIX_INET_PROTOCOLS=all","ENABLE_MTA_STS=0","DOVECOT_INET_PROTOCOLS=all","ENABLE_SPAMASSASSIN=0","ENABLE_SPAMASSASSIN_KAM=0","SPAMASSASSIN_SPAM_TO_INBOX=1","MOVE_SPAM_TO_JUNK=1","MARK_SPAM_AS_READ=0","SA_TAG=2.0","SA_TAG2=6.31","SA_KILL=10.0","ENABLE_FETCHMAIL=0","FETCHMAIL_POLL=300","FETCHMAIL_PARALLEL=0","ENABLE_GETMAIL=0","GETMAIL_POLL=5","ENABLE_OAUTH2=","OAUTH2_INTROSPECTION_URL=","LDAP_START_TLS=","LDAP_SERVER_HOST=","LDAP_SEARCH_BASE=","LDAP_BIND_DN=","LDAP_BIND_PW=","LDAP_QUERY_FILTER_USER=","LDAP_QUERY_FILTER_GROUP=","LDAP_QUERY_FILTER_ALIAS=","LDAP_QUERY_FILTER_DOMAIN=","DOVECOT_TLS=","DOVECOT_USER_FILTER=","DOVECOT_PASS_FILTER=","DOVECOT_MAILBOX_FORMAT=maildir","DOVECOT_AUTH_BIND=","ENABLE_POSTGREY=0","POSTGREY_DELAY=300","POSTGREY_MAX_AGE=35","POSTGREY_TEXT=Delayed by Postgrey","POSTGREY_AUTO_WHITELIST_CLIENTS=5","ENABLE_SASLAUTHD=0","SASLAUTHD_MECHANISMS=","SASLAUTHD_MECH_OPTIONS=","SASLAUTHD_LDAP_SERVER=","SASLAUTHD_LDAP_BIND_DN=","SASLAUTHD_LDAP_PASSWORD=","SASLAUTHD_LDAP_SEARCH_BASE=","SASLAUTHD_LDAP_FILTER=","SASLAUTHD_LDAP_START_TLS=","SASLAUTHD_LDAP_TLS_CHECK_PEER=","SASLAUTHD_LDAP_TLS_CACERT_FILE=","SASLAUTHD_LDAP_TLS_CACERT_DIR=","SASLAUTHD_LDAP_PASSWORD_ATTR=","SASLAUTHD_LDAP_AUTH_METHOD=","SASLAUTHD_LDAP_MECH=","SRS_SENDER_CLASSES=envelope_sender","SRS_EXCLUDE_DOMAINS=","SRS_SECRET=","DEFAULT_RELAY_HOST=","RELAY_HOST=".concat(e.relayHost),"RELAY_PORT=".concat(e.relayPort),"RELAY_USER=".concat(e.relayUser),"RELAY_PASSWORD=".concat(e.relayPassword)].join("\n")}}),{services:t}}},{slug:"docker-registry",meta:{name:"Docker Registry",description:"Docker Registry 2.0 is a powerful application designed to store and distribute Docker images. This app is an implementation of the Docker Registry HTTP API V2, compatible with Docker 1.6 and later versions. It provides a secure and scalable base for building a large scale registry solution or running a simple private registry. Docker Registry 2.0 is a core library for many registry operators including Docker Hub, GitHub Container Registry, GitLab Container Registry, and DigitalOcean Container Registry. It is also used by the CNCF Harbor Project and VMware Harbor Registry. The app allows users to efficie
1ntly store, manage, package, and exchange content, providing a professional grade and extensible content distribution system.",instructions:"The Registry doesn't have a UI. To interact with the registry you should use the Docker CLI.",changeLog:[{date:"2022-08-09",description:"first release"},{date:"2025-05-26",description:"Version bumped to 3.0.0"},{date:"2026-04-29",description:"Version bumped to 3.1.0"}],links:[{label:"Website",url:"https://hub.docker.com/_/registry"},{label:"Github",url:"https://github.com/distribution/distribution"}],contributors:[{name:"Bedeoan Raul",url:"https://github.com/bedeoan"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","user","password"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"docker-registry"},appServiceImage:{type:"string",title:"App Service Image",default:"registry:3.1.0"},user:{type:"string",title:"User",default:"admin"},password:{type:"string",title:"Password",default:"admin"}}},benefits:[{title:"Efficient Content Distribution",description:"The Docker Registry 2.0 app provides an efficient, secure, and reliable way to store, manage, package, and exchange content. It is designed to be a professional-grade and extensible content distribution system."},{title:"Scalability",description:"Whether you're building a large scale registry solution or running a simple private registry, Docker Registry 2.0 is designed to scale to your needs. It's a core library for many registry operators, including Docker Hub, GitHub Container Registry, GitLab Container Registry, and DigitalOcean Container Registry."},{title:"Security",description:"Security is a key focus of Docker Registry 2.0. The app is designed to provide a secure tool chain for distributing content, ensuring that your data is protected."}],features:[{title:"Open Source Registry",description:"Docker Registry 2.0 is an open source registry implementation for storing and distributing container images using the OCI Distribution Specification."},{title:"Rich Set of Libraries",description:"The app includes a rich set of libraries for interacting with distribution components. These libraries provide a range of functionalities, making it easier to work with the distribution components."},{title:"HTTP Communication",description:"Clients can communicate with the registry using HTTP. This makes it easy to integrate Docker Registry 2.0 with Docker, containerd, and other OCI clients."},{title:"Customization",description:"Docker Registry 2.0 is designed to be extensible, allowing users to hack/roll their own on top of healthy open-source components or implement their own home made solution through good specs and solid extensions mechanism."}],tags:["Developer Tools","Databases"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],mounts:[{type:"volume",name:"data",mountPath:"/var/lib/registry"}],deploy:{zeroDowntime:!0},basicAuth:[{username:e.user,password:e.password}]}}),{services:t}}},{slug:"dockerizalo",meta:{name:"Dockerizalo",description:"Dockerizalo is a lightweight, self-hosted deployment platform for homelabbers. Point it at a Git repository and it clones, builds, and runs the app as a container on your existing Docker host, while managing secrets, volumes, ports, and build/runtime logs from a web dashboard. It has no built-in reverse proxy for deployed apps, so pair it with your own domain routing on the containers it creates.",instructions:"Open the app URL to reach the dashboard and create your first account.\nThe API service is given direct access to the host's Docker socket so it\ncan build and run containers on your behalf, so treat this deployment\nwith the same care as direct server access and keep it behind\nauthentication you trust.\n",changeLog:[{date:"2026-07-13",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/undernightcore/dockerizalo"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","proxyImage","apiImage","uiImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dockerizalo"},proxyImage:{type:"string",title:"Proxy Image",description:'Only a "latest" tag is published upstream for this image.',default:"ghcr.io/undernightcore/dockerizalo-proxy:latest@sha256:6ae21c7b6f56e838626fbd35ef2945152c411f24e6494f69e2a1c097e26c2a6a"},apiImage:{type:"string",title:"API Image",default:"ghcr.io/undernightcore/dockerizalo:1.6.3"},uiImage:{type:"string",title:"UI Image",default:"ghcr.io/undernightcore/dockerizalo-ui:1.6.3"}}},benefits:[{title:"Git-to-Container in One Step",description:"Point Dockerizalo at a Git repository and it clones, builds, and runs it as a container, without you writing a Dockerfile or deploy script."},{title:"Uses Your Existing Docker Host",description:"Apps are built and run directly on the same Docker daemon Dockerizalo itself runs on, so there is no separate cluster or orchestrator to operate."},{title:"Centralized Logs and Secrets",description:"Build logs, runtime logs, environment variables, and port mappings for every deployed app are managed from a single dashboard."}],features:[{title:"Git-Based Deployments",description:"Deploy straight from a Git repository URL and redeploy by pushing new commits."},{title:"Volume and Port Management",description:"Configure persistent volumes and published ports for each deployed app directly from the dashboard."},{title:"Build and Runtime Logs",description:"Stream build output and container logs in real time to debug a deployment without shelling into the host."}],tags:["Self-Hosted","PaaS","Docker","DevOps","Homelab"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=":8080 {\n\thandle_path /api* {\n\t\treverse_proxy $(PROJECT_NAME)_".concat(e.appServiceName,"-api:8080\n\t}\n\n\treverse_proxy $(PROJECT_NAME)_").concat(e.appServiceName,"-ui:80\n}\n");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.proxyImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"file",content:o,mountPath:"/etc/caddy/Caddyfile"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),source:{type:"image",image:e.apiImage},env:["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?schema=public"),"APP_SECRET=".concat(i)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data/dockerizalo"},{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-ui"),source:{type:"image",image:e.uiImage}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"dockge",meta:{name:"Dockge",description:"Dockge is a modern, self-hosted Docker Compose management tool that provides a beautiful and intuitive web interface for managing your Docker Compose stacks. It allows you to create, edit, start, stop, and monitor your Docker Compose applications through a user-friendly dashboard. Dockge simplifies Docker Compose management with features like real-time logs, stack monitoring, and easy configuration editing.",instructions:null,changeLog:[{date:"2025-09-11",description:"Initial Template Release"}],links:[{label:"GitHub",url:"https://github.com/louislam/dockge"},{label:"Documentation",url:"https://dockge.kuma.pet/"},{label:"Docker Hub",url:"https://hub.docker.com/r/louislam/dockge"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dockge"},appServiceImage:{type:"string",title:"App Service Image",default:"louislam/dockge:1.5.0",description:"Dockge Docker image"}}},benefits:[{title:"Docker Compose Management",description:"Beautiful web interface for managing Docker Compose stacks with real-time monitoring, logs, and easy configuration editing."},{title:"Self-Hosted Solution",description:"Complete control over your Docker Compose management with a self-hosted solution that keeps your infrastructure private and secure."},{title:"Real-Time Monitoring",description:"Monitor your Docker Compose stacks in real-time with live logs, status updates, and performance metrics."},{title:"Easy Configuration",description:"Intuitive interface for creating, editing, and managing Docker Compose files without command-line complexity."}],features:[{title:"Stack Management",description:"Create, start, stop, and delete Docker Compose stacks through an intuitive web interface with one-click operations."},{title:"Real-Time Logs",description:"View real-time logs from your Docker Compose services with filtering and search capabilities for better debugging."},{title:"Configuration Editor",description:"Built-in YAML editor with syntax highlighting and validation for editing Docker Compose files directly in the browser."},{title:"Service Monitoring",description:"Monitor service health, resource usage, and status with comprehensive dashboards and alerts."},{title:"Backup and Restore",description:"Backup and restore your Docker Compose configurations and data with built-in backup management tools."},{title:"Multi-Stack Support",description:"Manage multiple Docker Compose stacks from a single interface with organized project management and categorization."}],tags:["Docker Compose","Container Management","Self-Hosted","Web Interface","Monitoring","DevOps","Infrastructure","YAML Editor","Logs","Stack Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5001}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"dockge-data",mountPath:"/app/data"},{type:"volume",name:"dockge-stacks",mountPath:"/root/dockge/stacks"}],env:["DOCKGE_STACKS_DIR=/root/dockge/stacks"].join("\n")}}),{services:t}}},{slug:"dockhand",meta:{name:"Dockhand",description:"Dockhand is a modern Docker container management and monitoring tool that provides an intuitive web interface for managing your Docker containers, images, volumes, and networks. With real-time container statistics, log viewing, and container lifecycle management, Dockhand simplifies Docker operations for both developers and system administrators. The application offers comprehensive container management capabilities including start, stop, restart, and removal operations, along with detailed container information and resource usage monitoring. Perfect for developers who need a visual interface for Docker management, system administrators monitoring container infrastructure, or teams looking for an alternative to command-line Docker tools.",instructions:"After deployment, access Dockhand at your domain. The application requires\naccess to the Docker socket to manage containers. Make sure you have the\nnecessary permissions to access the Docker daemon.\n",changeLog:[{date:"2026-01-07 (8d75d786)",description:"Template Release"},{date:"2026-04-29",description:"Version bumped to 48a80675"}],links:[{label:"GitHub",url:"https://github.com/Finsys/dockhand"},{label:"Website",url:"https://dockhand.pro"},{label:"Docker Hub",url:"https://hub.docker.com/r/fnsys/dockhand"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dockhand"},appServiceImage:{type:"string",title:"App Service Image",default:"fnsys/dockhand:48a80675"}}},benefits:[{title:"Visual Docker Management",description:"Intuitive web interface for managing Docker containers without needing to use command-line tools."},{title:"Real-Time Monitoring",description:"Monitor container statistics, resource usage, and logs in real-time through the web interface."},{title:"Container Lifecycle Management",description:"Easily start, stop, restart, and remove containers with a few clicks from the web interface."},{title:"Self-Hosted Solution",description:"Deploy on your own infrastructure for complete control over your Docker management tools."}],features:[{title:"Container Management",description:"Full lifecycle management of Docker containers including creation, modification, and deletion operations."},{title:"Image Management",description:"View and manage Docker images, including pulling new images and removing unused ones."},{title:"Volume Management",description:"Manage Docker volumes, view volume details, and clean up unused volumes."},{title:"Network Management",description:"View and manage Docker networks, including network configuration and container connections."},{title:"Log Viewing",description:"Real-time log viewing for containers with search and filtering capabilities."},{title:"Resource Monitoring",description:"Monitor container resource usage including CPU, memory, and network statistics."},{title:"Docker Socket Integration",description:"Direct integration with Docker daemon through socket access for comprehensive container management."}],tags:["Docker","Container Management","Monitoring","DevOps","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"docmost",meta:{name:"Docmost",description:"Docmost is a secure and versatile self-hosted platform for document management and collaboration. It enables organizations to efficiently store, manage, and share documents while maintaining complete control over their data. Docmost is built to streamline workflows, enhance team collaboration, and ensure data privacy. It provides an intuitive interface and robust features for document editing, version control, and seamless integrations with other tools and services. Designed for businesses of all sizes, Docmost empowers teams to work smarter and more securely.",instructions:null,changeLog:[{date:"2026-09-16",description:"Fixed APP_URL to use the deployed domain instead of a hardcoded http://localhost:3000 - real-time collaboration (WebSockets) and generated links were broken without this"},{date:"2024-12-21",description:"Template Release"},{date:"2025-05-26",description:"Version bumped to 0.20.4"},{date:"2025-07-15",description:"Version bumped to 0.21.0"},{date:"2025-12-25",description:"Version bumped to 0.24.1"},{date:"2026-02-18",description:"Version bumped to 0.25.3"},{date:"2026-04-29",description:"Version bumped to 0.80.1"}],links:[{label:"Documentation",url:"https://docmost.com/docs/"},{label:"Github",url:"https://github.com/Docmost/Docmost"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"docmost"},appServiceImage:{type:"string",title:"App Service Image",default:"docmost/docmost:0.80.1"}}},benefits:[{title:"Secure Document Management",description:"Docmost provides a secure platform for storing and managing your organization's documents, ensuring data privacy and control."},{title:"Enhanced Team Collaboration",description:"Enable seamless collaboration among team members with robust tools for document editing, sharing, and version control."},{title:"Workflow Optimization",description:"Streamline your workflows by integrating Docmost with other tools and automating repetitive tasks."}],features:[{title:"Document Version Control",description:"Keep track of document changes with built-in version control, ensuring transparency and accountability."},{title:"Customizable Workspaces",description:"Create tailored workspaces for different teams or projects, allowing for organized and focused collaboration."},{title:"Secure File Sharing",description:"Share documents securely with granular permissions and encryption to protect sensitive data."},{title:"API and Integrations",description:"Extend Docmost's functionality by integrating with your existing tools using its powerful API."},{title:"Cross-Platform Support",description:"Access Docmost on any device, ensuring productivity regardless of location or platform."}],tags:["Document Management","Collaboration","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v(),o=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:["APP_URL=https://$(PRIMARY_DOMAIN)","APP_SECRET=".concat(a),"DATABASE_URL=postgresql://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?schema=public"),"REDIS_URL=redis://:".concat(o,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:3e3}],mounts:[{type:"volume",name:"storage",mountPath:"/app/data/storage"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),{services:t}}},{slug:"docpht",meta:{name:"DocPHT",description:"DocPHT is a document management system that helps you organize and manage your documents. It provides a simple and intuitive interface for storing, organizing, and sharing documents.",instructions:null,changeLog:[{date:"2025-04-11",description:"First Release"}],links:[{label:"GitHub",url:"https://github.com/docpht/docpht"},{label:"Website",url:"https://docpht.org"},{label:"Documentation",url:"https://docs.docpht.org"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"docpht"},appServiceImage:{type:"string",title:"App Service Image",default:"docpht/docpht:v1.3.2"}}},benefits:[{title:"Document Management",description:"Organize and manage your documents efficiently"},{title:"Simple Interface",description:"User-friendly interface for document management"},{title:"Organization",description:"Organize documents into categories and tags"},{title:"Self-Hosted",description:"Keep your documents private and secure"}],features:[{title:"Document Storage",description:"Store and manage your documents"},{title:"Categories",description:"Organize documents into categories"},{title:"Tags",description:"Add tags to documents for better organization"},{title:"Search",description:"Search through your documents"},{title:"Export",description:"Export documents in various formats"}],tags:["Document Management","Organization","Self-Hosted","Web Application","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/var/www/app/src/config"},{type:"volume",name:"data",mountPath:"/var/www/app/data"},{type:"volume",name:"pages",mountPath:"/var/www/app/pages"}]}}),{services:t}}},{slug:"docspell",meta:{name:"Docspell",description:"Docspell is a personal document management system designed to archive and organize your digital documents. It helps you scan, organize, search, and retrieve your documents with ease. Docspell automatically processes documents, extracts text via OCR, and makes your documents searchable through full-text search powered by Solr. The system consists of multiple components a REST server for the web interface, a job executor (joex) for background processing, a directory consumer for automatic document ingestion, and Solr for powerful search capabilities. Docspell helps you categorize documents, add metadata, and efficiently manage your paperwork in a secure, self-hosted environment.",instructions:"The initial setup requires creating a user account.",changeLog:[{date:"2025-03-19",description:"Template Release"},{date:"2025-07-15",description:"Version bumped to v0.43"}],links:[{label:"Documentation",url:"https://docspell.org/docs/"},{label:"Github",url:"https://github.com/eikek/docspell"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","joexServiceImage","consumedirServiceImage","solrServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"docspell"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/docspell/restserver:v0.43"},joexServiceImage:{type:"string",title:"Joex Service Image",default:"ghcr.io/docspell/joex:v0.43"},consumedirServiceImage:{type:"string",title:"Consumedir Service Image",default:"docspell/dsc:v0.11.0"},solrServiceImage:{type:"string",title:"Solr Service Image",default:"solr:9"}}},benefits:[{title:"Document Organization",description:"Docspell helps you organize your digital documents with automatic metadata extraction and customizable tagging."},{title:"Full-Text Search",description:"Find any document quickly with powerful full-text search capabilities powered by Solr."},{title:"Self-Hosted Solution",description:"Maintain privacy and control over your documents with a completely self-hosted system."}],features:[{title:"OCR Processing",description:"Automatically extract text from scanned documents to make them searchable."},{title:"Automated Ingestion",description:"Set up automatic document processing through various input methods including email and directory watching."},{title:"Metadata Management",description:"Organize documents with tags, correspondents, and other metadata fields."},{title:"Multiple User Support",description:"Set up individual or shared document collections with customizable access controls."}],tags:["Document Management","OCR","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32);return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-restserver"),env:["DOCSPELL_SERVER_INTERNAL__URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-restserver:7880"),"DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET=".concat(i),"DOCSPELL_SERVER_AUTH_SERVER__SECRET=".concat(o),"DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD=".concat(a),"DOCSPELL_SERVER_BACKEND_JDBC_URL=jdbc:postgresql://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?sslmode=disable&user=postgres&password=").concat(a),"DOCSPELL_SERVER_BACKEND_JDBC_USER=postgres","DOCSPELL_SERVER_BIND_ADDRESS=0.0.0.0","DOCSPELL_SERVER_FULL__TEXT__SEARCH_ENABLED=true","DOCSPELL_SERVER_FULL__TEXT__SEARCH_SOLR_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-solr:8983/solr/docspell"),"DOCSPELL_SERVER_INTEGRATION__ENDPOINT_ENABLED=true","DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_ENABLED=true","DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE=integration-password123","DOCSPELL_SERVER_BACKEND_SIGNUP_MODE=open","DOCSPELL_SERVER_BACKEND_SIGNUP_NEW__INVITE__PASSWORD=","DOCSPELL_SERVER_BACKEND_ADDONS_ENABLED=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7880}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-joex"),env:["TZ=Europe/Berlin","DOCSPELL_JOEX_APP__ID=joex1","DOCSPELL_JOEX_PERIODIC__SCHEDULER_NAME=joex1","DOCSPELL_JOEX_SCHEDULER_NAME=joex1","DOCSPELL_JOEX_BASE__URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-joex:7878"),"DOCSPELL_JOEX_BIND_ADDRESS=0.0.0.0","DOCSPELL_JOEX_FULL__TEXT__SEARCH_ENABLED=true","DOCSPELL_JOEX_FULL__TEXT__SEARCH_SOLR_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-solr:8983/solr/docspell"),"DOCSPELL_JOEX_JDBC_PASSWORD=".concat(a),"DOCSPELL_JOEX_JDBC_URL=jdbc:postgresql://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?sslmode=disable&user=postgres&password=").concat(a),"DOCSPELL_JOEX_JDBC_USER=postgres","DOCSPELL_JOEX_ADDONS_EXECUTOR__CONFIG_RUNNER=docker,trivial","DOCSPELL_JOEX_CONVERT_HTML__CONVERTER=weasyprint"].join("\n"),source:{type:"image",image:e.joexServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-consumedir"),env:["DOCSPELL_SERVER=$(PROJECT_NAME)-".concat(e.appServiceName,"-restserver")].join("\n"),source:{type:"image",image:e.consumedirServiceImage},deploy:{command:"dsc -d http://$DOCSPELL_SERVER:7880 watch --delete -ir --not-matches '**/.*' --header 'Docspell-Integration:integration-password123' /opt/docs"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"docs",mountPath:"/opt/docs"}
1]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-solr"),source:{type:"image",image:e.solrServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"documenso",meta:{name:"Documenso",description:"The open source DocuSign alternative. Securely sign documents without giving up your privacy or freedom.",instructions:"Please follow the below given stackoverflow instructions to create the .p12 file and provide the path of that file to the required field.",changeLog:[{date:"2025-05-23",description:"First release"},{date:"2025-07-15",description:"Version bumped to v1.12.1"},{date:"2025-12-25",description:"Version bumped to v2.3.1"},{date:"2026-02-18",description:"Version bumped to v2.6.1"},{date:"2026-04-29",description:"Version bumped to v2.9.1"}],links:[{label:"Website",url:"https://documenso.com/"},{label:"Documentation",url:"https://docs.documenso.com/"},{label:"Github",url:"https://github.com/documenso/documenso"},{label:"Stackoverflow",url:"https://stackoverflow.com/questions/21141215/creating-a-p12-file"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","smtpHost","smtpPort","smtpUsername","smtpPassword","smtpFromName","smtpFromAddress","p12Path"],properties:{appServiceName:{type:"string",title:"Service Name",default:"documenso"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"documenso/documenso:v2.9.1"},smtpHost:{type:"string",title:"SMTP Host",default:"smtp.example.com"},smtpPort:{type:"string",title:"SMTP Port",default:"587"},smtpUsername:{type:"string",title:"SMTP Username",default:"[email protected]"},smtpPassword:{type:"string",title:"SMTP Password",default:"password123"},smtpFromName:{type:"string",title:"SMTP From Name",default:"Documenso"},smtpFromAddress:{type:"string",title:"SMTP From Address",default:"[email protected]"},p12Path:{type:"string",title:"P12 Path",description:"The path to the .p12 file that contains the certificate and private key for the Documenso service."}}},benefits:[{title:"Open Source Document Signing",description:"Documenso is an open-source alternative to DocuSign, enabling secure document signing without vendor lock-in."},{title:"Self-Hosted and Privacy-Focused",description:"Host your own document signing solution with full control over your data and privacy."},{title:"Modern Digital Signatures",description:"Supports modern digital signature standards for legally binding document signing."}],features:[{title:"Document Management",description:"Upload, organize, and manage documents for signing in a secure environment."},{title:"E-Signatures",description:"Collect legally binding electronic signatures from multiple parties."},{title:"Signature Tracking",description:"Track the status of document signatures in real-time."},{title:"Email Notifications",description:"Automatic email notifications for signature requests and completions."},{title:"PDF Handling",description:"Advanced PDF document viewing and manipulation capabilities."}],tags:["Document Management","E-Signatures","Business Tools","Legal"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(64),n=y(64);return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:["NEXTAUTH_SECRET=".concat(i),"NEXT_PRIVATE_ENCRYPTION_KEY=".concat(o),"NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=".concat(n),"NEXT_PUBLIC_WEBAPP_URL=https://$(PRIMARY_DOMAIN)","NEXT_PRIVATE_INTERNAL_WEBAPP_URL=http://localhost:3000","NEXT_PRIVATE_DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/postgres?sslmode=disable"),"NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/postgres?sslmode=disable"),"NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth","NEXT_PRIVATE_SMTP_HOST=".concat(e.smtpHost),"NEXT_PRIVATE_SMTP_PORT=".concat(e.smtpPort),"NEXT_PRIVATE_SMTP_USERNAME=".concat(e.smtpUsername),"NEXT_PRIVATE_SMTP_PASSWORD=".concat(e.smtpPassword),"NEXT_PRIVATE_SMTP_FROM_NAME=".concat(e.smtpFromName),"NEXT_PRIVATE_SMTP_FROM_ADDRESS=".concat(e.smtpFromAddress),"NEXT_PUBLIC_UPLOAD_TRANSPORT=database","NEXT_PRIVATE_SIGNING_TRANSPORT=local","NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=/app/certs/cert.p12"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"bind",hostPath:"/etc/keys/cert.p12",mountPath:"/app/certs/cert.p12"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"documize",meta:{name:"Documize",description:"Documize Zerabase is a powerful business tool designed to manage product delivery and insight discovery. It serves as a Product Engineering Hub, unifying product plans, assets, documents, app analytics, and customer conversations. This remarkable offline-first desktop software becomes your product headquarters, centralizing content and information for everyone to see and act upon, making it a game-changer for product teams. On the other hand, the Community feature of Documize offers a simple, delightful way to capture and share knowledge management. It covers processes, guidelines, manuals, and everything in-between, allowing you to document your business with ease. It's designed for both technical and non-technical users, organizing content through labels, spaces, and categories. The Community+ edition offers advanced capabilities such as content approval workflows, content organization, version management, lifecycle management, feedback capture, PDF exp
1ort, analytics, reporting, and more.",instructions:null,changeLog:[{date:"2023-1-24",description:"first release"},{date:"2023-2-24",description:"Update to 5.5.0"},{date:"2025-5-27",description:"Update to 5.13.0"}],links:[{label:"Website",url:"https://documize.com"},{label:"Documentation",url:"https://docs.documize.com/docs"},{label:"Github",url:"https://github.com/documize/community"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson-Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"documize"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/easypanel-community/docker-documize:5.13"},databaseServiceName:{type:"string",title:"Database Service Name",default:"documize-db"}}},benefits:[{title:"Unified Product Management",description:"Documize Zerabase is a game-changer for product teams, unifying product plans, assets, documents, app analytics, and customer conversations in one place. It serves as your product HQ, centralizing content and information for everyone to see and act upon."},{title:"Efficient Knowledge Management",description:"The Community feature of Documize offers a simple, delightful way to capture and share knowledge management. It helps document your business with ease, handling processes, guidelines, manuals, and everything in-between."},{title:"Offline-First Desktop Software",description:"Documize Zerabase is an offline-first desktop software, ensuring that your product management and knowledge sharing can continue uninterrupted, even without an internet connection."}],features:[{title:"Product Engineering Hub",description:"Zerabase serves as your Product Engineering Hub, bringing together product plans, assets, documents, app analytics, and customer conversations. It helps manage product delivery and insight discovery."},{title:"Knowledge Management",description:"The Community feature is designed for capturing and sharing knowledge management. It handles everything from processes and guidelines to manuals, making it easier to document your business."},{title:"Offline-First Capability",description:"Documize Zerabase is an offline-first desktop software, ensuring that you can continue managing your product and sharing knowledge, even without an internet connection."}],tags:["Documentation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DOCUMIZELOCATION=localhost","DOCUMIZEDBTYPE=postgresql","DOCUMIZESALT=".concat(a),"DOCUMIZEDB=host=$(PROJECT_NAME)_".concat(e.databaseServiceName," port=5432 sslmode=disable user=postgres password=").concat(i," dbname=$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:12",password:i}}),{services:t}}},{slug:"docuseal",meta:{name:"DocuSeal",description:"DocuSeal is an open source platform that provides secure and efficient digital document signing and processing. Create PDF forms to have them filled and signed online on any device with an easy-to-use, mobile-optimized web tool.",instructions:null,changeLog:[{date:"2024-2-15",description:"first release"},{date:"2024-09-30",description:"Version Changed to 1.7.4"},{date:"2025-01-09",description:"Version bumped to v1.8.6"},{date:"2025-05-26",description:"Version bumped to 2.0.1"},{date:"2025-07-15",description:"Version bumped to 2.0.7"},{date:"2025-12-25",description:"Version bumped to 2.2.7"},{date:"2026-02-18",description:"Version bumped to 2.3.4"},{date:"2026-04-29",description:"Version bumped to 2.5.1"}],links:[{label:"Website",url:"https://www.docuseal.co/"},{label:"Documentation",url:"https://www.docuseal.co/docs"},{label:"Github",url:"https://github.com/docusealco/docuseal"}],contributors:[{name:"VinumWeb",url:"https://github.com/vinumweb"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"docuseal"},appServiceImage:{type:"string",title:"App Service Image",default:"docuseal/docuseal:2.5.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"docuseal-db"}}},benefits:[{title:"Fast and slick",description:"Lightning-fast and smooth document signing with a step-by-step form."},{title:"Works everywhere",description:"From mobile to desktop. Document signing made simple on any device."},{title:"Feature-rich",description:"Reminders, API integration, seamless embedding, branding and more."}],features:[{title:"PDF form fields builder (WYSIWYG)",description:null},{title:"11 field types available (Signature, Date, File, Checkbox etc.)",description:null},{title:"Multiple submitters per document",description:null},{title:"Automated emails via SMTP",description:null},{title:"Files storage on disk or AWS S3, Google Storage, Azure Cloud",description:null},{title:"Automatic PDF eSignature",description:null},{title:"PDF signature verification",description:null},{title:"Users management",description:null},{title:"Mobile-optimized",description:null},{title:"API and Webhooks for integrations",description:null},{title:"Easy to deploy in minutes",description:null}],tags:["PDF"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["FORCE_SSL=true","DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/data"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"dokuwiki",meta:{name:"Dokuwiki",description:"DokuWiki is a highly versatile, open-source wiki software that is simple to use and doesn't require a database. It is known for its clean and readable syntax, making it a favorite among administrators due to its ease of maintenance, backup, and integration. DokuWiki is equipped with built-in access controls and authentication connectors, making it particularly useful in an enterprise context. It supports a wide range of use cases beyond a traditional wiki, thanks to the large number of plugins available. DokuWiki is designed for collaboration, allowing quick updates and easy addition of new pages while maintaining a history of every change. It can be used as a corporate knowledge base, private notebook, software manual, project workspace, CMS, intranet, and more. DokuWiki supports customization at all levels of expertise, from easy configuration via the admin interface to developing your own extensions.",instructions:"Go to http://IP-ADDRESS:PORT/install.php to configure your install then restart your container when finished to remove install.php",changeLog:[{date:"2023-3-16",description:"first release"},{date:"2025-01-09",description:"Version bumped to version-2024-02-06b"},{date:"2025-05-26",description:"Version bumped to 2025-05-14"}],links:[{label:"Website",url:"https://dokuwiki.org"},{label:"Documentation",url:"https://www.dokuwiki.org/manual"},{label:"Github",url:"https://github.com/splitbrain/dokuwiki"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dokuwiki"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/dokuwiki:2025-05-14"}}},benefits:[{title:"Easy to Use",description:"DokuWiki is a simple to use wiki software that doesn't require a database. It is loved by users for its clean and readable syntax."},{title:"Versatile and Flexible",description:"DokuWiki is highly versatile and can be used for a broad range of use cases beyond a traditional wiki. It can be used as a corporate knowledge base, private notebook, software manual, project workspace, CMS, and more."},{title:"Easy Maintenance and Integration",description:"The ease of maintenance, backup, and integration makes DokuWiki an administrator's favorite. It also has built-in access controls and authentication connectors."}],features:[{title:"No Database Required",description:"DokuWiki is a wiki software that doesn't require a database, making it simple and straightforward to use."},{title:"Clean and Readable Syntax",description:"DokuWiki is loved by users for its clean and readable syntax, making it easy to create and edit content."},{title:"Built-in Access Controls",description:"DokuWiki has built-in access controls and authentication connectors, making it especially useful in the enterprise context."},{title:"Variety of Extensions",description:"DokuWiki supports a large number of plugins, allowing for a broad range of use cases beyond a traditional wiki."},{title:"Supports Over 50 Languages",description:"DokuWiki supports over 50 languages, making it accessible to users around the world."},{title:"Device Independent",description:"DokuWiki is device independent, meaning it can be used on any device with an internet connection."}],tags:["Wiki"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=Etc/UTC","PUID=1000","PGID=1000"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"dolibarr",meta:{name:"Dolibarr",description:"Dolibarr ERP/CRM is an open-source platform designed for small to medium-sized enterprises (SMEs) to manage business operations seamlessly. It offers a comprehensive suite of tools for managing customers, invoices, orders, products, projects, and more. With its modular architecture and user-friendly interface, Dolibarr provides flexibility and scalability for businesses looking for an efficient and customizable ERP/CRM solution.",instructions:"Default Credentials; username; admin, password; admin",changeLog:[{date:"2026-05-19",description:"Updated to v23"},{date:"2024-12-17",description:"First release"},{date:"2025-05-26",description:"Version bumped to 21"},{date:"2026-02-18",description:"Version bumped to 22"}],links:[{label:"Website",url:"https://www.dolibarr.org/"},{label:"Documentation",url:"https://wiki.dolibarr.org/"},{label:"Compose Docs",url:"https://github.com/Dolibarr/dolibarr/blob/develop/README.md"},{label:"GitHub",url:"https://github.com/Dolibarr/dolibarr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dolibarr"},appServiceImage:{type:"string",title:"App Service Image",default:"dolibarr/dolibarr:23"}}},benefits:[{title:"All-in-One ERP and CRM Solution",description:"Dolibarr integrates ERP and CRM functionalities, providing tools for customer relationship management, inventory, and accounting in a single platform."},{title:"Modular and Scalable",description:"Dolibarr offers a modular structure, allowing businesses to enable only the features they need, ensuring scalability and flexibility."},{title:"Open-Source and Customizable",description:"As an open-source platform, Dolibarr can be fully customized to match specific business workflows and requirements."},{title:"User-Friendly Interface",description:"Enjoy an intuitive and straightforward user experience, ensuring easy navigation and minimal learning curve for teams."},{title:"Secure and Reliable",description:"Benefit from Dolibarr\u2019s security features, such as user access control and permissions, ensuring data integrity and confidentiality."}],features:[{title:"Customer and Contact Management",description:"Manage customer relationships, contacts, and interactions efficiently, enhancing productivity and service delivery."},{title:"Sales and Invoicing",description:"Automate your sales workflow with quotes, orders, and invoice management to streamline billing and payments."},{title:"Inventory and Product Management",description:"Track and manage your inventory, products, and stock levels effortlessly with Dolibarr\u2019s inventory module."},{title:"Project Management",description:"Plan, track, and manage projects, tasks, and milestones, ensuring efficient team collaboration."},{title:"Accounting and Finance",description:"Simplify financial management with built-in tools for managing expenses, income, and reporting."}],tags:["ERP","CRM","Open Source","Invoicing","Inventory Management","Project Management","Small Business","Customizable"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DOLI_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DOLI_DB_USER=root","DOLI_DB_PASSWORD=".concat(a),"DOLI_DB_NAME=$(PROJECT_NAME)","DOLI_URL_ROOT=https://$(PRIMARY_DOMAIN)","PHP_INI_DATE_TIMEZONE=Europe/Paris"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"volume-scripts",mountPath:"/var/www/scripts/docker-init.d"},{type:"volume",name:"before-starting-scripts",mountPath:"/var/www/scripts/before-starting.d"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),rootPassword:a}}),{services:t}}},{slug:"dollardollar",meta:{name:"DollarDollar",description:"DollarDollar (FinPal) is a self-hosted, open-source personal finance management platform. It provides multi-currency expense tracking, flexible bill-splitting, budget management with notifications, investment portfolio tracking, SimpleFin account synchronisation, and OIDC authentication \u2014 all with complete data privacy because your financial data never leaves your own server.",instructions:"After deployment, open your service URL, register your account, and start adding expenses and categories. To disable public sign-ups once set up, set DISABLE_SIGNUPS=True and redeploy.",changeLog:[{date:"2026-06-24",description:"Initial release (v4.4)"}],links:[{label:"GitHub",url:"https://github.com/harung1993/dollardollar"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dollardollar"},appServiceImage:{type:"string",title:"App Service Image",default:"harung43/dollardollar:v4.4"}}},benefits:[{title:"Complete Financial Privacy",description:"All your financial data stays on your own server \u2014 no third-party access, no subscriptions, no tracking."},{title:"Multi-Currency Expense Tracking",description:"Track expenses across multiple currencies with automatic conversion and support for recurring transactions."},{title:"Collaborative Bill Splitting",description:"Split bills with friends using equal, custom-amount, or percentage methods and track outstanding balances easily."}],features:[{title:"Expense Management",description:"Log, categorise, and search expenses with custom category hierarchies and auto-categorisation rules."},{title:"Budget Management",description:"Set budgets per category, receive notifications when approaching limits, and visualise spending trends."},{title:"Investment Portfolio Tracking",description:"Track stock and crypto portfolios with auto-updated pricing via Yahoo Finance integration."},{title:"SimpleFin Integration",description:"Sync bank account balances and transactions automatically via the SimpleFin bridge."},{title:"OIDC Authentication",description:"Integrate with any OIDC-compatible identity provider (Authelia, Keycloak, Authentik) for single sign-on."},{title:"Bill Splitting",description:"Collaborative expense splitting with multiple split methods, settlement tracking, and group expense history."}],tags:["Finance","Expense Tracking","Budgeting","Self-hosted","Personal Finance"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5001}],env:["SQLALCHEMY_DATABASE_URI=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"SECRET_KEY=".concat(i),"FLASK_APP=app.py","DEVELOPMENT_MODE=False","DEBUG=False","LOG_LEVEL=INFO","DISABLE_SIGNUPS=False"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"dolphin",meta:{name:"Dolphin",description:"Dolphin is a powerful GameCube and Wii emulator that allows you to play your favorite Nintendo games on modern hardware. With support for high-definition graphics, save states, and enhanced controls, Dolphin brings classic gaming to life with improved performance and visual quality. This browser-accessible version provides the full Dolphin emulator through a web interface, enabling you to play retro games from anywhere without local installation.",instructions:"Open Dolphin in your browser and complete the first-run wizard. Add your game files under `/config` (for example in `/config/roms`) so they persist across updates/redeploys, then configure that path in Dolphin's game directories. For best performance, run this template on a host with hardware acceleration enabled and use a gamepad when possible.",changeLog:[{date:"2025-10-13",description:"Initial Template Release"},{date:"2026-03-26",description:"Added setup instructions and screenshot asset"},{date:"2026-04-29",description:"Version bumped to 40d9d3af-ls61"}],links:[{label:"Website",url:"https://dolphin-emu.org/"},{label:"Documentation",url:"https://dolphin-emu.org/docs/guides/"},{label:"GitHub",url:"https://github.com/dolphin-emu/dolphin"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dolphin"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/dolphin:40d9d3af-ls61"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC"}}},benefits:[{title:"GameCube & Wii Emulation",description:"Play your favorite Nintendo GameCube and Wii games with high compatibility and accuracy on modern hardware."},{title:"Enhanced Graphics",description:"Enjoy games in high-definition with upscaling, anti-aliasing, and other visual enhancements not available on original hardware."},{title:"Web-Based Access",description:"Access Dolphin emulator through your browser from any device without local installation or complex setup."},{title:"Save States",description:"Quick save and load game states at any point, making it easy to pick up where you left off or retry difficult sections."}],features:[{title:"High Compatibility",description:"Supports a vast library of GameCube and Wii games with excellent compatibility and accuracy."},{title:"Performance Enhancements",description:"Take advantage of modern hardware with multi-core CPU support, speed throttling, and frame skipping options."},{title:"Control Options",description:"Configure keyboard, mouse, or gamepad controls with full customization for optimal gaming experience."},{title:"Graphics Settings",description:"Customize resolution, aspect ratio, shaders, and post-processing effects to enhance visual quality."}],tags:["Gaming","Emulator","GameCube","Wii","Nintendo","Desktop","Browser"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=0","PGID=0","TZ=".concat(e.timezone),"NO_DECOR=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"domain-watchdog",meta:{name:"Domain Watchdog",description:"Domain Watchdog tracks domain name registrations and alerts you before they expire. It pulls RDAP/WHOIS data on a schedule, visualizes ownership and registrar relationships between domains, and can notify you by email or webhook as an expiration date approaches.",instructions:"Open the app URL and register the first account \u2014 this is the only way to create a user, since there is no separate admin bootstrap command. Once you're signed in, go to the Environment tab in Easypanel and set REGISTRATION_ENABLED to false, then redeploy, so the sign-up page can't be used by anyone else who finds this URL.",changeLog:[{date:"2026-07-17",description:"first release"}],links:[{label:"Website",url:"https://domainwatchdog.eu"},{label:"GitHub",url:"https://github.com/maelgangloff/domain-watchdog"},{label:"Documentation",url:"https://domainwatchdog.eu/en/features/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"domain-watchdog"},appServiceImage:{type:"string",title:"App Service Image",default:"maelgangloff/domain-watchdog:v1.4.5"}}},benefits:[{title:"Expiration Alerts Before It's Too Late",description:"Get notified as a domain's expiration date approaches, instead of finding out when it's already gone."},{title:"RDAP-Based, No API Keys",description:"Domain data comes from public RDAP/WHOIS servers, so there's no third-party API key to manage or pay for."},{title:"Ownership Relationship Graphs",description:"Visualize how tracked domains relate through shared registrants, name servers, or registrars."}],features:[{title:"Scheduled RDAP Lookups",description:"A background worker refreshes domain data on a schedule so tracked information stays current without manual checks."},{title:"Bulk Domain Registration",description:"Add many domains to track at once instead of one at a time."},{title:"Email and Webhook Notifications",description:"Configure SMTP or a webhook to receive expiration alerts wherever you already get notifications."}],tags:["Domain Monitoring","WHOIS","Self-Hosted","Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(32),r="redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),s=["APP_ENV=prod","APP_SECRET=".concat(o),"SERVER_NAME=:80","DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?serverVersion=16&charset=utf8"),"MESSENGER_ASYNC_TRANSPORT_DSN=".concat(r,"/messages"),"MESSENGER_RDAP_LOW_TRANSPORT_DSN=".concat(r,"/messages-rdap-low"),"MESSENGER_RDAP_HIGH_TRANSPORT_DSN=".concat(r,"/messages-rdap-high"),"LOCK_DSN=".concat(r),"HTTP_SECURE_COOKIE=true","JWT_PASSPHRASE=".concat(n),"REGISTRATION_ENABLED=true","REGISTRATION_VERIFY_EMAIL=false"];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:s.join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"var",mountPath:"/app/var"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),source:{type:"image",image:e.appServiceImage},env:s.join("\n"),deploy:{command:"sleep 30 && exec php /app/bin/console messenger:consume --all --time-limit=3600"}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,image:"postgres:16.15-alpine"}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"domainlocker",meta:{name:"Domain Locker",description:"Domain Locker is a self-hosted domain portfolio management and monitoring application designed to help you keep track of all your registered domains. It provides centralized management for domain registrations, expiration dates, renewal reminders, DNS records, SSL certificates, and hosting information. Domain Locker features automated WHOIS lookups, expiration notifications via email, domain health checks, and comprehensive reporting. With scheduled updates and monitoring, you'll never miss a domain renewal deadline again. The application includes automatic daily checks for domain updates and sends timely expiration reminders. Perfect for domain investors, web developers, agencies, and anyone managing multiple domain portfolios who needs a reliable system to track and monitor their digital assets.",instructions:null,changeLog:[{date:"2025-11-17",description:"Template Release"},{date:"2026-04-29",description:"Version bumped to 0.1.4"}],links:[{label:"Github",url:"https://github.com/Lissy93/domain-locker"},{label:"Website",url:"https://domain-locker.com"},{label:"Documentation",url:"https://domain-locker.com/about"}],contributors:[{name:"Alicia Sykes",url:"https://github.com/Alicia-Sykes"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"domainlocker"},appServiceImage:{type:"string",title:"App Service Image",default:"lissy93/domain-locker:0.1.4"},ntfyUrl:{type:"string",title:"Ntfy Server URL (optional)",description:"URL for ntfy.sh notifications (e.g., https://ntfy.sh)",default:""},ntfyTopic:{type:"string",title:"Ntfy Topic (optional)",description:"Topic name for notifications",default:""}}},benefits:[{title:"Never Miss Renewals",description:"Automated expiration monitoring and email reminders ensure you never lose a valuable domain due to missed renewal deadlines."},{title:"Centralized Management",description:"Manage all your domains from one dashboard. Track registrars, nameservers, SSL certificates, and DNS records in a single location."},{title:"Automated Monitoring",description:"Daily automated checks update domain information and health status. Background jobs ensure your data stays current without manual intervention."}],features:[{title:"Domain Portfolio Management",description:"Track all your registered domains with detailed information including registrar, registration date, expiration date, and renewal status."},{title:"Expiration Reminders",description:"Automated email notifications alert you before domains expire. Configurable reminder schedules ensure adequate time for renewals."},{title:"WHOIS Integration",description:"Automatic WHOIS lookups retrieve and update domain information including registrar details, nameservers, and registration dates."},{title:"Domain Health Monitoring",description:"Monitor domain health status, DNS resolution, SSL certificate validity, and overall availability with automated daily checks."},{title:"Scheduled Updates",description:"Cron-based scheduler runs daily domain updates at 3 AM and expiration reminder checks at 4 AM automatically."},{title:"Multi-Domain Support",description:"Manage unlimited domains across multiple registrars with support for different TLDs and domain extensions."}],tags:["Domain Management","Domain Monitoring","WHOIS","DNS","Domain Portfolio"],logo:"logo.png",screenshots:["screenshot.png","screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DL_ENV_TYPE=selfHosted","DL_PG_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DL_PG_PORT=5432","DL_PG_USER=postgres","DL_PG_PASSWORD=".concat(a),"DL_PG_NAME=$(PROJECT_NAME)"].concat(_e(e.ntfyUrl?["NOTIFY_WEBHOOK_BASE=".concat(e.ntfyUrl)]:[]),_e(e.ntfyTopic?["NOTIFY_WEBHOOK_TOPIC=".concat(e.ntfyTopic)]:[])).join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-updater"),source:{type:"image",image:"alpine:3.20"},deploy:{command:"/bin/sh -c \"apk add --no-cache curl && echo '0 3 * * * /usr/bin/curl -s -X POST http://$(PROJECT_NAME)_"+e.appServiceName+":3000/api/domain-updater' > /etc/crontabs/root && echo '0 4 * * * /usr/bin/curl -s -X POST http://$(PROJECT_NAME)_"+e.appServiceName+":3000/api/expiration-reminders' >> /etc/crontabs/root && crond -f -L /dev/stdout\""}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"domainmod",meta:{name:"DomainMod",description:"DomainMOD is a comprehensive open-source application designed to help you manage your domains and other internet assets in one central location. With DomainMOD, you can keep track of your domains, SSL certificates, registrar and SSL accounts, web hosting, DNS servers, IP addresses, and more. The application also offers a Bulk Domain Updater, allowing you to modify multiple domains at once, saving you time and effort. DomainMOD also includes a Data Warehouse feature, which lets you import data from your WHM web servers for analysis and reporting. The app is mobile-friendly, ensuring you can access your data anytime, anywhere. Furthermore, DomainMOD respects your privacy, ensuring only you have access to your data.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2025-01-09",description:"Version bumped to 4.23"}],links:[{label:"Website",url:"https://domainmod.org/"},{label:"Documentation",url:"https://domainmod.org/docs/"},{label:"Github",url:"https://github.com/domainmod/domainmod/"}],contributors:[{name:"Mark Topper",url:"https://github.com/marktopper"},{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"domainmod"},appServiceImage:{type:"string",title:"App Service Image",default:"domainmod/domainmod:4.23"},databaseServiceName:{type:"string",title:"Database Service Name",default:"domainmod-db"},timezone:{type:"string",title:"Timezone",default:"Europe/Copenhagen"}}},benefits:[{title:"Self-Hosted & Private",description:"DomainMOD is a self-hosted application, ensuring that only you have access to your data. In a time where privacy is a hot topic, DomainMOD gives you the control and security you need over your domain information."},{title:"Central Management",description:"DomainMOD allows you to manage not only your domains but also your SSL certificates, registrar and SSL accounts, web hosting, DNS servers, IP addresses, and more, all in one central location."},{title:"Multilingual Support",description:"DomainMOD supports multiple languages including Dutch, English (Canada), English (United States), French, German, Italian, Polish, Portuguese, Russian, and Spanish, making it accessible to a global audience."},{title:"User-Based Currencies",description:"Every user can set their currency in DomainMOD, and it will be used throughout the entire system. This means every setting, webpage, report, and export will automatically display values in the user's chosen currency."},{title:"Mobile-Friendly",description:"DomainMOD was designed with mobile in mind, ensuring you can access and manage your data even while on the go."}],features:[{title:"Registrar Importing",description:"DomainMOD allows you to quickly import your domains using your registrar's API. Simply add the API credentials, choose the account, and let DomainMOD do the rest."},{title:"Bulk Domain Updater",description:"With the Bulk Updater feature, you can modify as many domains as you want with just a few clicks, saving you time and effort."},{title:"Custom Data Fields",description:"DomainMOD lets you track an unlimited amount of information for your domains & SSL certificates using Custom Fields. Plus, you can export this data for further analysis."},{title:"Reporting",description:"DomainMOD contains a Reporting section that allows you to run various reports against your data, helping you make sense of it and gain valuable insights."},{title:"Segment Filters",description:"Segments in DomainMOD allow you to save lists of domains that you can use to filter against your main domains. You can see how many match, how many don't, and easily view the results."},{title:"Task Scheduler",description:"The Task Scheduler in DomainMOD allows you to run system tasks at set times. You can run currency conversions, send emails about upcoming expirations, check for new versions, and more!"},{title:"Data Warehouse",description:"The Data Warehouse in DomainMOD lets you import data from your WHM web servers, which you can then view, export, and run reports against to gain insight into your servers."}],tags:["Domain Management","Web Hosting","Data Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["USER_UID=1000","USER_GID=1000","TZ=".concat(e.timezone),"ROOT_URL=https://$(PRIMARY_DOMAIN)","DOMAINMOD_WEB_ROOT=","DOMAINMOD_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DOMAINMOD_DATABASE=$(PROJECT_NAME)","DOMAINMOD_USER=mysql","DOMAINMOD_PASSWORD=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"application",mountPath:"/var/www/html"}],ports:[]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a,image:"mysql:5.7"}}),{services:t}}},{slug:"doppelganger",meta:{name:"Doppelganger",description:"Doppelganger (Figranium) is a self-hosted browser automation and scraping platform built on Playwright. It offers a visual task editor, structured JSON task format, and execution modes for simple scraping to complex, human-like browser interactions. Includes noVNC for remote browser viewing.",instructions:"Open your app domain to access the Doppelganger web interface and create your first automation task.\nData persistence is enabled in the mounted `/app/data` volume and update to a newer image tag when available.\n",changeLog:[{date:"2026-03-10",description:"First Release"},{date:"2026-04-29",description:"Version bumped to v0.12.2"}],links:[{label:"Website",url:"https://doppelgangerdev.com"},{label:"Documentation",url:"https://figranium.dev/docs/overview"},{label:"GitHub",url:"https://github.com/mnemosynestack/doppelganger"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"doppelganger"},appServiceImage:{type:"string",title:"App Service Image",default:"mnemosyneai/doppelganger:v0.12.2"}}},benefits:[{title:"Self-Hosted Automation",description:"Run browser automation and scraping entirely on your own infrastructure"},{title:"Visual Task Editor",description:"Build and manage tasks without writing code"},{title:"Playwright-Powered",description:"Reliable, modern browser automation with human-like interactions"},{title:"Remote Viewing",description:"noVNC support to watch and debug browser sessions"}],features:[{title:"Visual Editor",description:"Create and edit automation tasks in a structured UI"},{title:"JSON Task Format",description:"Portable, version-controlled task definitions"},{title:"noVNC",description:"Browser-based VNC client for remote session viewing"},{title:"Advanced Modes",description:"From simple scraping to complex multi-step flows"}],tags:["Automation","Scraping","Playwright","Browser","Open Source","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:"NODE_ENV=production",domains:[{host:"$(EASYPANEL_DOMAIN)",port:11345},{host:"vnc-$(EASYPANEL_DOMAIN)",port:54311}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"doublecommander",meta:{name:"Double Commander",description:"A cross-platform open-source file manager with two panels side by side. It is inspired by Total Commander and features a modern interface with extensive file management capabilities.",instructions:null,changeLog:[{date:"2025-05-07",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to version-9bcf3fdc"}],links:[{label:"GitHub",url:"https://github.com/doublecmd/doublecmd"},{label:"Docker Hub",url:"https://hub.docker.com/r/linuxserver/doublecommander"},{label:"Website",url:"https://doublecmd.sourceforge.io"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"doublecommander"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/doublecommander:version-9bcf3fdc"}}},benefits:[{title:"Dual Panel",description:"Two-panel file management interface"},{title:"Cross-Platform",description:"Works on multiple operating systems"},{title:"Feature-Rich",description:"Extensive file management capabilities"},{title:"Open Source",description:"Free and open-source file manager"}],features:[{title:"File Management",description:"Advanced file operations and management"},{title:"FTP Support",description:"Built-in FTP client"},{title:"Archive Support",description:"Handle various archive formats"},{title:"Search",description:"Powerful file search capabilities"},{title:"Customization",description:"Highly customizable interface"}],tags:["File Manager","FTP Client","Self-hosted","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),mounts:[{type:"volume",name:"doublecommander-config",mountPath:"/config"},{type:"volume",name:"doublecommander-data",mountPath:"/data"}]}}),{services:t}}},{slug:"dozzle",meta:{name:"Dozzle",description:"Dozzle is a lightweight, web-based Docker log viewer designed for real-time monitoring and easy troubleshooting. It allows you to view logs of other Docker containers in real-time, streaming new log entries to the web interface without the need for page refreshes. Despite its capabilities, Dozzle is a small application that consumes very little memory and CPU, ensuring it doesn't cause performance issues when run alongside other containers. It also supports connecting to multiple remote hosts, providing a simple drop-down menu to switch between different hosts. Dozzle doesn't store any log files and is solely for live monitoring of your container logs. It also features an intelligent fuzzy search for container names, regex log search, split screen for viewing multiple logs, and live stats with memory and CPU usage. It also provides authentication with a username and password for added security.",instructions:null,changeLog:[{date:"2023-07-11",description:"First Release"},{date:"2024-10-04",description:"Version changed from latest to v8.5.5"},{date:"2025-01-09",description:"Version bumped to v8.10.1"},{date:"2025-05-26",description:"Version bumped to v8.12"},{date:"2025-12-25",description:"Version bumped to v8.14.12"},{date:"2026-02-18",description:"Version bumped to v10.0.2"},{date:"2026-04-29",description:"Version bumped to v10.5"}],links:[{label:"Website",url:"https://dozzle.dev"},{label:"Github",url:"https://github.com/amir20/dozzle"},{label:"Docker",url:"https://hub.docker.com/r/amir20/dozzle"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dozzleLevel","dozzleNoAnalytics"],properties:{dozzleUsername:{type:"string",title:"Username"},dozzlePassword:{type:"string",title:"Password"},dozzleLevel:{type:"string",title:"Log Level",default:"info",oneOf:[{enum:["info"],title:"Info"},{enum:["debug"],title:"Debug"}]},dozzleNoAnalytics:{type:"boolean",title:"No Analytics",default:!1}
1,appServiceName:{type:"string",title:"App Service Name",default:"dozzle"},appServiceImage:{type:"string",title:"App Service Image",default:"amir20/dozzle:v10.5"}}},benefits:[{title:"Real-time Monitoring",description:"Dozzle allows you to view logs of other Docker containers in real-time. As new log entries are generated, they are streamed to the web interface without needing to refresh the page."},{title:"Lightweight Application",description:"Dozzle is a lightweight application written in Go, consuming very little memory and CPU. It can be run alongside other containers without causing performance issues."},{title:"Multi-host Support",description:"Dozzle UI supports connecting to multiple remote hosts with a simple drop-down to choose between different hosts."}],features:[{title:"Intelligent Fuzzy Search",description:"Dozzle features an intelligent fuzzy search for container names, making it easier to find the logs you need."},{title:"Regex Log Search",description:"You can search logs using regex, providing a powerful tool for pinpointing specific log entries."},{title:"Live Stats",description:"Dozzle provides live stats with memory and CPU usage, giving you real-time insights into your Docker containers."},{title:"Authentication",description:"Dozzle supports authentication with a username and password, ensuring that only authorized users can access your Docker logs."}],tags:["Monitoring","Logging"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=["DOZZLE_HOSTNAME=$(PRIMARY_DOMAIN)","DOZZLE_LEVEL=".concat(e.dozzleLevel),"DOZZLE_NO_ANALYTICS=".concat(e.dozzleNoAnalytics)];return e.dozzlePassword&&a.push("DOZZLE_USERNAME=".concat(e.dozzleUsername||"admin"),"DOZZLE_PASSWORD=".concat(e.dozzlePassword)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:a.join("\n"),mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"dpaste",meta:{name:"dPaste",description:"dPaste is a simple and lightweight pastebin service that allows you to share text snippets, code, and other content quickly. It provides a clean interface for creating, sharing, and managing pastes with support for syntax highlighting and expiration times.",instructions:"After installation, access the web interface through the provided domain to start creating and sharing pastes.",changeLog:[{date:"2025-04-10",description:"First Release"},{date:"2026-04-29",description:"Version bumped to 64068f7a"}],links:[{label:"Github",url:"https://github.com/DarrenOfficial/dpaste"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dpaste"},appServiceImage:{type:"string",title:"App Service Image",default:"darrenofficial/dpaste:64068f7a"}}},benefits:[{title:"Simple Sharing",description:"Quickly share code snippets and text with others."},{title:"Self-Hosted",description:"Host your own pastebin service for complete control."},{title:"SQLite Storage",description:"Lightweight database storage for your pastes."},{title:"Clean Interface",description:"User-friendly interface for creating and viewing pastes."},{title:"Easy Deployment",description:"Simple setup with Docker and persistent storage."}],features:[{title:"Text Sharing",description:"Share text snippets and code easily."},{title:"Syntax Highlighting",description:"Support for code syntax highlighting."},{title:"Persistent Storage",description:"SQLite database for reliable paste storage."},{title:"Web Interface",description:"Clean web interface for managing pastes."},{title:"Docker Support",description:"Easy deployment with Docker container."}],tags:["Pastebin","Code Sharing","Text Sharing","Self-Hosted","Development Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:"darrenofficial/dpaste:latest"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["DATABASE_URL=sqlite:////db/dpaste.sqlite","PORT=8000"].join("\n"),mounts:[{type:"volume",name:"db",mountPath:"/db"}]}}),{services:t}}},{slug:"dragonfly",meta:{name:"DragonflyDB",description:"DragonflyDB is a modern, high-performance, Redis-compatible in-memory datastore that's designed for cloud workloads. It offers superior performance with up to 25x higher throughput than Redis while using fewer resources. DragonflyDB is fully compatible with Redis APIs and commands, making it a drop-in replacement that doesn't require code changes. It features automatic snapshots, optional persistence to disk, built-in replication, and efficient memory management. Perfect for caching, session storage, real-time analytics, and any use case that requires blazing-fast data access with lower operational costs.",instructions:"After deployment, you can connect to DragonflyDB using any Redis client on port 6379. Make sure to use the password you configured for secure access. Data is automatically persisted to the mounted volume based on the snapshot schedule.",changeLog:[{date:"2026-05-19",description:"Updated to v1.38.1"},{date:"2025-11-04",description:"Template Release"}],links:[{label:"Website",url:"https://www.dragonflydb.io/"},{label:"Documentation",url:"https://www.dragonflydb.io/docs"},{label:"Docker Hub",url:"https://hub.docker.com/r/dragonflydb/dragonfly"},{label:"Github",url:"https://github.com/dragonflydb/dragonfly"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dragonfly"},appServiceImage:{type:"string",title:"App Service Image",default:"docker.dragonflydb.io/dragonflydb/dragonfly:v1.38.1"},password:{type:"string",title:"Password",default:""},snapshotCron:{type:"string",title:"Snapshot Cron Schedule",default:"*/5 * * * *"},maxMemory:{type:"string",title:"Max Memory (e.g., 8gb, leave empty for no limit)",default:""}}},benefits:[{title:"Superior Performance",description:"Experience up to 25x higher throughput compared to Redis with vertical scalability that maximizes multi-core CPU utilization."},{title:"Redis Compatible",description:"Drop-in replacement for Redis with full API compatibility. No code changes required - just point your existing Redis clients to DragonflyDB."},{title:"Resource Efficient",description:"Use significantly less memory and CPU resources compared to Redis while handling more operations, reducing infrastructure costs."}],features:[{title:"Automatic Snapshots",description:"Configure automatic snapshot intervals to persist data to disk, ensuring data durability without manual intervention."},{title:"Multi-threaded Architecture",description:"Efficiently utilizes all available CPU cores with a shared-nothing architecture that eliminates the need for Redis clustering for vertical scaling."},{title:"Built-in Persistence",description:"Supports RDB-style snapshots with customizable scheduling and automatic backup rotation for reliable data persistence."},{title:"Memory Management",description:"Advanced memory management with optional memory limits and efficient eviction policies to optimize resource usage."}],tags:["Database","Cache","In-Memory","Redis","Performance"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=e.password||v(),i=["DFLY_requirepass=".concat(a),"DFLY_dir=/data","DFLY_dbfilename=dump-{timestamp}","DFLY_snapshot_cron=".concat(e.snapshotCron||"*/5 * * * *"),"HEALTHCHECK_PORT=6379"];return e.maxMemory&&i.push("DFLY_maxmemory=".concat(e.maxMemory)),t.push({type:"app",data:{serviceName:e.appServiceName,env:i.join("\n"),source:{type:"image",image:e.appServiceImage},ports:[{published:6379,target:6379,protocol:"tcp"}],mounts:[{type:"volume",name:"dragonfly-data",mountPath:"/data"}]}}),{services:t}}},{slug:"drawdb",meta:{name:"DrawDB",description:"DrawDB is a free, simple, and intuitive online database schema editor and SQL generator.  It provides a robust and user-friendly database entity relationship (ER) editor that runs  directly in your browser. With DrawDB, you can build database diagrams with a few clicks,  export SQL scripts, customize your editor, and manage database schemas without creating an  account. The tool supports multiple database types including MySQL, PostgreSQL, SQLite, SQL Server, and more.",instructions:null,changeLog:[{date:"2025-06-26",description:"Initial Template Release"},{date:"2026-04-29",description:"Version bumped to v1.6.0"}],links:[{label:"GitHub",url:"https://github.com/drawdb-io/drawdb"},{label:"Documentation",url:"https://github.com/drawdb-io/drawdb#readme"},{label:"Demo",url:"https://drawdb.app"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"drawdb"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/drawdb-io/drawdb:v1.6.0",description:"DrawDB Docker image"}}},benefits:[{title:"Browser-Based Editor",description:"No installation required - access a full-featured database schema editor directly in your web browser with no account creation needed."},{title:"Multi-Database Support",description:"Design schemas for multiple database types including MySQL, PostgreSQL, SQLite, SQL Server, MariaDB, and Oracle with database-specific features."},{title:"SQL Export Capabilities",description:"Generate and export SQL scripts for your database schemas, making it easy to implement your designs in actual database systems."},{title:"Intuitive Visual Design",description:"Create complex database relationships and schemas using an intuitive drag-and-drop interface with visual entity relationship diagrams."}],features:[{title:"Entity Relationship Diagrams",description:"Create comprehensive ER diagrams with tables, columns, relationships, and constraints using a visual editor with drag-and-drop functionality."},{title:"SQL Script Generation",description:"Automatically generate SQL DDL scripts from your visual diagrams, supporting  multiple database syntaxes and export formats."},{title:"Schema Validation",description:"Built-in validation ensures your database schema is logically consistent with proper relationships and constraints."},{title:"Customizable Interface",description:"Customize the editor appearance, themes, and layout to match your preferences  and workflow requirements."},{title:"Import/Export Options",description:"Import existing database schemas and export your designs in various formats  including SQL, JSON, and image files."},{title:"No Account Required",description:"Start designing database schemas immediately without registration, account creation, or personal information requirements."}],tags:["Database","Schema Design","ER Diagram","SQL Generator","Database Design","Entity Relationship","MySQL","PostgreSQL","SQLite","Visual Editor"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"drawio",meta:{name:"Draw.io",description:"Draw.io is a versatile, self-hosted diagramming tool designed for individuals and teams. It provides an intuitive, drag-and-drop interface for creating flowcharts, network diagrams, UML diagrams, and more. Draw.io supports integrations with various cloud storage solutions such as Google Drive, OneDrive, and local storage for easy file management. With a focus on simplicity and functionality, Draw.io enables seamless collaboration and offline access, ensuring that users can work efficiently. Its rich library of shapes, templates, and customization options caters to a wide range of diagramming needs.",instructions:null,changeLog:[{date:"2024-01-07",description:"First Release"},{date:"2025-07-15",description:"Version bumped to 28.0.4"},{date:"2025-12-25",description:"Version bumped to 29.2.9"},{date:"2026-02-18",description:"Version bumped to 29.3.6"},{date:"2026-04-29",description:"Version bumped to 29.7.9"}],links:[{label:"Website",url:"https://drawio-app.com/"},{label:"Documentation",url:"https://github.com/jgraph/drawio/wiki"},{label:"Github",url:"https://github.com/jgraph/drawio"},{label:"Docker Guide",url:"https://www.drawio.com/blog/diagrams-docker-app"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"drawio"},appServiceImage:{type:"string",title:"App Service Image",default:"jgraph/drawio:29.7.9"}}},benefits:[{title:"Intuitive Diagram Creation",description:"Draw.io offers a user-friendly interface with drag-and-drop functionality for easy and efficient diagram creation, suitable for all skill levels."},{title:"Cross-Platform Compatibility",description:"Draw.io ensures a consistent experience across web and desktop applications, allowing seamless access and collaboration from any device."},{title:"Cloud and Local Storage Integration",description:"Draw.io supports syncing and saving diagrams to popular cloud services like Google Drive and OneDrive or directly to local storage for flexibility."}],features:[{title:"Rich Shape Library",description:"Draw.io provides a comprehensive library of shapes, icons, and templates to help users create professional-quality diagrams effortlessly."},{title:"Offline Access",description:"Draw.io allows users to create and edit diagrams without an internet connection, ensuring uninterrupted productivity."},{title:"Collaboration Features",description:"Draw.io supports real-time collaboration, enabling teams to work on diagrams together and streamline their workflows."},{title:"Customizable Interface",description:"Draw.io offers various customization options, including themes and layout preferences, to tailor the user experience to individual needs."}],tags:["Diagramming","Collaboration","Productivity"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUBLIC_DNS=$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"drone-runner",meta:{name:"Drone Runner",description:"Drone.io is a self-service Continuous Integration platform designed for busy development teams. It automates software build and testing, making it easier for teams to manage their development process. The platform allows for configuration as a code, with pipelines configured through a simple, easy-to-read file committed to your git repository. Each pipeline step is executed inside an isolated Docker container that is automatically downloaded at runtime. Drone.io integrates seamlessly with multiple source code management systems, including GitHub, GitHubEnterprise, Bitbucket, and GitLab. It supports multiple operating systems and architectures, and works with any language, database, or service that runs inside a Docker container. The platform also allows for advanced customization, including custom access controls, approval workflows, secret management, and yaml syntax extensions. Drone.io ensures that every build runs in an isolated Docker container, providing full control and preventing conflicting builds on shared servers.",instructions:null,changeLog:[{date:"2022-08-04",description:"first release"},{date:"2026-02-18",description:"Version bumped to 1.8.5"}],links:[{label:"Website",url:"https://drone.io/"},{label:"Documentation",url:"https://github.com/harness/drone#setup-documentation"},{label:"Github",url:"https://github.com/harness/drone"}],contributors:[{name:"Ivan Ryan",url:"https://github.com/ivanonpc-22"}],schema:{type:"object",required:["appServiceName","appServiceImage","host","secret","runners"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"drone-runner"},appServiceImage:{type:"string",title:"App Service Image",default:"drone/drone-runner-docker:1.8.5"},host:{type:"string",title:"Drone Server Hostname",default:"drone.company.com"},secret:{type:"string",title:"RPC Secret",default:"Secret"},rpcProtocol:{type:"string",title:"RPC Protocol",default:"https",oneOf:[{enum:["https"],title:"https"},{enum:["http"],title:"http"}]},runners:{type:"string",title:"Runner Capacity",default:"2"}}},benefits:[{title:"Automated Software Build and Testing",description:"Drone is a self-service Continuous Integration platform designed to automate software build and testing for busy development teams. This allows for more efficient and error-free software development."},{title:"Configuration as a Code",description:"Drone allows pipelines to be configured with a simple, easy-to-read file that you commit to your git repository. This makes it easier to manage and track changes in your pipeline configuration."},{title:"Isolated Builds",description:"Each pipeline step in Drone is executed inside an isolated Docker container that is automatically downloaded at runtime. This ensures that there are no conflicting builds on shared servers and gives you full control over your build environment."},{title:"Effortless Scaling",description:"Drone is designed to scale automatically, making it a great choice for both small and large projects. It installs from a single binary, simplifying the setup process."}],features:[{title:"Integration with Any Source Code Manager",description:"Drone integrates seamlessly with multiple source code management systems, including GitHub, GitHubEnterprise, Bitbucket, and GitLab. This makes it a versatile tool for any development team."},{title:"Support for Any Platform and Language",description:"Drone natively supports multiple operating systems and architectures, including Linux x64, ARM, ARM64 and Windows x64. It also works with any language, database or service that runs inside a Docker container."},{title:"Plugin Creation and Sharing",description:"Drone allows you to create and share plugins, which are containers that drop pre-configured steps into your pipeline. You can choose from hundreds of existing plugins, or create your own to suit your specific needs."},{title:"Advanced Customization",description:"Drone makes advanced customization easy. You can implement custom access controls, approval workflows, secret management, yaml syntax extensions and more to tailor the platform to your project's needs."}],tags:["Developer Tools","Continuous Integration","Automation"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DRONE_RPC_HOST=".concat(e.host),"DRONE_RPC_PROTO=".concat(e.rpcProtocol),"DRONE_RUNNER_CAPACITY=".concat(e.runners),"DRONE_RPC_SECRET=".concat(e.secret)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"drone",meta:{name:"Drone",description:"Drone.io is a self-service Continuous Integration platform designed for busy development teams. It automates software build and testing, making it an essential tool for efficient and effective software development. Drone.io is configured with a simple, easy-to-read file that you commit to your git repository, and each pipeline step is executed inside an isolated Docker container that is automatically downloaded at runtime. The platform integrates seamlessly with multiple source code management systems, including GitHub, GitHubEnterprise, Bitbucket, and GitLab, and supports multiple operating systems and architectures. Drone.io works with any language, database or service that runs inside a Docker container, and allows you to create and share plugins for pre-configured steps in your pipeline. Advanced customization is made easy with Drone.io, with features for implementing custom access controls, approval workflows, secret management, yaml syntax extensions and more. The platform also ensures isolated builds to avoid conflicts on shared servers, and offers effortless scaling.",instructions:null,changeLog:[{date:"2022-08-04",description:"first release"},{date:"2025-01-09",description:"Version bumped to 2.25.0"},{date:"2025-05-26",description:"Version bumped to 2.26.0"},{date:"2026-02-18",description:"Version bumped to 2.27.0"}],links:[{label:"Website",url:"https://drone.io/"},{label:"Documentation",url:"https://github.com/harness/drone#setup-documentation"},{label:"Github",url:"https://github.com/harness/drone"}],contributors:[{name:"Ivan Ryan",url:"https://github.com/ivanonpc-22"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","runnerServiceName","runnerServiceImage","clientID","clientSecret","rpcHost","rpcProtocol"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"drone"},appServiceImage:{type:"string",title:"App Service Image",default:"drone/drone:2.27.0"},runnerServiceName:{type:"string",title:"Runner Service Name",default:"drone-runner"},runnerServiceImage:{type:"string",title:"Runner Service Image",default:"drone/drone-runner-docker:1.8.4"},clientID:{type:"string",title:"GitHub OAuth Client ID"},clientSecret:{type:"string",title:"GitHub OAuth Client Secret",default:"secret"},rpcHost:{type:"string",title:"RPC Host"},rpcProtocol:{type:"string",title:"RPC Protocol",default:"https",oneOf:[{enum:["https"],title:"https"},{enum:["http"],title:"http"}]},installRunner:{type:"boolean",title:"Install Runner Service",default:!1},runnerCapacity:{type:"number",title:"Capacity for runner if enabled",default:2}}},benefits:[{title:"Automated Software Build and Testing",description:"Drone is a self-service Continuous Integration platform designed for busy development teams. It automates the process of software build and testing, saving time and reducing errors."},{title:"Seamless Integration",description:"Drone integrates seamlessly with multiple source code management systems, including GitHub, GitHubEnterprise, Bitbucket, and GitLab, making it a versatile tool for any development team."},{title:"Support for Multiple Platforms",description:"Drone natively supports multiple operating systems and architectures, including Linux x64, ARM, ARM64 and Windows x64, making it a flexible solution for diverse development environments."},{title:"Effortless Scaling",description:"Drone installs from a single binary and scales automatically, making it an ideal solution for both small and large projects."}],features:[{title:"Configuration as a Code",description:"Pipelines in Drone are configured with a simple, easy-to-read file that you commit to your git repository. Each Pipeline step is executed inside an isolated Docker container that is automatically downloaded at runtime."},{title:"Support for Any Language",description:"Drone works with any language, database or service that runs inside a Docker container. You can choose from thousands of public Docker images or provide your own."},{title:"Plugin Creation and Sharing",description:"Drone uses containers to drop pre-configured steps into your pipeline. You can choose from hundreds of existing plugins, or create your own."},{title:"Advanced Customization",description:"Drone makes advanced customization easy. You can implement custom access controls, approval workflows, secret management, yaml syntax extensions and more."},{title:"Isolated Builds",description:"With Drone, you don't have to worry about conflicting builds on shared servers. Every build runs in an isolated Docker container, giving you full control."}],tags:["Developer Tools","Continuous Integration","Automation"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(16);return e.installRunner&&t.push({type:"app",data:{serviceName:e.runnerServiceName,env:["DRONE_RPC_HOST=".concat(e.rpcHost),"DRONE_RPC_PROTO=".concat(e.rpcProtocol),"DRONE_RUNNER_CAPACITY=".concat(e.runnerCapacity),"DRONE_RPC_SECRET=".concat(a)].join("\n"),source:{type:"image",image:e.runnerServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["DRONE_GITHUB_CLIENT_ID=".concat(e.clientID),"DRONE_GITHUB_CLIENT_SECRET=".concat(e.clientSecret),"DRONE_SERVER_HOST=".concat(e.rpcHost),"DRONE_SERVER_PROTO=".concat(e.rpcProtocol),"DRONE_RPC_SECRET=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"droppy",meta:{name:"Droppy",description:"Droppy is a self-hosted file storage and sharing server with a modern, web-based interface. It allows you to securely upload, manage, and share files and folders from any device with a browser. Droppy supports drag-and-drop uploads, real-time updates, and previews for a variety of file types including images, videos, and documents. With its user-friendly interface and robust feature set, Droppy is ideal for personal or team file management. It is lightweight, written in Node.js, and supports customization through environment variables and themes.",instructions:null,changeLog:[{date:"2025-01-22",description:"First Release"}],links:[{label:"Documentation",url:"https://github.com/silverwind/droppy/wiki"},{label:"Github",url:"https://github.com/silverwind/droppy"},{label:"Website",url:"https://www.droppyjs.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"droppy"},appServiceImage:{type:"string",title:"App Service Image",default:"silverwind/droppy:12.2.0"}}},benefits:[{title:"Secure File Storage",description:"Droppy offers a self-hosted platform for securely storing files, ensuring your data remains private and under your control."},{title:"Real-Time File Management",description:"Droppy provides real-time updates to file operations, allowing for an interactive and seamless file management experience."},{title:"Cross-Platform Accessibility",description:"Access and manage your files from any device with a web browser, making it convenient and flexible for users on various platforms."}],features:[{title:"Drag-and-Drop Uploads",description:"Upload files and folders with a simple drag-and-drop interface, making it easy to use even for non-technical users."},{title:"File Previews",description:"Preview a wide range of file types directly in the browser, including images, videos, and documents."},{title:"Customizable Interface",description:"Personalize Droppy with themes and configuration options to match your preferences or branding needs."},{title:"Real-Time Collaboration",description:"Collaborate with others by sharing links or folders in real time, making it an excellent tool for team file management."},{title:"Lightweight and Efficient",description:"Droppy is written in Node.js, making it lightweight and efficient, suitable for deployment on low-resource servers."}],tags:["File Sharing","Storage","Productivity","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8989}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"files",mountPath:"/files"}]}}),{services:t}}},{slug:"drupal",meta:{name:"Drupal",description:"Drupal is a powerful open-source content management system (CMS) designed to help you create and manage complex, dynamic websites with ease. Drupal is highly customizable, offering robust tools for managing content, users, permissions, and workflows. It supports custom themes, modules, and integrations, enabling you to create tailored experiences for any type of website, from blogs and portfolios to eCommerce platforms and enterprise-level solutions. Drupal prioritizes flexibility, scalability, and security, making it a preferred choice for developers, businesses, and organizations worldwide.",instructions:null,changeLog:[{date:"2024-10-12",description:"First release"},{date:"2025-01-09",description:"Version bumped to 10.4-apache"},{date:"2025-07-15",description:"Version bumped to 11.2.2-apache"},{date:"2025-12-25",description:"Version bumped to 11.2.10-apache"},{date:"2026-04-29",description:"Version bumped to 11.2.11-apache"}],links:[{label:"Website",url:"https://www.drupal.org/"},{label:"Documentation",url:"https://www.drupal.org/docs"},{label:"Github",url:"https://github.com/drupal/drupal"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"drupal"},appServiceImage:{type:"string",title:"App Service Image",default:"drupal:11.2.11-apache"}}},benefits:[{title:"Open-Source & Secure",description:"Drupal is an open-source CMS with an active community that ensures robust security updates, making it ideal for enterprise-grade applications."},{title:"Highly Customizable",description:"From themes and layouts to modules and APIs, Drupal allows extensive customization to suit any website needs."},{title:"Scalable & Flexible",description:"Drupal is built to scale for websites of any size, handling high traffic and content-heavy platforms seamlessly."},{title:"Multilingual Support",description:"Out-of-the-box support for multiple languages enables you to create localized content and reach a global audience."},{title:"Advanced Content Management",description:"Drupal provides powerful content authoring tools, workflows, and permissions to streamline content management for teams."}],features:[{title:"Modular Architecture",description:"Drupal's modular design enables developers to extend functionality using community-contributed or custom-built modules."},{title:"Content Workflows",description:"Drupal supports advanced content workflows with features like drafts, revisions, and role-based publishing permissions."},{title:"API-First Approach",description:"Drupal supports headless CMS architectures, enabling you to build decoupled applications using its powerful APIs."},{title:"Theming System",description:"Drupal offers a robust theming system for creating responsive, accessible, and visually appealing designs."},{title:"Enterprise-Level Performance",description:"Drupal is optimized for enterprise performance, supporting caching, CDN integration, and database clustering."},{title:"SEO-Friendly",description:"Built-in SEO tools and customizable metadata help improve search engine visibility for Drupal websites."}],tags:["Content Management","Website Development","Open Source","Enterprise CMS","Modular Architecture"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"modules",mountPath:"/var/www/html/modules"},{type:"volume",name:"profiles",mountPath:"/var/www/html/profiles"},{type:"volume",name:"themes",mountPath:"/var/www/html/themes"},{type:"volume",name:"sites",mountPath:"/var/www/html/sites"}],ports:[]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"dumbassets",meta:{name:"DumbAssets",description:"DumbAssets is a self-hosted asset management service that provides secure file storage, organization, and sharing capabilities. It features PIN protection, configurable access controls, and notification integration. Perfect for teams and organizations that need centralized asset management.",instructions:null,changeLog:[{date:"2025-09-25",description:"First release"}],links:[{label:"Website",url:"https://www.dumbware.io/DumbAssets"},{label:"Documentation",url:"https://github.com/dumbwareio/dumbassets#readme"},{label:"GitHub",url:"https://github.com/dumbwareio/dumbassets"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dumbassets"},appServiceImage:{type:"string",title:"App Service Image",default:"dumbwareio/dumbassets:1.0.11"}}},benefits:[{title:"Asset Management",description:"Centralized file storage, organization, and sharing with secure access controls and user management."},{title:"PIN Protection",description:"Optional PIN-based access control for additional security and controlled access to assets."},{title:"File Organization",description:"Organize files with categories, tags, and metadata for efficient asset management and retrieval."},{title:"Notification Integration",description:"Integration with Apprise for notifications about asset changes and system events."}],features:[{title:"Web Interface",description:"Clean, responsive web interface for asset management."},{title:"PIN Protection",description:"Optional PIN-based access control for security."},{title:"File Upload",description:"Secure file upload with size and type restrictions."},{title:"File Organization",description:"Categorize and organize files with metadata."},{title:"Access Control",description:"Configurable access controls and permissions."},{title:"CORS Support",description:"Configurable cross-origin resource sharing."},{title:"Notification Integration",description:"Integration with Apprise notification service."},{title:"Data Persistence",description:"All assets and metadata persist across restarts."}],tags:["Asset Management","File Storage","File Sharing","Web Interface","Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"dumbassets-data",mountPath:"/app/data"}],env:["PORT=3000","NODE_ENV=production","DEBUG=false","SITE_TITLE=DumbAssets","BASE_URL=https://$(PRIMARY_DOMAIN)","DUMBASSETS_PIN=","ALLOWED_ORIGINS=*","APPRISE_URL="].join("\n")}}),{services:t}}},{slug:"dumbbudget",meta:{name:"DumbBudget",description:"DumbBudget is a simple, self-hosted personal budgeting app from DumbWare.io. Track income and expenses with categories, PIN protection, multi-currency support, CSV export, and a responsive PWA UI. Data persists under /app/data.",instructions:"**BASE_URL** is set to your primary HTTPS domain\u2014required for correct links and\nauth behind a reverse proxy.\n**DUMBBUDGET_PIN:** Leave the template default empty for open access (no PIN\ngate), or set a PIN in the form / env to require it at login (see upstream\nsecurity notes on rate limits and lockouts).\n**SITE_TITLE** appears in the UI header; **INSTANCE_NAME** is optional metadata\nfor multi-instance setups (matches upstream docker-compose).\n**CURRENCY** must be a supported ISO code (see documentation link). After\ndeploy, open the app and complete any first-run prompts.\n",changeLog:[{date:"2025-09-26",description:"First release (d44543bf67ecedb416138ac4de93759d3a324999)"},{date:"2026-03-20",description:"Screenshot, website/docs links, SITE_TITLE & INSTANCE_NAME env parity, configurable PIN/currency/titles"},{date:"2026-04-29",description:"Version bumped to b9db5cb32d14b7b78675d8be054611d4829253ef"}],links:[{label:"Website",url:"https://dumbware.io"},{label:"Documentation",url:"https://github.com/dumbwareio/dumbbudget/blob/main/README.md"},{label:"GitHub",url:"https://github.com/dumbwareio/dumbbudget"},{label:"Docker Hub",url:"https://hub.docker.com/r/dumbwareio/dumbbudget"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dumbbudgetPin","currency","siteTitle","instanceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dumbbudget"},appServiceImage:{type:"string",title:"App Service Image",default:"dumbwareio/dumbbudget:b9db5cb32d14b7b78675d8be054611d4829253ef"},dumbbudgetPin:{type:"string",title:"DUMBBUDGET_PIN",default:"",description:"Optional. Empty = no PIN. Set a numeric PIN to protect the app at login."},currency:{type:"string",title:"Currency code",default:"USD",description:"ISO currency code (USD, EUR, GBP, \u2026). See README for full supported list."},siteTitle:{type:"string",title:"SITE_TITLE",default:"DumbBudget",description:"Title shown in the app UI (upstream default DumbBudget)."},instanceName:{type:"string",title:"INSTANCE_NAME",default:"",description:"Optional label for this instance/account when running multiple deployments."}}},benefits:[{title:"Budget Management",description:"Track income, expenses, and savings with intuitive budget management tools and financial insights."},{title:"PIN Protection",description:"Optional PIN-based access control for additional security and privacy protection of your financial data."},{title:"Multi-Currency Support",description:"Support for different currencies to match your local financial environment and preferences."},{title:"Self-Hosted",description:"Complete control over your financial data with no external dependencies or data sharing with third parties."}],features:[{title:"Expense Tracking",description:"Track and categorize your daily expenses and purchases."},{title:"Income Management",description:"Record and monitor your income sources and patterns."},{title:"Budget Planning",description:"Create and manage budgets for different categories."},{title:"Financial Reports",description:"Generate reports and insights about your spending habits."},{title:"PIN Protection",description:"Optional PIN-based access control for security."},{title:"Multi-Currency",description:"Support for different currencies and exchange rates."},{title:"Data Persistence",description:"All financial data persists across container restarts."},{title:"Web Interface",description:"Clean, responsive web interface for budget management."}],tags:["Budget Management","Personal Finance","Expense Tracking","Financial Planning","Web Interface"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"dumbbudget-data",mountPath:"/app/data"}],env:["DUMBBUDGET_PIN=".concat(e.dumbbudgetPin),"BASE_URL=https://$(PRIMARY_DOMAIN)","CURRENCY=".concat(e.currency),"SITE_TITLE=".concat(e.siteTitle),"INSTANCE_NAME=".concat(e.instanceName)].join("\n")}}),{services:t}}},{slug:"dumbdo",meta:{name:"Dumbdo",description:'DumbDo is a stupidly simple todo list application that just works. No complex database, no unnecessary features - just todos. It features a clean, minimal interface with dark/light mode support, file-based storage, and PIN protection. Built with the "Dumb" design system principles, it\'s fast, lightweight, and fully responsive with PWA support.',instructions:null,changeLog:[{date:"2025-09-11",description:"Initial Template Release (af4532890ed0613d4cb4a35931d436cea63180ff)"},{date:"2026-02-18",description:"Version bumped to d4dff81e4eab16de0974a94742e1cd3bc51a369a"}],links:[{label:"Website",url:"https://www.dumbware.io/DumbDo"},{label:"GitHub",url:"https://github.com/dumbwareio/dumbdo"},{label:"Docker Hub",url:"https://hub.docker.com/r/dumbwareio/dumbdo"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dumbdo"},appServiceImage:{type:"string",title:"App Service Image",default:"dumbwareio/dumbdo:d4dff81e4eab16de0974a94742e1cd3bc51a369a",description:"Dumbdo Docker image"}}},benefits:[{title:"Stupidly Simple",description:'No complex database, no unnecessary features - just todos. Built with the "Dumb" design system principles for maximum simplicity and reliability.'},{title:"Clean Minimal Interface",description:"Clean, minimal interface with dark/light mode support and system preference detection for a distraction-free todo management experience."},{title:"File-Based Storage",description:"Simple file-based storage using JSON files - todos persist between sessions without complex database setup or maintenance requirements."},{title:"PIN Protection",description:"Optional PIN protection (4-10 digits) to secure your todos while keeping the interface simple and accessible."}],features:[{title:"Dark/Light Mode",description:"Built-in dark and light mode with automatic system preference detection for comfortable viewing in any environment."},{title:"Fully Responsive Design",description:"Mobile-first responsive design that works perfectly on desktop, tablet, and mobile devices with touch-friendly interface."},{title:"PWA Support",description:"Progressive Web App support allowing you to install DumbDo as a native app on your device for quick access."},{title:"File-Based Storage",description:"Simple JSON file storage at `/app/data/todos.json` - easy to backup, restore, and migrate your todos between instances."},{title:"Fast and Lightweight",description:"Minimal resource usage with fast performance - no complex dependencies or heavy frameworks, just pure efficiency."},{title:"Single List Mode",description:"Optional single list mode to show all todos without the list selector for even simpler todo management."}],tags:["Todo List","Task Management","Self-Hosted","Lightweight","PWA","Dark Mode","Simple","Docker","Fast","Minimal"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"dumbdo-data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"dumbdrop",meta:{name:"DumbDrop",description:"DumbDrop is a simple file sharing service for quick file uploads and downloads. It provides a clean web interface for sharing files with optional PIN protection and configurable file size limits. Perfect for temporary file sharing and quick document distribution.",instructions:null,changeLog:[{date:"2025-09-24",description:"First release (sha-54cdf4be36b85a7146685841c567cb6b4e96b69e)"},{date:"2026-04-29",description:"Version bumped to sha-ff8f813f493e89c7da056e7a3101ce2ef48e3960"}],links:[{label:"Website",url:"https://www.dumbware.io/DumbDrop"},{label:"Documentation",url:"https://github.com/dumbwareio/dumbdrop#readme"},{label:"GitHub",url:"https://github.com/dumbwareio/dumbdrop"},{label:"Container Registry",url:"https://hub.docker.com/r/dumbwareio/dumbdrop"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dumbdrop"},appServiceImage:{type:"string",title:"App Service Image",default:"dumbwareio/dumbdrop:sha-ff8f813f493e89c7da056e7a3101ce2ef48e3960"}},benefits:[{title:"Simple File Sharing",description:"Easy-to-use web interface for quick file uploads and sharing with direct download links."},{title:"Optional Security",description:"Optional PIN protection to control access to your file sharing service."},{title:"Configurable Limits",description:"Set custom file size limits to control storage usage and bandwidth."},{title:"No Database Required",description:"Stateless service that stores files directly without requiring a database."}]},features:[{title:"Web Interface",description:"Clean, responsive web interface for uploading and managing files."},{title:"PIN Protection",description:"Optional PIN-based access control for additional security."},{title:"File Size Limits",description:"Configurable maximum file size limits to control storage usage."},{title:"Auto Upload",description:"Option to automatically upload files without clicking upload button."},{title:"Direct Links",description:"Generate direct download links for easy file sharing."},{title:"Persistent Storage",description:"Files are stored in persistent volumes and survive container restarts."}],tags:["File Sharing","Upload","Download","Simple","Web Interface"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"dumbdrop-uploads",mountPath:"/app/uploads"}],env:["DUMBDROP_TITLE=DumbDrop","MAX_FILE_SIZE=1024","DUMBDROP_PIN=","AUTO_UPLOAD=false","BASE_URL=https://$(PRIMARY_DOMAIN)"].join("\n")}}),{services:t}}},{slug:"dumbkan",meta:{name:"DumbKan",description:"DumbKan is a simple, self-hosted Kanban board application for project management and task organization. It provides a clean interface for creating boards, managing tasks, and collaborating on projects. Perfect for teams and individuals who need a lightweight project management solution.",instructions:null,changeLog:[{date:"2025-09-26",description:"First release"}],links:[{label:"Website",url:"https://www.dumbware.io/DumbKan"},{label:"Documentation",url:"https://github.com/dumbwareio/dumbkan#readme"},{label:"GitHub",url:"https://github.com/dumbwareio/dumbkan"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dumbkan"},appServiceImage:{type:"string",title:"App Service Image",default:"dumbwareio/dumbkan:nightly-20250303-051955"}}},benefits:[{title:"Project Management",description:"Simple and effective Kanban boards for organizing tasks and managing project workflows."},{title:"Team Collaboration",description:"Share boards with team members for collaborative project management and task tracking."},{title:"Visual Organization",description:"Drag-and-drop interface for intuitive task management and visual project organization."},{title:"Self-Hosted",description:"Complete control over your project data with no external dependencies or data sharing."}],features:[{title:"Kanban Boards",description:"Create and manage multiple Kanban boards for different projects."},{title:"Task Management",description:"Create, edit, and organize tasks with descriptions and labels."},{title:"Drag and Drop",description:"Intuitive drag-and-drop interface for moving tasks between columns."},{title:"Board Sharing",description:"Share boards with team members for collaborative work."},{title:"Column Management",description:"Customize board columns to match your workflow."},{title:"Task Labels",description:"Organize tasks with custom labels and categories."},{title:"Data Persistence",description:"All boards and tasks persist across container restarts."},{title:"Web Interface",description:"Clean, responsive web interface accessible from any device."}],tags:["Kanban","Project Management","Task Management","Collaboration","Web Interface"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"dumbkan-data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"dumbpad",meta:{name:"DumbPad",description:"DumbPad is a simple note-taking application for quick text storage and sharing. It provides a clean web-based text editor with optional PIN protection for secure note management. Perfect for quick notes, temporary text storage, and collaborative text editing.",instructions:null,changeLog:[{date:"2025-09-24",description:"First release (1.0.4)"},{date:"2026-04-29",description:"Version bumped to 1.0.5"}],links:[{label:"Website",url:"https://www.dumbware.io/DumbPad"},{label:"Documentation",url:"https://github.com/dumbwareio/dumbpad#readme"},{label:"GitHub",url:"https://github.com/dumbwareio/dumbpad"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dumbpad"},appServiceImage:{type:"string",title:"App Service Image",default:"dumbwareio/dumbpad:1.0.5"}}},benefits:[{title:"Simple Note Taking",description:"Clean, distraction-free interface for quick note creation and editing."},{title:"Optional Security",description:"Optional PIN protection to control access to your notes."},{title:"Persistent Storage",description:"Notes are stored in persistent volumes and survive container restarts."},{title:"No Database Required",description:"Stateless service that stores notes directly without requiring a database."}],features:[{title:"Web Interface",description:"Clean, responsive web interface for creating and editing notes."},{title:"PIN Protection",description:"Optional PIN-based access control for additional security."},{title:"Auto Save",description:"Notes are automatically saved as you type."},{title:"URL Sharing",description:"Each note gets a unique URL for easy sharing."},{title:"Persistent Storage",description:"Notes survive container restarts and updates."},{title:"Simple Interface",description:"Minimal, distraction-free writing environment."}],tags:["Notes","Text Editor","Productivity","Simple","Web Interface"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"dumbpad-data",mountPath:"/app/data"}],env:["SITE_TITLE=DumbPad","DUMBPAD_PIN=","BASE_URL=https://$(PRIMARY_DOMAIN)"].join("\n")}}),{services:t}}},{slug:"dumbterm",meta:{name:"DumbTerm",description:"DumbTerm is a web-based terminal emulator that provides secure terminal access through your browser. It features PIN protection, session management, and configurable security settings. Perfect for remote server access, development environments, and system administration tasks.",instructions:null,changeLog:[{date:"2025-09-26",description:"First release (v1.2.0)"}],links:[{label:"Website",url:"https://www.dumbware.io/DumbTerm"},{label:"Documentation",url:"https://github.com/dumbwareio/dumbterm#readme"},{label:"GitHub",url:"https://github.com/dumbwareio/dumbterm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dumbterm"},appServiceImage:{type:"string",title:"App Service Image",default:"dumbwareio/dumbterm:1.2.0"}}},benefits:[{title:"Web-Based Terminal",description:"Access your server terminal directly through your web browser without additional software installation."},{title:"Secure Access",description:"PIN protection and session management for secure terminal access."},{title:"Cross-Platform",description:"Works on any device with a web browser, including mobile devices."},{title:"No Installation Required",description:"No need to install SSH clients or terminal software on client devices."}],features:[{title:"Web Interface",description:"Clean, responsive web interface for terminal access."},{title:"PIN Protection",description:"Optional PIN-based access control for additional security."},{title:"Session Management",description:"Configurable session duration and lockout protection."},{title:"Starship Integration",description:"Optional Starship prompt for enhanced terminal experience."},{title:"Timezone Configuration",description:"Configurable timezone for proper time display."},{title:"CORS Support",description:"Configurable cross-origin resource sharing settings."},{title:"Persistent Storage",description:"Configuration and data persist across container restarts."},{title:"Root Access",description:"Runs with root privileges for full system access."}],tags:["Terminal","SSH","Web Interface","Security","System Administration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"dumbterm-config",mountPath:"/root/.config"},{type:"volume",name:"dumbterm-data",mountPath:"/root/data"}],env:["TZ=Etc/UTC","SITE_TITLE=DUMBTERM","DUMBTERM_PIN=","BASE_URL=https://$(PRIMARY_DOMAIN)","ENABLE_STARSHIP=","LOCKOUT_TIME=","MAX_SESSION_AGE=","ALLOWED_ORIGINS=*"].join("\n")}}),{services:t}}},{slug:"dumbwhois",meta:{name:"DumbWhois",description:"DumbWhois is a simple WHOIS lookup service for domain information queries. It provides both a web interface and API endpoint for retrieving domain registration details, nameserver information, and other domain-related data. Perfect for developers and system administrators who need quick domain lookups.",instructions:null,changeLog:[{date:"2025-09-24",description:"First release"}],links:[{label:"Website",url:"hhttps://www.dumbware.io/DumbWhoIs"},{label:"Documentation",url:"https://github.com/dumbwareio/dumbwhois#readme"},{label:"GitHub",url:"https://github.com/dumbwareio/dumbwhois"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dumbwhois"},appServiceImage:{type:"string",title:"App Service Image",default:"dumbwareio/dumbwhois:latest"}}},benefits:[{title:"Domain Information",description:"Quick access to domain registration details, nameservers, and contact information for any domain."},{title:"API Access",description:"RESTful API endpoint for programmatic domain lookups and integration with other services."},{title:"CORS Support",description:"Configurable cross-origin resource sharing for web application integration."},{title:"No Storage Required",description:"Stateless service that performs real-time lookups without storing data."}],features:[{title:"Web Interface",description:"Clean, responsive web interface for performing WHOIS lookups."},{title:"REST API",description:"RESTful API endpoint for programmatic access to WHOIS data."},{title:"CORS Configuration",description:"Configurable CORS settings for web application integration."},{title:"Real-time Lookups",description:"Performs live WHOIS queries for up-to-date domain information."},{title:"JSON Response",description:"API returns structured JSON data for easy integration."},{title:"Simple Setup",description:"Easy deployment with minimal configuration required."}],tags:["WHOIS","Domain","Lookup","API","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["SITE_TITLE=DumbWhois","ALLOWED_ORIGINS=*"].join("\n")}}),{services:t}}},{slug:"duplicati",meta:{name:"Duplicati",description:"Duplicati is a free, open-source backup software designed to store encrypted backups online. It is compatible with Windows, macOS, and Linux. The software works with standard protocols like FTP, SSH, WebDAV, and popular services such as Backblaze B2, Tardigrade, Microsoft OneDrive, Amazon S3, Google Drive, box.com, Mega, hubiC, and many others. Duplicati allows you to backup files and folders with strong AES-256 encryption, saving space with incremental backups and data deduplication. It can run backups on any machine through a web-based interface or via command line interface. Duplicati has a built-in scheduler and auto-updater, ensuring your backups are always up-to-date. It is designed for online backups from scratch, handling network issues efficiently. For instance, interrupted backups can be resumed, and Duplicati regularly tests the content of backups, detecting broken backups on corrupt storage systems before it\u2019s too late. The softw
1are is configured by a web interface that runs in any browser and can be accessed from anywhere.",instructions:null,changeLog:[{date:"2022-08-05",description:"first release"},{date:"2025-01-09",description:"Version bumped to 2.1.0"},{date:"2025-12-25",description:"Version bumped to 2.2.0"},{date:"2026-04-29",description:"Version bumped to 2.2.1"}],links:[{label:"Website",url:"https://www.duplicati.com/"},{label:"Documentation",url:"https://duplicati.readthedocs.io/en/latest/"},{label:"Github",url:"https://github.com/duplicati/duplicati"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","appPassword"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"duplicati"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/duplicati:2.2.1"},appPassword:{type:"string",title:"App Service Password",default:"password"}}},benefits:[{title:"Secure Backup",description:"Duplicati is a free backup software that securely stores encrypted backups online, ensuring your data is safe and protected."},{title:"Efficient Data Handling",description:"Designed for online backups from scratch, Duplicati is not only data efficient but also handles network issues effectively. Interrupted backups can be resumed and the content of backups is tested regularly."},{title:"Accessible Anywhere",description:"With a web-based interface that runs in any browser, Duplicati can be accessed from anywhere. This makes it ideal for use on headless machines like a NAS (network attached storage)."}],features:[{title:"Strong Encryption",description:"Duplicati uses strong AES-256 encryption to protect your privacy. You can also use GPG to encrypt your backup, ensuring your data is secure."},{title:"Supports Many Backends",description:"Duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Backblaze B2, Tardigrade, Microsoft OneDrive, Amazon S3, Google Drive, box.com, Mega, hubiC and many others."},{title:"Incremental Backups and Data Deduplication",description:"Save space with incremental backups and data deduplication. Duplicati uploads a full backup initially and stores smaller, incremental updates afterwards to save bandwidth and storage space."},{title:"Built-in Scheduler and Auto-updater",description:"Duplicati has a built-in scheduler and auto-updater, keeping your backups up-to-date automatically."}],tags:["Backup","Data Security","Cloud Storage"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8200}],env:["TZ=Europe/London","SETTINGS_ENCRYPTION_KEY=".concat(a),"DUPLICATI__WEBSERVICE_PASSWORD=".concat(e.appPassword)].join("\n"),mounts:[{type:"bind",hostPath:"/",mountPath:"/host"},{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"dweebui",meta:{name:"DweebUI",description:"DweebUI is a free, open-source web UI for managing Docker and Podman containers. It provides a dynamically updating dashboard showing real-time CPU, RAM, network, and disk metrics alongside container cards with one-click start, stop, pause, restart, log, and detail controls. It also manages images, volumes, and networks, supports multi-user access with a permission system, includes an app template library compatible with Portainer, and works on Windows, Linux, and macOS. Built with Node.js, Express, HTMX, and EJS, the entire stack runs in a single container connected to the Docker socket.",instructions:"Open the app at your domain. On first visit you will be prompted to register an admin account \u2014 use the SECRET value shown in the service environment variables as the registration key. The Docker socket is mounted read-write so DweebUI can manage containers. For Podman, replace /var/run/docker.sock with /run/podman/podman.sock in the bind mount after deployment.",changeLog:[{date:"2026-06-26",description:"First Release"}],links:[{label:"Website",url:"https://www.dweebui.com/"},{label:"GitHub",url:"https://github.com/lllllllillllllillll/DweebUI"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"dweebui"},appServiceImage:{type:"string",title:"App Service Image",default:"lllllllillllllillll/dweebui:v0.60"}}},benefits:[{title:"Unified Container Dashboard",description:"A single-page dashboard shows live CPU, RAM, network, and disk metrics at the top and a card for every container below \u2014 with status indicators and action buttons \u2014 all updating without a page reload."},{title:"Multi-User Permission System",description:"Create multiple user accounts and assign per-container permissions so team members can manage only the containers they are authorised to touch, without sharing admin credentials."},{title:"Portainer-Compatible App Templates",description:"Import and deploy apps from a built-in template library that uses the same format as Portainer, making it easy to migrate or share stacks between tools."}],features:[{title:"Container Lifecycle Controls",description:"Start, stop, pause, restart, and remove containers from the dashboard. View real-time logs and inspect container details without a terminal."},{title:"Image, Volume, and Network Management",description:"Browse and delete Docker images, volumes, and networks from dedicated tabs \u2014 no CLI required for routine cleanup tasks."},{title:"Docker and Podman Support",description:"Connects to the Docker socket by default; switch to the Podman socket path for rootless Podman environments with no other configuration change."},{title:"Light and Dark Mode",description:"Toggle between light and dark themes from the UI; the preference is persisted per user session."},{title:"Mobile-Friendly Interface",description:"The responsive layout scales to phone and tablet screens, making it practical to check and control containers from any device."}],tags:["Docker","Container Management","Dashboard","Self-Hosted","DevOps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PORT=8000","SECRET=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/config"},{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"easyappointments",meta:{name:"EasyAppointments",description:"EasyAppointments is an open-source, self-hosted scheduling platform designed to help businesses manage appointments seamlessly. It enables organizations to handle booking, customer management, and service scheduling with ease. With an intuitive interface and robust customization options, EasyAppointments supports integrations, multi-language capabilities, and detailed reporting, making it a versatile solution for appointment scheduling.",instructions:null,changeLog:[{date:"2025-01-20",description:"First Release"},{date:"2025-12-25",description:"Version bumped to 1.5.2"}],links:[{label:"Github",url:"https://github.com/alextselegidis/easyappointments"},{label:"Documentation",url:"https://easyappointments.org/"},{label:"Demo",url:"https://demo.easyappointments.org/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"easyappointments"},appServiceImage:{type:"string",title:"App Service Image",default:"alextselegidis/easyappointments:1.5.2"}}},benefits:[{title:"Simplified Appointment Scheduling",description:"EasyAppointments provides an intuitive platform for managing appointments and schedules efficiently."},{title:"Customizable and Scalable",description:"EasyAppointments offers a range of customization options, including themes and integrations, to grow with your business needs."},{title:"Multi-Language Support",description:"Operate in multiple languages to cater to diverse customer bases."}],features:[{title:"Online Appointment Booking",description:"Allow customers to book appointments online, reducing manual intervention."},{title:"Customer and Service Management",description:"Manage customer profiles and service details efficiently in one place."},{title:"Calendar Synchronization",description:"Sync with Google Calendar or other platforms for seamless scheduling."},{title:"Reporting and Analytics",description:"Generate detailed reports to track appointments, revenue, and customer trends."},{title:"Mobile-Friendly Interface",description:"A responsive interface ensures accessibility across devices."}],tags:["Appointment Scheduling","Booking System","Open Source","Calendar Integration","Multi-Language"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["BASE_URL=https://$(PRIMARY_DOMAIN)","DEBUG_MODE=TRUE","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_NAME=$(PROJECT_NAME)","DB_USERNAME=mysql","DB_PASSWORD=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"easyshortener",meta:{name:"Easyshortener",description:"Easyshortener is a multi-user link shortening application designed for simplicity and security. It allows multiple users to manage their links from a built-in administration panel. The app is built with a focus on user experience, ensuring it is easy to use. It also features built-in two-factor authentication, providing an extra layer of security for your peace of mind. Easyshortener is built for Docker, making it easy to deploy with your favorite container engine. Additionally, the app allows for registration and redirect tracking for all links, and can be set to force HTTPS connection for enhanced security.",instructions:null,changeLog:[{date:"2023-3-23",description:"first release"}],links:[{label:"Github",url:"https://github.com/easypanel-community/easyshortener"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"easyshortener"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/easypanel-community/easyshortener:1.1.2"},databaseServiceName:{type:"string",title:"Database Service Name",default:"easyshortener-db"}}},benefits:[{title:"Efficient URL Management",description:"With the Easyshortener app, managing multiple URLs becomes a breeze. It allows multiple users to manage their URLs from a single, built-in administration panel."},{title:"Enhanced Security",description:"The app ensures your peace of mind with its built-in two-factor authentication feature. This adds an extra layer of security to your account, making it more difficult for unauthorized users to gain access."},{title:"User-friendly Interface",description:"Easyshortener is designed with a focus on user experience. It is easy to use and provides a seamless experience, making URL management simple and efficient."},{title:"Optimized for Docker",description:"The app is built for Docker, making it easier to deploy and run on your favorite container engine."}],features:[{title:"Multi-User Support",description:"Easyshortener supports multiple users, allowing you to manage all of them from the built-in administration panel."},{title:"Two Factor Authentication",description:"The app comes with a built-in two-factor authentication feature for enhanced security."},{title:"Ease of Use",description:"The app is crafted with love and care to provide the best experience possible. It is easy to use and navigate."},{title:"Docker Compatibility",description:"Easyshortener is built for Docker, allowing you to easily deploy it with your favorite container engine."}],tags:["URL Shortener","Link Management","Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_NAME=Easyshortener","APP_URL=https://$(PRIMARY_DOMAIN)","ASSET_URL=https://$(PRIMARY_DOMAIN)","APP_ENV=production","APP_DEBUG=false","APP_KEY=base64:".concat(btoa(y(32))),"FORCE_HTTPS=true","EASYSHORTENER_ALLOW_REGISTRATION=true","EASYSHORTENER_INSALLATION_ENV=easypanel","EASYSHORTENER_ALLOW_ANALYTICS=true","DB_CONNECTION=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_PORT=3306","DB_USERNAME=mariadb","DB_PASSWORD=".concat(a),"DB_DATABASE=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,image:"mariadb:10.7.3",password:a}}),{services:t}}},{slug:"eigenfocus",meta:{name:"Eigenfocus",description:"Eigenfocus is a self-hosted project management tool built around boards, issues, and time tracking, without the bloat of larger tools like Jira or Linear. It has no built-in login system by design, since it is meant for a single person or a small trusted team, so this template protects it with HTTP Basic Auth instead. This template runs Eigenfocus against a PostgreSQL database for production-grade reliability.",instructions:"Open the app URL and sign in with the HTTP Basic Auth prompt using username admin and the auto-generated password shown as HTTP_AUTH_PASSWORD in this service's Environment tab in Easypanel. Change or remove HTTP_AUTH_USER/HTTP_AUTH_PASSWORD from the Environment tab at any time; removing both leaves the app fully open, so only do that if it is not reachable from the internet.",changeLog:[{date:"2026-07-15",description:"first release"}],links:[{label:"Website",url:"https://eigenfocus.com"},{label:"GitHub",url:"https://github.com/Eigenfocus/eigenfocus"},{label:"Documentation",url:"https://eigenfocus.com/use-cases"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"eigenfocus"},appServiceImage:{type:"string",title:"App Service Image",default:"eigenfocus/eigenfocus:1.5.1-free"}}},benefits:[{title:"Clutter-Free Project Management",description:"Boards, issues, and time tracking cover the essentials without the configuration overhead of larger project management tools."},{title:"Built-In Time Tracking",description:"Track time directly against issues without a separate timer app or browser extension."},{title:"Markdown Everywhere",description:"Issues and docs are written in markdown using the built-in Milkdown editor, so content stays portable and easy to read as plain text."}],features:[{title:"Kanban Boards",description:"Organize issues into boards and move them through custom stages as work progresses."},{title:"Time Reports",description:"Review time logged per issue, project, or period from a dedicated reporting view."},{title:"Single-Tenant by Design",description:"No multi-user login system to configure or maintain; access is controlled at the HTTP layer instead, matching its use as a personal or small-team tool."}],tags:["Project Management","Productivity","Self-Hosted","Time Tracking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(20);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DEFAULT_HOST_URL=https://$(PRIMARY_DOMAIN)","FORCE_SSL=true","ASSUME_SSL_REVERSE_PROXY=true","POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"POSTGRES_PORT=5432","POSTGRES_DB_USER=postgres","POSTGRES_DB_PASSWORD=".concat(a),"POSTGRES_DB_NAME=$(PROJECT_NAME)","HTTP_AUTH_USER=admin","HTTP_AUTH_PASSWORD=".concat(i)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"app-data",mountPath:"/eigenfocus-app/app-data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"elasticsearch",meta:{name:"Elasticsearch",description:"Elasticsearch is a dynamic search and analytics engine designed for seamless handling of extensive data across various formats. With a user-friendly interface and a robust query language, it enables effortless advanced searches and data analysis. Boasting high performance and scalability, Elasticsearch ensures rapid search responses and efficient data retrieval, making it suitable for diverse applications. The platform prioritizes security with features like role-based access control and encryption, while its real-time indexing and distributed architecture support resilience and reliability. Whether you're a developer or IT professional, Elasticsearch provides a centralized solution for managing and extracting valuable insights from your data, offering a powerful search and analytics experience.",instructions:null,changeLog:[{date:"2024-01-24",description:"first release"},{date:"2024-10-04",description:"Update to 8.15.2"},{date:"2025-01-11",description:"Version bumped to 8.17.0"},{date:"2025-07-21",description:"Version bumped to 9.0.3"},{date:"2025-12-25",description:"Version bumped to 9.2.3"}],links:[{label:"Website",url:"https://www.elastic.co"},{label:"Documentation",url:"https://www.elastic.co/guide/index.html"},{label:"Github",url:"https://github.com/elastic/elasticsearch"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"elasticsearch"},appServiceImage:{type:"string",title:"App Service Image",default:"docker.elastic.co/elasticsearch/elasticsearch:9.2.3"},password:{type:"string",title:"Password"}}},benefits:[{title:"Efficient Data Handling",description:"Elasticsearch ensures efficient handling of extensive data, offering swift search responses and streamlined analytics. This results in accelerated business operations and enhanced data-driven decision-making."},{title:"User-Friendly Interface",description:"With Elasticsearch, advanced searches and data analysis can be performed without coding expertise. The platform's intuitive interface facilitates seamless navigation, making it accessible for users without extensive technical backgrounds."},{title:"Automated Insights",description:"Elasticsearch empowers users to automate complex data tasks effortlessly. Its real-time indexing and distributed architecture support automation, enhancing operational efficiency and data processing."},{title:"Seamless Data Integration",description:"Elasticsearch facilitates seamless integration with diverse data sources, supporting structured and unstructured data. Whether it's external databases, REST APIs, or its built-in database, transforming data into insights is simplified."}],features:[{title:"Scalable Performance",description:"Elasticsearch offers scalable performance, handling vast amounts of data with lightning-fast search responses. Its distributed architecture ensures resilience and reliability for applications with growing data needs."},{title:"Robust Security",description:"Elasticsearch prioritizes data security with features like role-based access control and encryption, ensuring a secure search and analytics environment."},{title:"Real-Time Indexing",description:"Elasticsearch supports real-time indexing, allowing users to stay up-to-date with rapidly changing data. This feature is crucial for applications requiring real-time insights and monitoring."},{title:"Comprehensive Monitoring",description:"Elasticsearch includes monitoring and logging tools, enabling users to track system health, diagnose issues, and optimize performance. This promotes proactive management and efficient utilization of resources."}],tags:["Data Analytics","Search Engine","Security","Scalability"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ELASTIC_PASSWORD=".concat(e.password),"discovery.type=single-node","xpack.security.enabled=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",https:!0,port:9200,path:"/"}],mounts:[{type:"volume",name:"data",mountPath:"/usr/share/elasticsearch/data"}],resources:{memoryReservation:0,memoryLimit:1024,cpuReservation:0,cpuLimit:0}}}),{services:t}}},{slug:"element",meta:{name:"Element",description:"Element is a secure communications platform designed to protect and strengthen your business critical communications. It offers real-time trusted communication across organizations, giving you the freedom to communicate on your own terms. With Element, you can control your data through its open source and flexible hosting, enabling data sovereignty. The app allows you to structure discussion spaces, customize chat rooms, and share live data through widgets and integrations to boost your productivity. It also provides instant messaging, voice/video calls, location sharing, voting polls and more. Element ensures your data is secure by default, allowing you to focus on getting your work done. You have complete independence to own and control your entire communication platform, configure networks to suit organizational requirements, and strengthen cybersecurity and business continuity plans. Element is led by the creators of Matrix, the decentralized open standard for secure and sovereign real time communication.",instructions:null,changeLog:[{date:"2022-10-28",description:"first release"},{date:"2023-2-24",description:"Update to v1.11.23"},{date:"2024-10-04",description:"Update to v1.11.79"},{date:"2025-07-21",description:"Version bumped to v1.11.106"},{date:"2025-12-25",description:"Version bumped to v1.12.7"},{date:"2026-02-23",description:"Version bumped to v1.12.10"},{date:"2026-04-29",description:"Version bumped to v1.12.17"}],links:[{label:"Website",url:"https://element.io/"},{label:"Documentation",url:"https://github.com/element-hq/element-web/wiki"},{label:"Github",url:"https://github.com/element-hq/element-web"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"element"},appServiceImage:{type:"string",title:"App Service Image",default:"vectorim/element-web:v1.12.17"}}},benefits:[{title:"Secure Communications",description:"This platform is designed with security at its core, providing a safe environment for your critical business communications. It gives you the freedom to communicate on your own terms, ensuring your data is protected and your conversations are confidential."},{title:"Data Sovereignty",description:"The app is open-source and offers flexible hosting options, enabling you to maintain complete control over your data. You can choose how you host, share, and manage your data, ensuring it remains in your hands."},{title:"Real-Time Communication",description:"The app allows for trusted, real-time communication across organizations. It supports instant messaging, voice and video calls, location sharing, voting polls, and more, ensuring you can connect with partners effectively and efficiently."},{title:"Customization",description:"The app offers the freedom to structure discussion spaces and customize chat rooms according to your needs. You can also configure networks to suit organizational requirements, ensuring the platform works for you."}],features:[{title:"Secure by Default",description:"The app's technology protects your data so you can focus on getting your work done. It strengthens your cybersecurity and business continuity plans, reducing risks and ensuring your communications remain secure."},{title:"Boost Collaboration",description:"The app allows you to share live data through widgets and integrations, supercharging your productivity. It enables you to collaborate with confidence, enhancing teamwork and improving outcomes."},{title:"Admin Console",description:"The app provides a streamlined way to manage your network configurations and permissions. It also supports ID management and access control using SSO and ACLs, ensuring you maintain control over your platform."},{title:"Bridges",description:"The app allows you to connect to internal and external partners based on siloed communication apps. This ensures you can communicate effectively with all your partners, regardless of the platforms they use."}],tags:["Chat","Communication","Security"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"elkarbackup",meta:{name:"ElkarBackup",description:"ElkarBackup is a robust open-source backup management system designed to streamline data protection and recovery for diverse environments. With an intuitive web-based interface and extensive automation capabilities, it simplifies backup scheduling and execution. ElkarBackup supports various storage backends and ensures reliable backup operations with robust monitoring and reporting features. Whether you're managing personal data or enterprise-scale systems, ElkarBackup offers an efficient and user-friendly solution for safeguarding your critical information.",instructions:"Login using root/root, custom settingss can be configured with the provided envs.",changeLog:[{date:"2024-11-17",description:"Template Release"},{date:"2025-01-11",description:"Version bumped to 2.1.0"},{date:"2025-12-25",description:"Version bumped to 2.3.9"}],links:[{label:"Website",url:"https://elkarbackup.github.io"},{label:"Documentation",url:"https://elkarbackup.github.io/elkarbackup/"},{label:"Github",url:"https://github.com/elkarbackup/elkarbackup"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"elkarbackup"},appServiceImage:{type:"string",title:"App Service Image",default:"elkarbackup/elkarbackup:2.3.9"}}},benefits:[{title:"Centralized Backup Management",description:"ElkarBackup provides a centralized platform for managing backups, ensuring data protection across all devices and environments with minimal effort."},{title:"User-Friendly Interface",description:"The intuitive web interface simplifies configuration, monitoring, and management of backups, making it accessible even for users with limited technical expertise."},{title:"Flexible Scheduling",description:"ElkarBackup's advanced scheduling options allow users to automate backup tasks based on their specific needs, reducing manual intervention."},{title:"Cost-Effective Solution",description:"As an open-source tool, ElkarBackup offers a cost-effective solution for backup management, eliminating the need for expensive proprietary software."}],features:[{title:"Multi-Backend Support",description:"ElkarBackup supports various storage backends, including local storage, network shares, and cloud services, ensuring flexibility in choosing storage options."},{title:"Automation and Scheduling",description:"Automate backup jobs with cron-like scheduling, ensuring regular and reliable backups without manual intervention."},{title:"Robust Monitoring and Reporting",description:"Comprehensive monitoring and reporting tools enable users to track backup performance, detect failures, and ensure data integrity."},{title:"Secure Data Handling",description:"ElkarBackup ensures secure backup and recovery processes, with options to encrypt data and limit access through role-based permissions."}],tags:["Backup Management","Automation","Data Recovery","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SYMFONY__DATABASE__HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"SYMFONY__DATABASE__PORT=3306","SYMFONY__DATABASE__NAME=$(PROJECT_NAME)","SYMFONY__DATABASE__USER=root","SYMFONY__DATABASE__PASSWORD=".concat(a),"EB_CRON=enabled","SYMFONY__MAILER__TRANSPORT=smtp","SYMFONY__MAILER__HOST=localhost","SYMFONY__MAILER__USER=null","SYMFONY__MAILER__PASSWORD=null","SYMFONY__MAILER__FROM=","SYMFONY__EB__SECRET=".concat(i),"SYMFONY__EB__UPLOAD__DIR=/app/uploads","SYMFONY__EB__BACKUP__DIR=/app/backups","SYMFONY__EB__TMP__DIR=/app/tmp","SYMFONY__EB__URL__PREFIX=","SYMFONY__EB__PUBLIC__KEY=/app/.ssh/id_rsa.pub","SYMFONY__EB__MAX__PARALLEL__JOBS=1","SYMFONY__EB__POST__ON__PRE__FAIL=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"backups",mountPath:"/app/backups"},{type:"volume",name:"uploads",mountPath:"/app/uploads"},{type:"volume",name:"sshkeys",mountPath:"/app/.ssh"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),image:"mysql:5.7.22",password:a,rootPassword:a}}),{services:t}}},{slug:"emailengine",meta:{name:"EmailEngine",description:"EmailEngine is a powerful email automation and integration tool designed to simplify email processing for applications. It provides a seamless interface for managing IMAP and SMTP connections, allowing applications to send, receive, and process emails efficiently. With built-in webhook support and extensive API capabilities, EmailEngine enables developers to automate email workflows and integrate email functionality effortlessly. Whether handling transactional emails or managing large-scale email operations, EmailEngine offers a reliable and feature-rich solution.",instructions:"Set the SMTP password for email submissions on the server.",changeLog:[{date:"2025-02-06",description:"Template Release"},{date:"2025-12-25",description:"Version bumped to v2.61"},{date:"2026-02-20",description:"Version bumped to v2.63"},{date:"2026-04-29",description:"Version bumped to v2.63.3"}],links:[{label:"Website",url:"https://emailengine.app"},{label:"Documentation",url:"https://api.emailengine.app/"},{label:"Github",url:"https://github.com/postalsys/emailengine"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","smtpMessageSubmission","imapPort","smtpPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"emailengine"},appServiceImage:{type:"string",title:"App Service Image",default:"postalsys/emailengine:v2.63.3"},smtpMessageSubmission:{type:"string",title:"SMTP Message Submission",default:"2525"},imapPort:{type:"string",title:"IMAP Port",default:"9993"},smtpPassword:{type:"string",title:"SMTP Password",default:"password"}}},benefits:[{title:"Seamless Email Integration",description:"EmailEngine provides a robust solution for integrating IMAP and SMTP functionality, allowing applications to manage emails effortlessly."},{title:"Webhook Support",description:"Built-in webhook functionality enables real-time email event tracking, making it easy to trigger automated actions based on incoming or outgoing emails."},{title:"API-Driven Automation",description:"The extensive API allows developers to automate email sending, receiving, and processing without dealing with complex email protocols directly."},{title:"Cost-Effective Solution",description:"As an open-source tool, EmailEngine offers an affordable solution for managing email automation without relying on expensive third-party services."}],features:[{title:"IMAP and SMTP Support",description:"EmailEngine simplifies working with IMAP and SMTP, abstracting complexities and making email handling more efficient."},{title:"Webhook-Driven Processing",description:"Automate email workflows with real-time webhooks for incoming and outgoing emails, reducing manual email processing."},{title:"Advanced Email Parsing",description:"Extract email content, attachments, and metadata easily with built-in parsing tools, enabling better email workflow automation."},{title:"Secure Authentication",description:"Supports OAuth2 and other authentication mechanisms to ensure secure email handling and access control."}],tags:["Email Automation","Webhooks","API Integration","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:['EENGINE_SETTINGS={"smtpServerEnabled":true,"smtpServerPort":'.concat(e.smtpMessageSubmission,',"smtpServerHost":"0.0.0.0","smtpServerAuthEnabled":true,"smtpServerPassword":"').concat(e.smtpPassword,'"}'),"EENGINE_SECRET=".concat(i),"EENGINE_REDIS=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/2")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],ports:[{published:Number(e.imapPort),target:9993,protocol:"tcp"},{published:Number(e.smtpMessageSubmission),target:2525,protocol:"tcp"}]}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a,command:"redis-server --requirepass ".concat(a," --maxmemory-policy noeviction")}}),{services:t}}},{slug:"emby-stat",meta:{name:"Emby-Stat",description:"Emby-Stat is an advanced statistics and analytics tool for Emby and Jellyfin media servers. It allows you to gain deeper insights into your media library, viewing habits, and server usage. With detailed statistics and customizable reports, Emby-Stat helps you visualize and analyze your media server data effectively. It also provides a user-friendly interface to track playback history, top media consumption trends, and server activity over time. Emby-Stat integrates seamlessly with Emby, giving you the ability to enhance your media management with data-driven decisions.",instructions:null,changeLog:[{date:"2024-12-24",description:"First release"},{date:"2025-07-21",description:"Version bumped to 0.2.0"}],links:[{label:"Website",url:"https://embystat.org/"},{label:"Documentation",url:"https://docs.embystat.org/"},{label:"Github",url:"https://github.com/mregni/EmbyStat"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"emby-stat"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/embystat:0.2.0"}}},benefits:[{title:"Gain Insights into Media Usage",description:"Emby-Stat provides detailed analytics about your media server, helping you understand playback trends, most-watched content, and overall server activity."},{title:"Enhanced Media Management",description:"Use Emby-Stat's statistics to make informed decisions about your media library organization and usage patterns."},{title:"Cross-Platform Integration",description:"Emby-Stat works seamlessly with Emby and Jellyfin servers, giving you the flexibility to use your preferred media server."},{title:"Customizable Reports",description:"Generate reports tailored to your specific needs, such as most-played movies, top TV shows, or user activity summaries."}],features:[{title:"Detailed Media Statistics",description:"Get advanced statistics on your media library, including play counts, top users, and playback times."},{title:"Playback History Tracking",description:"Track the playback history of your media to see when and how content was consumed."},{title:"Analytics Dashboard",description:"Access an intuitive dashboard that visualizes media consumption trends and server activity over time."},{title:"Multi-Server Support",description:"Use Emby-Stat with multiple Emby or Jellyfin servers to consolidate analytics across all your media."}],tags:["Media","Analytics","Statistics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6555}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"emby",meta:{name:"Emby",description:"Emby is a personal media server that brings all of your home videos, music, and photos together into one place for easy access. It automatically converts and streams your media on-the-fly, allowing you to play it on any device. With Emby, you can enjoy your media while away from home without the need to fumble with IP addresses. It also offers live TV streaming to any device, DVR management, and a library of recordings. Emby organizes your personal media into rich, beautiful displays and notifies you of server activity based on events and actions that are important to you. It also offers parental controls to easily manage content access for your children. Emby apps are available for all of your favorite devices, including Android, iPhone, iPad, Windows Phone, and Windows Tablets, allowing you to take your home videos, music, and photos with you wherever you go.",instructions:null,changeLog:[{date:"2022-11-21",description:"first release"},{date:"2023-2-24",description:"Upgrade to v4.7.11"},{date:"2024-10-04",description:"Update to 4.8.10"},{date:"2025-07-21",description:"Version bumped to 4.8.11"},{date:"2025-12-25",description:"Version bumped to 4.9.1"},{date:"2026-02-20",description:"Version bumped to 4.9.3"}],links:[{label:"Website",url:"https://emby.media/"},{label:"Documentation",url:"https://support.emby.media/support/home"},{label:"Github",url:"https://github.com/MediaBrowser/Emby"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"emby"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/emby:4.9.3"}}},benefits:[{title:"Easy Access to Personal Media",description:"Emby Connect provides a seamless way to enjoy your personal media while away from home. No need to worry about IP addresses, simply sign in and play."},{title:"Live TV Streaming",description:"Stream Live TV to any device, manage your DVR, and enjoy your library of recordings. Emby brings the convenience of live TV right to your fingertips."},{title:"Effortless Media Management",description:"Emby takes the hassle out of managing your home videos, music, and photos, allowing you to spend more time enjoying and less time struggling."},{title:"Automatic Organization",description:"Emby organizes your personal media into rich, beautiful displays, making it easier than ever to navigate and enjoy your media library."}],features:[{title:"Personal Media Server",description:"Your personal Emby Server automatically converts and streams your media on-the-fly to play on any device."},{title:"Parental Controls",description:"Easily control content access for your children with Emby's built-in parental controls. Monitor and remote control their sessions as you need to."},{title:"Emby Mobile Sync",description:"Take your home videos, music, and photos with you wherever you go, even offline with Emby Mobile Sync."},{title:"Emby Apps",description:"Emby apps are available for all of your favorite devices, including Android, iPhone, iPad, Windows Phone and Windows Tablets, Android TV, Amazon Fire TV, Chromecast, Roku, Xbox, Home Theater Computers, and more."}],tags:["Media"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8096}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"tvshows",mountPath:"/data/tvshows"},{type:"volume",name:"movies",mountPath:"/data/movies"},{type:"volume",name:"openmaxlibs",mountPath:"/opt/vc/lib"}]}}),{services:t}}},{slug:"enclosed",meta:{name:"Enclosed",description:"Enclosed is a minimalist file sharing and URL shortening service. It provides a simple and efficient way to share files and shorten URLs with a clean, modern interface. Perfect for personal or small team use, it offers secure file storage and easy link management.",instructions:"After installation, access the web interface through the provided domain to start sharing files and shortening URLs.",changeLog:[{date:"2025-04-10",description:"First Release"},{date:"2026-04-29",description:"Version bumped to 1.16.0"}],links:[{label:"Github",url:"https://github.com/corentinth/enclosed"},{label:"Website",url:"https://enclosed.cc"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"enclosed"},appServiceImage:{type:"string",title:"App Service Image",default:"corentinth/enclosed:1.16.0"}}},benefits:[{title:"File Sharing",description:"Easy and secure file sharing capabilities."},{title:"URL Shortening",description:"Create short, memorable links for long URLs."},{title:"Self-Hosted",description:"Complete control over your data and sharing service."},{title:"Simple Interface",description:"Clean and intuitive user interface."},{title:"Data Persistence",description:"Reliable storage for your shared files and links."}],features:[{title:"File Upload",description:"Upload and share files securely."},{title:"Link Management",description:"Create and manage shortened URLs."},{title:"Modern UI",description:"Clean and responsive web interface."},{title:"Persistent Storage",description:"Keep your files and links safe with volume storage."},{title:"Docker Support",description:"Easy deployment with Docker container."}],tags:["File Sharing","URL Shortener","Self-Hosted","Storage","Sharing"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8787}],mounts:[{type:"volume",name:"data",mountPath:"/app/.data"}]}}),{services:t}}},{slug:"endurain",meta:{name:"Endurain",description:"Endurain is a cutting-edge endurance tracking and training platform designed for athletes and fitness enthusiasts. It offers a user-friendly interface to track workouts, set goals, and analyze performance metrics. With Endurain, you can manage your training routines using detailed analytics, route planning, and personalized coaching features. It supports integrations with fitness devices and third-party tools, making it a versatile solution for athletes at any level. Its emphasis on data-driven insights and seamless user experience ensures athletes stay motivated and achieve their fitness goals. Endurain is distributed under an open-source license, allowing for customization to meet unique training needs.",instructions:null,changeLog:[{date:"2025-01-14",description:"First Release"},{date:"2025-07-21",description:"Version bumped to v0.12.7"},{date:"2025-12-25",description:"Version bumped to v0.16.2"}],links:[{label:"Github",url:"https://github.com/joaovitoriasilva/endurain"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"endurain"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/joaovitoriasilva/endurain:v0.16.2"}}},benefits:[{title:"Advanced Training Analytics",description:"Endurain provides in-depth performance metrics and analytics to help athletes optimize their training and achieve peak performance."},{title:"Versatile and Adaptable",description:"Endurain integrates with a wide range of fitness devices and third-party tools, ensuring compatibility with various training workflows."},{title:"Open Source and Customizable",description:"Endurain is open-source, allowing athletes and developers to tailor the platform to specific fitness and training needs."}],features:[{title:"Workout Tracking",description:"Endurain enables users to log and track their workouts, ensuring progress and consistency in their fitness journey."},{title:"Route Planning",description:"Plan and optimize training routes with Endurain\u2019s intuitive route mapping feature, tailored for outdoor enthusiasts."},{title:"Goal Setting and Progress Monitoring",description:"Set training goals and monitor progress with personalized insights and automated reminders to stay on track."}],tags:["Endurance Training","Open Source","Fitness Tracking","Workout Analytics","Route Planning","Performance Metrics","Goal Setting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=Europe/Lisbon","DB_TYPE=postgres","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=5432","DB_PASSWORD=".concat(a),"DB_DATABASE=$(PROJECT_NAME)","DB_USER=postgres","SECRET_KEY=".concat(i),"GEOCODES_MAPS_API=changeme","ENDURAIN_HOST=https://$(PRIMARY_DOMAIN)","BEHIND_PROXY=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"user_images",mountPath:"/app/backend/user_images"},{type:"volume",name:"bulk_import",mountPath:"/app/backend/files/bulk_import"},{type:"volume",name:"processed",mountPath:"/app/backend/files/processed"},{type:"volume",name:"logs",mountPath:"/app/backend/logs"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"ersatztv",meta:{name:"ErsatzTV",description:"ErsatzTV is a modern, web-based IPTV server that creates custom TV channels from your local media library. It streams your movies, TV shows, and other content as continuous TV channels that can be watched on any IPTV-compatible device or application. ErsatzTV provides a sophisticated scheduling system, allowing you to create program guides, manage commercial breaks, and simulate a real TV experience with your personal media collection. Perfect for home entertainment setups, media centers, and creating personalized TV channels from your existing content library.",instructions:"The application uses /transcode as a temporary directory for processing media files, which is mounted as a volume for optimal performance.",changeLog:[{date:"2025-10-14",description:"Initial Template Release"},{date:"2026-04-29",description:"Version bumped to v26.3.0"}],links:[{label:"Website",url:"https://ersatztv.org"},{label:"GitHub",url:"https://github.com/ersatztv/ersatztv"},{label:"Documentation",url:"https://ersatztv.github.io/ersatztv/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ersatztv"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/ersatztv/ersatztv:v26.3.0"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC",description:"Timezone for scheduling and program guides"}}},benefits:[{title:"Custom TV Channels",description:"Transform your personal media library into continuous TV channels with professional scheduling and program guides."},{title:"IPTV Compatibility",description:"Generates standard M3U playlists compatible with any IPTV player or device for seamless viewing experience."},{title:"Advanced Scheduling",description:"Sophisticated scheduling system with program guides, commercial breaks, and realistic TV channel simulation."},{title:"Web-Based Management",description:"Modern web interface for easy channel configuration, media management, and real-time monitoring of your TV streams."}],features:[{title:"Media Library Integration",description:"Automatically scans and organizes your local media files into customizable TV channels with intelligent scheduling."},{title:"Program Guide Generation",description:"Creates detailed EPG (Electronic Program Guide) data for your channels with accurate scheduling and program information."},{title:"Commercial Management",description:"Insert commercials, bumpers, and station identification between programs to create authentic TV channel experience."},{title:"Multi-Channel Support",description:"Run multiple TV channels simultaneously, each with its own schedule, content, and configuration settings."}],tags:["IPTV","Media Server","TV Channels","Streaming","Home Entertainment","Media Center","Plex Alternative"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=".concat(e.timezone)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8409}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"media",mountPath:"/media"},{type:"volume",name:"transcode",mountPath:"/transcode"}]}}),{services:t}}},{slug:"erugo",meta:{name:"Erugo",description:"Erugo is a self-hosted, open source alternative to WeTransfer for sharing files and folders. Drag files into the browser to generate a share link with an optional expiry date, download limit, and password, then track who has downloaded what. It stores everything in a single SQLite database by default and generates its own encryption key and JWT secret on first boot, so there is no setup step beyond deploying the container.",instructions:"Open the app URL and complete the interactive setup wizard to create the first admin account. Uploaded files, the SQLite database, and the generated app key are stored in the persistent storage volume, so back it up if you rely on Erugo for anything important.",changeLog:[{date:"2026-07-13",description:"first release"}],links:[{label:"Website",url:"https://erugo.io"},{label:"GitHub",url:"https://github.com/ErugoOSS/Erugo"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"erugo"},appServiceImage:{type:"string",title:"App Service Image",default:"wardy784/erugo:0.2.15"}}},benefits:[{title:"Zero-Config First Boot",description:"The app key, JWT secret, and SQLite database are all generated automatically on first start, so there is nothing to configure before sharing your first file."},{title:"Expiring, Password-Protected Links",description:"Every share can have a download limit, expiry date, and password set independently, so files stop being accessible exactly when you want."},{title:"Resumable Uploads",description:"Large files upload through a built-in tus server, so an interrupted connection can resume instead of restarting from scratch."}],features:[{title:"Drag-and-Drop Sharing",description:"Drop one or more files or folders into the browser to instantly generate a shareable link, no CLI required."},{title:"Download Tracking",description:"See exactly who downloaded a share and when, from the admin dashboard."},{title:"Branding Controls",description:"Replace the logo and background image shown on the public share pages from within the admin settings."},{title:"Optional MySQL or PostgreSQL",description:"Ships with SQLite for zero-config deployments, but can be pointed at an external MySQL or PostgreSQL database via environment variables for larger installs."}],tags:["File Sharing","File Transfer","Self-Hosted","Productivity"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"storage",mountPath:"/var/www/html/storage"}]}}),{services:t}}},{slug:"espocrm",meta:{name:"EspoCRM",description:"EspoCRM is a powerful web application designed to streamline your company's relationships. This versatile tool allows you to manage and evaluate all types of relationships, including people, companies, projects, and opportunities, all within an easy-to-use and intuitive interface. EspoCRM is trusted by over 50,000 companies across 163 countries, and has been enhancing business operations for 9 years. It is widely used across various sectors such as wholesale and retail trade, e-commerce, banking, call-centers, manufacturing, education, travel & tourism, real estate, healthcare, and insurance. EspoCRM is designed to skyrocket your sales, transform your marketing strategy, and deliver an exceptional customer experience. It is a free self-hosted and cloud CRM software that can be used simultaneously by many people. Increase your company\u2019s profitability and build customer loyalty with EspoCRM, your open source sales tool.",instructions:null,changeLog:[{date:"2023-07-03",description:"First Release"},{date:"2024-10-04",description:"Version Updated to 8.4.1-apache"},{date:"2025-01-11",description:"Version bumped to 8.4.2-apache"},{date:"2025-07-21",description:"Version bumped to 9.1.7-apache"},{date:"2025-12-25",description:"Version bumped to 9.2.5-apache"},{date:"2026-02-20",description:"Version bumped to 9.3-apache"},{date:"2026-04-29",description:"Version bumped to 9.3.4"}],links:[{label:"Website",url:"https://espocrm.com"},{label:"Demo",url:"https://demo.espocrm.com"},{label:"Documentation",url:"https://docs.espocrm.com"},{label:"Github",url:"https://github.com/espocrm"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["adminUsername","adminPassword","appServiceName","appServiceImage","databaseServiceType","databaseServiceName"],properties:{adminUsername:{type:"string",title:"Admin Username"},adminPassword:{type:"string",title:"Admin Password"}
1,appServiceName:{type:"string",title:"App Service Name",default:"espocrm"},appServiceImage:{type:"string",title:"App Service Image",default:"espocrm/espocrm:9.3.4"},databaseServiceType:{type:"string",title:"Database Service Type",default:"mariadb",oneOf:[{enum:["mariadb"],title:"MariaDB"},{enum:["mysql"],title:"MySQL"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"espocrm-db"}}},benefits:[{title:"Comprehensive Relationship Management",description:"EspoCRM is a powerful tool that allows you to manage all your company relationships in one place. Whether it's people, companies, projects, or opportunities, EspoCRM provides an easy and intuitive interface to keep track of everything."},{title:"Boost Sales and Marketing Strategy",description:"With EspoCRM, you can transform your sales and marketing strategy to deliver an exceptional customer experience. It helps you to understand your customers better, streamline your sales process, and ultimately increase your company's profitability."},{title:"Versatility Across Industries",description:"EspoCRM is used across a wide range of industries including wholesale and retail trade, e-commerce, banking, call-centers, manufacturing, education, travel & tourism, real estate, healthcare, and insurance. This versatility makes it a suitable solution for businesses of all types and sizes."}],features:[{title:"Cloud and On-Premise Solutions",description:"EspoCRM offers both cloud-hosted and on-premise solutions, giving you the flexibility to choose the right one for your business. Whether you prefer the convenience of a cloud-based system or the control of hosting it on your own servers, EspoCRM has got you covered."},{title:"Multi-Language Support",description:"EspoCRM supports multiple languages, making it a truly global solution. Whether your team is in the United States, China, Spain, or anywhere else in the world, they can use EspoCRM in their native language."},{title:"Simultaneous Multi-User Access",description:"EspoCRM can be used simultaneously by many people, making it a great tool for teams. Whether your team is small or large, everyone can access the system at the same time, ensuring smooth and efficient operations."}],tags:["CRM"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=["ESPOCRM_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"ESPOCRM_DATABASE_NAME=$(PROJECT_NAME)","ESPOCRM_DATABASE_USER=".concat(e.databaseServiceType),"ESPOCRM_DATABASE_PASSWORD=".concat(a),"ESPOCRM_ADMIN_USERNAME=".concat(e.adminUsername),"ESPOCRM_ADMIN_PASSWORD=".concat(e.adminPassword),"ESPOCRM_SITE_URL=https://$(PRIMARY_DOMAIN)"];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"espocrm",mountPath:"/var/www/html"}],env:i.join("\n"),deploy:{command:"chmod -R 755 /var/www/html && docker-entrypoint.sh apache2-foreground"}}}),t.push({type:"app",data:{serviceName:e.appServiceName+"-daemon",source:{type:"image",image:e.appServiceImage},deploy:{command:"sleep 120; docker-daemon.sh"},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/espocrm"),mountPath:"/var/www/html"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName+"-websocket",source:{type:"image",image:e.appServiceImage},deploy:{command:"sleep 120; docker-websocket.sh"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/espocrm"),mountPath:"/var/www/html"}],env:["ESPOCRM_CONFIG_USE_WEB_SOCKET=true","ESPOCRM_CONFIG_WEB_SOCKET_URL=wss://$(PRIMARY_DOMAIN)","ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBSCRIBER_DSN=tcp://*:7777","ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSN=tcp://$(PROJECT_NAME)_".concat(e.appServiceName,"-websocket:7777")].join("\n")}}),t.push({type:e.databaseServiceType,data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"etherpad",meta:{name:"Etherpad",description:"Etherpad is an open-source online editor that enables real-time collaborative editing directly in your browser. Users can simultaneously work on documents, such as articles, press releases, or to-do lists, with all changes visible to everyone in real time. It supports import/export to various data exchange formats and can be customized with plugins to suit specific needs, making it a ver
1satile tool for a wide range of collaborative tasks.",instructions:null,changeLog:[{date:"2023-3-16",description:"first release"},{date:"2025-01-11",description:"Version bumped to 2.2.7"},{date:"2025-07-21",description:"Version bumped to 2.3.2"},{date:"2025-12-25",description:"Version bumped to 2.5.3"},{date:"2026-02-20",description:"Version bumped to 2.6.1"},{date:"2026-04-29",description:"Version bumped to 2.7.2"}],links:[{label:"Website",url:"https://etherpad.org"},{label:"Documentation",url:"https://etherpad.org/doc/v1.8.18/"},{label:"Github",url:"https://github.com/ether/etherpad-lite"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"etherpad"},appServiceImage:{type:"string",title:"App Service Image",default:"etherpad/etherpad:2.7.2"},databaseServiceName:{type:"string",title:"Database Service Name",default:"etherpad-db"}}},benefits:[{title:"Real-Time Collaboration",description:"Etherpad allows you to edit documents collaboratively in real-time, much like a live multi-player editor that runs in your browser. This eliminates the need for sending your work back and forth via email, making collaboration more efficient."},{title:"Highly Customizable",description:"Etherpad is very customizable through plugins, allowing you to tailor your instance to suit your needs. This flexibility makes it a versatile tool for various collaborative tasks."},{title:"Accessible and User-Friendly",description:"Etherpad is designed to be user-friendly and accessible. You don't need to set up a server and install Etherpad in order to use it. Just pick one of the publicly available instances or set up your own instance by following the installation guide."}],features:[{title:"Collaborative Editing",description:"Etherpad allows multiple users to work on the same document simultaneously. All changes to the document are made in real-time, allowing all collaborators to see updates as they happen."},{title:"Extensive Plugin Support",description:"Etherpad supports a wide range of plugins that allow you to customize your instance to suit your needs. Whether you need additional functionalities or tools, there's likely a plugin for that."},{title:"Multi-Language Support",description:"Etherpad supports multiple languages, making it a truly global solution. Whether your team is in the United States, China, Spain, or anywhere else in the world, they can use Etherpad in their native language."}],tags:["Collaboration","Communication","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_TYPE=postgres","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_NAME=$(PROJECT_NAME)","DB_PORT=5432","DB_USER=postgres","DB_PASS=".concat(a),"ETHERPAD_PORT=9001"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9001}],mounts:[{type:"volume",name:"base",mountPath:"/opt"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"ever-gauzy",meta:{name:"Ever Gauzy",description:"Ever Gauzy is an open business management platform covering ERP CRM HRM ATS and project management with time tracking invoicing and reporting. This template deploys the official API web UI and PostgreSQL stack similar to the upstream docker compose demo layout.",instructions:"Deploy and wait for PostgreSQL the API and the web UI to become healthy. Open the web service URL shown in Easypanel. Register yourself and complete the wizard to start using the application.",changeLog:[{date:"2026-04-03",description:"Initial template with PostgreSQL Gauzy API and Gauzy web UI"}],links:[{label:"Website",url:"https://gauzy.co/"},{label:"Documentation",url:"https://docs.gauzy.co/"},{label:"GitHub",url:"https://github.com/ever-co/ever-gauzy"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","apiServiceImage","webServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ever-gauzy"},apiServiceImage:{type:"string",title:"Gauzy API Image",default:"ghcr.io/ever-co/gauzy-api:latest"},webServiceImage:{type:"string",title:"Gauzy Web Image",default:"ghcr.io/ever-co/gauzy-webapp:latest"}}},benefits:[{title:"All in One Operations",description:"Combines HR CRM projects time tracking and financial workflows in one platform."},{title:"Open Source AGPL",description:"Source available platform you can audit extend and host yourself."},{title:"PostgreSQL Metadata",description:"Persists application data in a managed PostgreSQL service with generated credentials."}],features:[{title:"Time and Activity Tracking",description:"Track employee time activity and productivity with timesheets and related workflows."},{title:"CRM and Sales",description:"Manage contacts pipelines proposals and customer relationships."},{title:"Projects and Tasks",description:"Organize work with projects tasks goals and team coordination."},{title:"Invoicing and Accounting",description:"Supports estimates invoices payments and expense oriented workflows."}],tags:["ERP","CRM","HRM","Business Management","Time Tracking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(48),o=y(48),n=y(48),r="$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),s="$(PROJECT_NAME)_".concat(e.appServiceName,"-web"),c="https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)"),l="https://$(PROJECT_NAME)-".concat(e.appServiceName,"-web.$(EASYPANEL_HOST)"),p=["API_BASE_URL=".concat(c),"CLIENT_BASE_URL=".concat(l),"APP_LINK=".concat(l),"APP_EMAIL_CONFIRMATION_URL=".concat(l,"/#/auth/confirm-email"),"APP_MAGIC_SIGN_URL=".concat(l,"/#/auth/magic-sign-in"),"APP_LOGO=".concat(l,"/assets/images/logos/logo_Gauzy.png"),"ALLOWED_ORIGINS=".concat(l,",").concat(c)];t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}});var d=["NODE_ENV=production","IS_DOCKER=true","API_HOST=0.0.0.0","API_PORT=3000","DB_ORM=typeorm","DB_TYPE=postgres","DB_SYNCHRONIZE=false","DB_HOST=".concat(r),"DB_PORT=5432","DB_NAME=$(PROJECT_NAME)","DB_USER=postgres","DB_PASS=".concat(a),"DB_LOGGING=warn","DB_SSL_MODE=false","REDIS_ENABLED=false","WORKER_QUEUE_ENABLED=false","WORKER_SCHEDULER_ENABLED=false","ALLOW_SUPER_ADMIN_ROLE=true","EXPRESS_SESSION_SECRET=".concat(i),"JWT_REFRESH_TOKEN_SECRET=".concat(o),"JWT_VERIFICATION_TOKEN_SECRET=".concat(n),"PLATFORM_WEBSITE_URL=https://gauzy.co","POSTHOG_ENABLED=false","SENTRY_DSN=","SENTRY_HTTP_TRACING_ENABLED=false","SENTRY_POSTGRES_TRACKING_ENABLED=false","SENTRY_PROFILING_ENABLED=false"].concat(Re(p)).join("\n");t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),source:{type:"image",image:e.apiServiceImage},env:d,domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}});var u=["NODE_ENV=production","IS_DOCKER=true","WEB_HOST=".concat(s),"WEB_PORT=4200","DEMO=false","API_HOST=0.0.0.0","API_PORT=3000","SENTRY_DSN=","SENTRY_TRACES_SAMPLE_RATE=0.1","SENTRY_PROFILE_SAMPLE_RATE=1","POSTHOG_ENABLED=false"].concat(Re(p)).join("\n");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),source:{type:"image",image:e.webServiceImage},env:u,domains:[{host:"$(EASYPANEL_DOMAIN)",port:4200}]}}),{services:t}}},{slug:"evo-ai",meta:{name:"Evo AI",description:"AI-powered API platform for conversational applications",instructions:"Use admin email - [email protected] and password admin123 to login.",changeLog:[{date:"2025-05-27",description:"First release"},{date:"2025-07-21",description:"Version bumped to 0.1.0"}],links:[{label:"Website",url:"https://evoai.co/"},{label:"Documentation",url:"https://docs.evoai.co/"},{label:"GitHub",url:"https://github.com/evolution-foundation/evo-ai"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","frontendImage","adminInitialPassword"],properties:{appServiceName:{type:"string",title:"Service Name",default:"evo-ai"},appServiceImage:{type:"string",title:"API Service Image",default:"evoapicloud/evo-ai:0.1.0"},frontendImage:{type:"string",title:"Frontend Image",default:"evoapicloud/evo-ai-frontend:0.1.0"},adminInitialPassword:{type:"string",title:"Admin Initial Password",default:"admin123"},sendgridApiKey:{type:"string",title:"SendGrid API Key",default:""},emailFrom:{type:"string",title:"Email From Address",default:"[email protected]"}}},benefits:[{title:"AI Conversation Platform",description:"Build intelligent conversational applications with ease."},{title:"Scalable Architecture",description:"Designed to scale with your application's needs."},{title:"Comprehensive API",description:"Access powerful AI capabilities through a simple API interface."}],features:[{title:"Conversational AI",description:"Natural language processing and generation capabilities."},{title:"User Authentication",description:"Secure JWT-based authentication system."},{title:"Email Integration",description:"SendGrid integration for email communications."},{title:"Data Persistence",description:"PostgreSQL database for reliable data storage."},{title:"Caching",description:"Redis caching for improved performance."},{title:"Web Interface",description:"User-friendly frontend for interacting with the AI platform."}],tags:["AI","API","Conversational","NLP","Machine Learning"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),source:{type:"image",image:e.appServiceImage},env:["POSTGRES_CONNECTION_STRING=postgresql://postgres:".concat(o,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-postgres:5432/$(PROJECT_NAME)"),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","ADMIN_INITIAL_PASSWORD=".concat(e.adminInitialPassword),"REDIS_PASSWORD=".concat(a),"REDIS_SSL=false","REDIS_KEY_PREFIX=a2a:","REDIS_TTL=3600","JWT_SECRET_KEY=".concat(i),"SENDGRID_API_KEY=".concat(e.sendgridApiKey||""),"EMAIL_FROM=".concat(e.emailFrom||"[email protected]"),"APP_URL=https://$(PRIMARY_DOMAIN)","LOG_LEVEL=IN
1FO","DEBUG=false"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"logs",mountPath:"/app/logs"},{type:"volume",name:"static",mountPath:"/app/static"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-frontend"),source:{type:"image",image:e.frontendImage},env:["NEXT_PUBLIC_API_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:o}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a}}),{services:t}}},{slug:"evobot",meta:{name:"EvoBot",description:"EvoBot is a music bot designed for Discord, a popular communication platform. It's built with TypeScript and discord.js, and it uses a Command Handler from discordjs.guide. The bot allows users to play music directly from YouTube either by using a URL or a search query. It also supports playing YouTube playlists. In addition to playing music, EvoBot offers a variety of commands for managing the playback. Users can control the volume, pause and resume playback, skip songs, and even move songs within the queue. The bot also provides lyrics for songs and can show its uptime. EvoBot supports multiple languages, making it accessible to users around the world.",instructions:null,changeLog:[{date:"2023-04-05",description:"first release"}],links:[{label:"Github",url:"https://github.com/eritislami/evobot"},{label:"Documentation",url:"https://github.com/eritislami/evobot#%EF%B8%8F-configuration"}],contributors:[{name:"Rub\xe9n Robles",url:"https://github.com/D8vjork"}],schema:{type:"object",required:["appServiceName","appServiceImage","discordToken","maxPlaylistSize","locale","defaultVolume"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"discord_music_bot"},appServiceImage:{type:"string",title:"App Service Image",default:"eritislami/evobot:2.9.0"},discordToken:{type:"string",title:"Discord Token"},maxPlaylistSize:{type:"number",title:"Maximum Playlist Size",default:10},locale:{type:"string",title:"Bot Locale",default:"en"},defaultVolume:{type:"number",title:"Default Music Volume",default:100,minimum:0,maximum:100}}},benefits:[{title:"Uninterrupted Music Experience",description:"EvoBot provides a seamless and uninterrupted music experience on Discord. It allows users to play their favorite music from YouTube directly on their Discord server."},{title:"Multiple Language Support",description:"EvoBot supports multiple languages, making it accessible to users from different linguistic backgrounds. It supports English, Arabic, Brazilian Portuguese, Czech, Dutch, French, German, Greek, Indonesian, Italian, Japanese, Korean, Minionese, Persian, Polish, Russian, Simplified Chinese, Singaporean Mandarin, Spanish, Swedish, Traditional Chinese, Thai, Turkish, Ukrainian, and Vietnamese."},{title:"User-Friendly Commands",description:"EvoBot comes with a variety of user-friendly commands that make it easy for users to control their music playback. Users can play, pause, resume, skip, shuffle, and adjust the volume of their music with simple commands."}],features:[{title:"Music Playback",description:"EvoBot allows users to play music from YouTube via URL or search query. It also supports playing YouTube playlists."},{title:"Queue System",description:"EvoBot features a queue system that allows users to line up their favorite songs and play them one after the other."},{title:"Loop / Repeat",description:"With EvoBot, users can loop or repeat their favorite songs or playlists, ensuring they never miss a beat."},{title:"Volume Control",description:"EvoBot provides volume control, allowing users to adjust the music volume to their liking."},{title:"Lyrics",description:"EvoBot can fetch and display the lyrics of the currently playing song, enhancing the music listening experience."}],tags:["Chat","Media","Music","Discord"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:['TOKEN="'.concat(e.discordToken,'"'),"MAX_PLAYLIST_SIZE=".concat(e.maxPlaylistSize),"PRUNING=true","LOCALE=".concat(e.locale),"DEFAULT_VOLUME=".concat(e.defaultVolume),"STAY_TIME=30"].join("\n"),source:{type:"image",image:e.appServiceImage}}}),{services:t}}},{slug:"evolutionapi",meta:{name:"Evolution API",description:"Evolution API is a self-hosted platform designed to empower small businesses, entrepreneurs, and individuals by providing a robust API for integrating messaging solutions such as WhatsApp\u2122. It offers seamless integration with other tools like Typebot, Chatwoot, and OpenAI to enhance communication and automation capabilities. Evolution API is a free and customizable solution that allows users to maintain control over their messaging infrastructure.",instructions:null,changeLog:[{date:"2025-01-17",description:"First Release"},{date:"2025-12-25",description:"Version bumped to v2.3.7"}],links:[{label:"Website",url:"https://evolution-api.com"},{label:"Documentation",url:"https://doc.evolution-api.com/v1/en/get-started/introduction"},{label:"Github",url:"https://github.com/evolution-foundation/evolution-api"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"evolution-api"},appServiceImage:{type:"string",title:"App Service Image",default:"evoapicloud/evolution-api:v2.3.7"}}},benefits:[{title:"Seamless Messaging Integration",description:"Evolution API allows you to integrate messaging solutions like WhatsApp\u2122 into your platform, enabling efficient communication with your audience directly through a robust API."},{title:"Highly Customizable",description:"With support for plugins and integration with tools like Typebot, Chatwoot, and OpenAI, Evolution API can be tailored to meet the specific needs of your business or project."},{title:"Free and Open Source",description:"Evolution API is free to use and provides a fully open-source solution, giving you control over your messaging infrastructure without incurring additional costs."}],features:[{title:"WhatsApp\u2122 Messaging Support",description:"Evolution API integrates seamlessly with WhatsApp\u2122 for efficient communication, providing a platform for messaging automation and interactions."},{title:"Plugin Support",description:"Evolution API supports a range of plugins to extend functionality and integrate with other tools like Typebot and Chatwoot for advanced use cases."},{title:"Multi-Language Support",description:"The platform supports multiple languages, making it suitable for global businesses and diverse teams."}],tags:["Messaging","Communication","Automation","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SERVER_TYPE=http","SERVER_PORT=8080","SERVER_URL=https://$(PRIMARY_DOMAIN)","SENTRY_DSN=","CORS_ORIGIN=*","CORS_METHODS=GET,POST,PUT,DELETE","CORS_CREDENTIALS=true","LOG_LEVEL=ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS,WEBSOCKET","LOG_COLOR=true","LOG_BAILEYS=error","EVENT_EMITTER_MAX_LISTENERS=50","DEL_INSTANCE=false","DATABASE_PROVIDER=postgresql","DATABASE_CONNECTION_URI=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange","DATABASE_SAVE_DATA_INSTANCE=true","DATABASE_SAVE_DATA_NEW_MESSAGE=true","DATABASE_SAVE_MESSAGE_UPDATE=true","DATABASE_SAVE_DATA_CONTACTS=true","DATABASE_SAVE_DATA_CHATS=true","DATABASE_SAVE_DATA_LABELS=true","DATABASE_SAVE_DATA_HISTORIC=true","DATABASE_SAVE_IS_ON_WHATSAPP=true","DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=7","DATABASE_DELETE_MESSAGE=true","RABBITMQ_ENABLED=false","RABBITMQ_URI=amqp://localhost","RABBITMQ_EXCHANGE_NAME=evolution","RABBITMQ_GLOBAL_ENABLED=false","RABBITMQ_EVENTS_APPLICATION_STARTUP=false","RABBITMQ_EVENTS_INSTANCE_CREATE=false","RABBITMQ_EVENTS_INSTANCE_DELETE=false","RABBITMQ_EVENTS_QRCODE_UPDATED=false","RABBITMQ_EVENTS_MESSAGES_SET=false","RABBITMQ_EVENTS_MESSAGES_UPSERT=false","RABBITMQ_EVENTS_MESSAGES_EDITED=false","RABBITMQ_EVENTS_MESSAGES_UPDATE=false","RABBITMQ_EVENTS_MESSAGES_DELETE=false","RABBITMQ_EVENTS_SEND_MESSAGE=false","RABBITMQ_EVENTS_CONTACTS_SET=false","RABBITMQ_EVENTS_CONTACTS_UPSERT=false","RABBITMQ_EVENTS_CONTACTS_UPDATE=false","RABBITMQ_EVENTS_PRESENCE_UPDATE=false","RABBITMQ_EVENTS_CHATS_SET=false","RABBITMQ_EVENTS_CHATS_UPSERT=false","RABBITMQ_EVENTS_CHATS_UPDATE=false","RABBITMQ_EVENTS_CHATS_DELETE=false","RABBITMQ_EVENTS_GROUPS_UPSERT=false","RABBITMQ_EVENTS_GROUP_UPDATE=false","RABBITMQ_EVENTS_GROUP_PARTICIPANTS_UPDATE=false","RABBITMQ_EVENTS_CONNECTION_UPDATE=false","RABBITMQ_EVENTS_REMOVE_INSTANCE=false","RABBITMQ_EVENTS_LOGOUT_INSTANCE=false","RABBITMQ_EVENTS_CALL=false","RABBITMQ_EVENTS_TYPEBOT_START=false","RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false","SQS_ENABLED=false","SQS_ACCESS_KEY_ID=","SQS_SECRET_ACCESS_KEY=","SQS_ACCOUNT_ID=","SQS_REGION=","WEBSOCKET_ENABLED=false","WEBSOCKET_GLOBAL_EVENTS=false","PUSHER_ENABLED=false","PUSHER_GLOBAL_ENABLED=false","PUSHER_GLOBAL_APP_ID=","PUSHER_GLOBAL_KEY=","PUSHER_GLOBAL_SECRET=","PUSHER_GLOBAL_CLUSTER=","PUSHER_GLOBAL_USE_TLS=true","PUSHER_EVENTS_APPLICATION_STARTUP=true","PUSHER_EVENTS_QRCODE_UPDATED=true","PUSHER_EVENTS_MESSAGES_SET=true","PUSHER_EVENTS_MESSAGES_UPSERT=true","PUSHER_EVENTS_MESSAGES_EDITED=true","PUSHER_EVENTS_MESSAGES_UPDATE=true","PUSHER_EVENTS_MESSAGES_DELETE=true","PUSHER_EVENTS_SEND_MESSAGE=true","PUSHER_EVENTS_CONTACTS_SET=true","PUSHER_EVENTS_CONTACTS_UPSERT=true","PUSHER_EVENTS_CONTACTS_UPDATE=true","PUSHER_EVENTS_PRESENCE_UPDATE=true","PUSHER_EVENTS_CHATS_SET=true","PUSHER_EVENTS_CHATS_UPSERT=true","PUSHER_EVENTS_CHATS_UPDATE=true","PUSHER_EVENTS_CHATS_DELET
1E=true","PUSHER_EVENTS_GROUPS_UPSERT=true","PUSHER_EVENTS_GROUPS_UPDATE=true","PUSHER_EVENTS_GROUP_PARTICIPANTS_UPDATE=true","PUSHER_EVENTS_CONNECTION_UPDATE=true","PUSHER_EVENTS_LABELS_EDIT=true","PUSHER_EVENTS_LABELS_ASSOCIATION=true","PUSHER_EVENTS_CALL=true","PUSHER_EVENTS_TYPEBOT_START=false","PUSHER_EVENTS_TYPEBOT_CHANGE_STATUS=false","WA_BUSINESS_TOKEN_WEBHOOK=evolution","WA_BUSINESS_URL=https://graph.facebook.com","WA_BUSINESS_VERSION=v20.0","WA_BUSINESS_LANGUAGE=en_US","WEBHOOK_GLOBAL_ENABLED=false","WEBHOOK_GLOBAL_URL=","WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false","WEBHOOK_EVENTS_APPLICATION_STARTUP=false","WEBHOOK_EVENTS_QRCODE_UPDATED=true","WEBHOOK_EVENTS_MESSAGES_SET=true","WEBHOOK_EVENTS_MESSAGES_UPSERT=true","WEBHOOK_EVENTS_MESSAGES_EDITED=true","WEBHOOK_EVENTS_MESSAGES_UPDATE=true","WEBHOOK_EVENTS_MESSAGES_DELETE=true","WEBHOOK_EVENTS_SEND_MESSAGE=true","WEBHOOK_EVENTS_CONTACTS_SET=true","WEBHOOK_EVENTS_CONTACTS_UPSERT=true","WEBHOOK_EVENTS_CONTACTS_UPDATE=true","WEBHOOK_EVENTS_PRESENCE_UPDATE=true","WEBHOOK_EVENTS_CHATS_SET=true","WEBHOOK_EVENTS_CHATS_UPSERT=true","WEBHOOK_EVENTS_CHATS_UPDATE=true","WEBHOOK_EVENTS_CHATS_DELETE=true","WEBHOOK_EVENTS_GROUPS_UPSERT=true","WEBHOOK_EVENTS_GROUPS_UPDATE=true","WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE=true","WEBHOOK_EVENTS_CONNECTION_UPDATE=true","WEBHOOK_EVENTS_REMOVE_INSTANCE=false","WEBHOOK_EVENTS_LOGOUT_INSTANCE=false","WEBHOOK_EVENTS_LABELS_EDIT=true","WEBHOOK_EVENTS_LABELS_ASSOCIATION=true","WEBHOOK_EVENTS_CALL=true","WEBHOOK_EVENTS_TYPEBOT_START=false","WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false","WEBHOOK_EVENTS_ERRORS=false","WEBHOOK_EVENTS_ERRORS_WEBHOOK=","CONFIG_SESSION_PHONE_CLIENT=Evolution API","CONFIG_SESSION_PHONE_NAME=Chrome","QRCODE_LIMIT=30","QRCODE_COLOR=#175197","TYPEBOT_ENABLED=false","TYPEBOT_API_VERSION=latest","CHATWOOT_ENABLED=false","CHATWOOT_MESSAGE_READ=true","CHATWOOT_MESSAGE_DELETE=true","CHATWOOT_BOT_CONTACT=true","CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=postgresql://user:passwprd@host:5432/chatwoot?sslmode=disable","CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true","OPENAI_ENABLED=false","DIFY_ENABLED=false","CACHE_REDIS_ENABLED=true","CACHE_REDIS_URI=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"CACHE_REDIS_TTL=604800","CACHE_REDIS_PREFIX_KEY=evolution","CACHE_REDIS_SAVE_INSTANCES=false","CACHE_LOCAL_ENABLED=false","S3_ENABLED=false","S3_ACCESS_KEY=","S3_SECRET_KEY=","S3_BUCKET=evolution","S3_PORT=443","S3_ENDPOINT=s3.domain.com","S3_REGION=eu-west-3","S3_USE_SSL=true","AUTHENTICATION_API_KEY=429683C4C977415CAAFCCE10F7D57E11","AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true","LANGUAGE=en","PROXY_HOST=","PROXY_PORT=80","PROXY_PROTOCOL=http","PROXY_USERNAME=","PROXY_PASSWORD="].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"instances",mountPath:"/evolution/instances"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"excalidraw",meta:{name:"Excalidraw",description:"Excalidraw is an open-source virtual whiteboard designed to bring your creativity to life. It allows you to create beautiful hand-drawn like diagrams, wireframes, or any other visuals you can imagine. The app is equipped with an infinite, canvas-based whiteboard that supports a hand-drawn like style. It offers a wide range of tools including rectangle, circle, diamond, arrow, line, free-draw, eraser, and more. You can customize your drawings with the help of image support and shape libraries. The app also supports localization and allows you to export your creations to PNG, SVG, and clipboard. It also features an open format that lets you export drawings as an .excalidraw json file. The app is also equipped with features like arrow-binding, labeled arrows, undo/redo, and zoom and panning support. Excalidraw also offers real-time collaboration and end-to-end encryption for secure and efficient teamwork.",instructions:null,changeLog:[{date:"2023-3-27",de
1scription:"first release"}],links:[{label:"Website",url:"https://excalidraw.com/"},{label:"Github",url:"https://github.com/excalidraw/excalidraw"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"excalidraw"},appServiceImage:{type:"string",title:"App Service Image",default:"excalidraw/excalidraw:latest"}}},benefits:[{title:"Infinite, Canvas-Based Whiteboard",description:"Excalidraw provides an infinite, canvas-based whiteboard, allowing you to create and expand your ideas without any limitations."},{title:"Hand-Drawn Style",description:"With Excalidraw, you can create beautiful hand-drawn like diagrams, wireframes, or whatever you like, giving your work a unique and personal touch."},{title:"End-to-End Encryption",description:"Excalidraw ensures the security of your work with end-to-end encryption, keeping your creations safe and private."},{title:"Local-First Support",description:"All your data is saved locally in your browser, ensuring you have access to your work even when offline."}],features:[{title:"Free & Open-Source",description:"Excalidraw is a free and open-source application, making it accessible to everyone."},{title:"Customizable",description:"Excalidraw is highly customizable, allowing you to tailor your workspace to your needs."},{title:"Image Support",description:"Excalidraw supports image integration, enabling you to enhance your work with visuals."},{title:"Export Options",description:"Excalidraw allows you to export your work to PNG, SVG, clipboard, or as an .excalidraw json file, providing flexibility in how you save and share your creations."},{title:"Wide Range of Tools",description:"Excalidraw offers a wide range of tools including rectangle, circle, diamond, arrow, line, free-draw, eraser, and more, giving you the freedom to create as you wish."},{title:"Zoom and Panning Support",description:"Excalidraw supports zoom and panning, allowing you to navigate your canvas with ease."}],tags:["Productivity","Collaboration","Visualization"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"expenseowl",meta:{name:"ExpenseOwl",description:"ExpenseOwl is a simple, self-hosted expense tracker designed for quick expense entry and essential tracking features. Built with a modern UI and user-friendly interface, it makes managing your personal finances straightforward and efficient. The application focuses on simplicity and ease of use, allowing you to quickly log expenses, categorize spending, and track your budget without complexity. ExpenseOwl stores all your financial data securely with persistent storage, ensuring your expense history is always available. Perfect for individuals who want a lightweight, privacy-focused expense tracking solution without the overhead of complex financial management software. The application can be used with simple file-based storage or connected to a PostgreSQL database for more advanced data management needs.",instructions:null,changeLog:[{date:"2025-10-30",description:"Initial Template Release"}],links:[{label:"GitHub",url:"https://github.com/Tanq16/ExpenseOwl"},{label:"Docker Hub",url:"https://hub.docker.com/r/tanq16/expenseowl"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"expenseowl"},appServiceImage:{type:"string",title:"App Service Image",default:"tanq16/expenseowl:v4.1",description:"ExpenseOwl Docker image"}}},benefits:[{title:"Simple Expense Tracking",description:"Focus on what matters with a clean, intuitive interface designed for quick expense entry without unnecessary complexity or features."},{title:"Self-Hosted Privacy",description:"Keep complete control of your financial data by hosting ExpenseOwl on your own infrastructure with full privacy and data ownership."},{title:"Modern User Interface",description:"Enjoy a modern, responsive web interface that makes expense tracking a pleasant experience on any device."},{title:"Data Persistence",description:"All your expense data is stored persistently in a dedicated volume, ensuring your financial history is never lost across restarts or updates."}],features:[{title:"Quick Expense Entry",description:"Log expenses quickly with a streamlined interface designed for efficient data entry and minimal friction in daily use."},{title:"Expense Categorization",description:"Organize your spending with categories to better understand where your money goes and identify spending patterns."},{title:"Budget Tracking",description:"Keep track of your spending against budgets and financial goals with essential tracking features built into the application."},{title:"Modern Web Interface",description:"Access your expense tracker from any device with a web browser, featuring a clean, modern design that's easy to navigate."},{title:"Persistent Storage",description:"All expense data is stored in a persistent volume mounted at /app/data, ensuring your financial records are always safe and accessible."},{title:"Lightweight Deployment",description:"Runs efficiently with minimal resource requirements, making it perfect for home servers, Raspberry Pi, or any Docker-capable host."},{title:"Self-Hosted Solution",description:"Complete control over your financial data with no third-party services or cloud dependencies required for operation."},{title:"Optional Database Support",description:"Can be configured to use PostgreSQL for advanced data management needs while defaulting to simple file-based storage for easy setup."}],tags:["Finance","Expense Tracking","Budget","Self-Hosted","Personal Finance","Money Management","Lightweight"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"ezbookkeeping",meta:{name:"ezBookkeeping",description:"ezBookkeeping is a simple and easy-to-use personal bookkeeping application that helps you manage your personal finances. It provides features for tracking income, expenses, and account balances.",instructions:null,changeLog:[{date:"2025-04-21",description:"First Release"},{date:"2026-04-29",description:"Version bumped to SNAPSHOT-20260429"}],links:[{label:"Github",url:"https://github.com/mayswind/ezbookkeeping"},{label:"Documentation",url:"https://github.com/mayswind/ezbookkeeping/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ezbookkeeping"},appServiceImage:{type:"string",title:"App Service Image",default:"mayswind/ezbookkeeping:SNAPSHOT-20260429"}}},benefits:[{title:"Personal Finance Management",description:"Track and manage your personal finances with ease."},{title:"Simple Interface",description:"User-friendly interface for managing income and expenses."},{title:"Data Persistence",description:"Secure storage of your financial data with volume mounts."},{title:"Easy Setup",description:"Quick and simple setup process for personal bookkeeping."},{title:"Open Source",description:"Free and open-source personal finance management solution."}],features:[{title:"Income Tracking",description:"Record and categorize your income sources."},{title:"Expense Management",description:"Track and categorize your expenses."},{title:"Account Balances",description:"Monitor your account balances and financial health."},{title:"Data Export",description:"Export your financial data for backup or analysis."},{title:"Multi-Currency Support",description:"Support for multiple currencies in your financial records."}],tags:["Finance","Bookkeeping","Personal Finance","Budgeting","Open Source"],logo:"logo.png",screenshots:["screenshot.png","screenshot1.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/ezbookkeeping/data"},{type:"volume",name:"storage",mountPath:"/ezbookkeeping/storage"}]}}),{services:t}}},{slug:"faraday",meta:{name:"Faraday",description:"Faraday is a powerful open-source vulnerability management platform designed to streamline security assessments and pentesting workflows. It provides centralized visibility, real-time collaboration, and automation capabilities to help security teams manage vulnerabilities efficiently. Faraday supports integration with multiple security tools, offering a unified interface to collect, analyze, and report findings. With its scalable architecture and robust API, Faraday enables teams to enhance their security operations while maintaining compliance and improving response times.",instructions:"Username is faraday; check for the password in the Overview Console logs.",changeLog:[{date:"2025-01-30",description:"First release"},{date:"2025-02-25",description:"Version bumped to 5.11.0"},{date:"2025-07-21",description:"Version bumped to 5.15.1"},{date:"2025-12-25",description:"Version bumped to 5.18.0"},{date:"2026-02-21",description:"Version bumped to 5.19.0"}],links:[{label:"Website",url:"https://www.faradaysec.com/"},{label:"Documentation",url:"https://docs.faradaysec.com/"},{label:"Github",url:"https://github.com/infobyte/faraday"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","redisImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"faraday"},appServiceImage:{type:"string",title:"App Service Image",default:"faradaysec/faraday:5.19.0"},redisImage:{type:"string",title:"Redis Image",default:"redis:7.4.1"}}},benefits:[{title:"Centralized Vulnerability Management",description:"Faraday provides a unified platform for managing security assessments, allowing teams to track and remediate vulnerabilities effectively."},{title:"Real-Time Collaboration",description:"Enable security teams to work together efficiently with shared workspaces, real-time updates, and collaborative issue tracking."},{title:"Extensive Integrations",description:"Faraday integrates with a wide range of security tools, including vulnerability scanners, exploit frameworks, and reporting systems."},{title:"Automated Workflows",description:"Automate vulnerability management tasks, including data collection, correlation, and reporting, to improve efficiency."},{title:"Scalable & Flexible",description:"Faraday supports deployments for teams of any size, from small security groups to enterprise-level security operations centers (SOCs)."}],features:[{title:"Multi-Tool Integration",description:"Collect data from various security tools, normalizing and aggregating findings for streamlined analysis."},{title:"Interactive Dashboard",description:"Gain insights into security assessments with an interactive, data-driven dashboard providing real-time analytics."},{title:"Customizable Reporting",description:"Generate detailed security reports with customizable templates and automated data correlation."},{title:"API & Web Interface",description:"Extend functionality with a powerful REST API and manage security assessments via an intuitive web interface."},{title:"Role-Based Access Control (RBAC)",description:"Implement granular permissions and access controls for managing users and teams securely."},{title:"Compliance & Risk Management",description:"Track vulnerabilities and ensure compliance with security standards such as PCI-DSS, ISO 27001, and NIST."}],tags:["Vulnerability Management","Pentesting","Security Operations","Open Source","Cybersecurity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PGSQL_USER=postgres","PGSQL_PASSWD=".concat(a),"PGSQL_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"PGSQL_DBNAME=$(PROJECT_NAME)","REDIS_SERVER=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:5985}],deploy:{command:"/entrypoint.sh"},mounts:[{type:"volume",name:"faraday",mountPath:"/home/faraday/.faraday"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-redis"),source:{type:"image",image:e.redisImage},deploy:{command:"redis-server"},mounts:[{type:"volume",name:"redis-data",mountPath:"/data"}]}}),{services:t}}},{slug:"farmos",meta:{name:"farmOS",description:"farmOS is a web-based farm management and record-keeping platform built on Drupal. It helps track assets, logs, plans, and maps for agricultural operations while remaining fully self-hosted and extensible.",instructions:"After deployment, open your domain and complete the farmOS web installer. In the database step, choose SQLite and use a database file path under `sites/default/files` so it remains persistent. This template persists the farmOS `sites` and `keys` directories for settings, uploaded files, SQLite database storage, and key material across upgrades.",changeLog:[{date:"2026-04-13",description:"Initial template release"}],links:[{label:"Website",url:"https://farmos.org/"},{label:"Documentation",url:"https://farmos.org/hosting/install/"},{label:"Github",url:"https://github.com/farmOS/farmOS"},{label:"Docker Hub",url:"https://hub.docker.com/r/farmos/farmos"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"farmos"},appServiceImage:{type:"string",title:"App Service Image",default:"farmos/farmos:4.0.0"}}},benefits:[{title:"Purpose-built for farm records",description:"Track assets, field activities, equipment, and observations in one centralized system designed for agricultural workflows."},{title:"Open-source and extensible",description:"Build on Drupal's ecosystem with modules, integrations, and custom data models tailored to your farm operations."},{title:"Self-hosted data ownership",description:"Keep sensitive operational data under your control while still providing a modern, web-based management interface."}],features:[{title:"Asset and log management",description:"Create structured records for fields, animals, equipment, and operational events with reusable log types."},{title:"Mapping and planning tools",description:"Organize locations, plans, and timelines to support seasonal planning and day-to-day execution."},{title:"Persistent application state",description:"Persists `sites` and `keys` directories so uploads, configuration, and key files survive container updates."}],tags:["Agriculture","Farm Management","Record Keeping","Drupal","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"sites",mountPath:"/opt/drupal/web/sites"},{type:"volume",name:"keys",mountPath:"/opt/drupal/keys"}]}}),{services:t}}},{slug:"fathom",meta:{name:"Fathom",description:"Fathom is a simple, privacy-focused alternative to Google Analytics. It provides fast, lightweight and privacy-first website analytics without compromising user data.",instructions:"Open Fathom from your domain, complete the initial admin setup, then add your website and embed the generated tracking script in your site pages.",changeLog:[{date:"2024-04-08",description:"First Release"}],links:[{label:"Website",url:"https://usefathom.com"},{label:"Documentation",url:"https://usefathom.com/docs"},{label:"GitHub",url:"https://github.com/usefathom/fathom"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fathom"},appServiceImage:{type:"string",title:"App Service Image",default:"usefathom/fathom:version-1.2.1"}}},benefits:[{title:"Privacy-Focused",description:"No personal data collection, GDPR compliant by default"},{title:"Lightning Fast",description:"Lightweight script that won't slow down your website"},{title:"Simple Interface",description:"Clean, intuitive dashboard for easy analytics tracking"},{title:"Cookie-Free",description:"Track website stats without cookie banners or popups"}],features:[{title:"Real-Time Analytics",description:"View your website statistics in real-time"},{title:"Multiple Sites",description:"Track analytics for multiple websites from one dashboard"},{title:"Custom Domains",description:"Use your own domain for the tracking script"},{title:"Goal Tracking",description:"Set up and monitor custom goals and events"},{title:"Data Export",description:"Export your analytics data in various formats"}],tags:["Analytics","Privacy","GDPR","Web Analytics","Statistics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"faved",meta:{name:"Faved",description:"Faved is a privately-hosted, open-source bookmark manager with customizable nested tags, designed for handling large collections efficiently. It offers automatic title and description fetching, duplicate detection, powerful search and filtering, bulk actions, and a responsive design across all devices.",instructions:'After deployment, access the web interface and click "Create Database" to initialize the SQLite database. All bookmarks and data are stored in the persistent storage volume.',changeLog:[{date:"2026-06-15",description:"First Release"}],links:[{label:"Website",url:"https://faved.dev"},{label:"Documentation",url:"https://faved.dev/docs/getting-started/introduction"},{label:"Github",url:"https://github.com/denho/faved"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"faved"},appServiceImage:{type:"string",title:"App Service Image",default:"denho/faved:2.9.0"}}},benefits:[{title:"Nested Tag System",description:"Organize bookmarks with customizable nested tags and color-coded hierarchies for efficient collection management."},{title:"Self-Hosted and Private",description:"All data stays on your server with no third-party dependencies. Your bookmarks never leave your network."},{title:"Auto-Fetch Metadata",description:"Automatically retrieves page titles, descriptions, and preview images when saving bookmarks."},{title:"Duplicate Detection",description:"Intelligently identifies and prevents duplicate bookmarks from cluttering your collection."},{title:"Lightweight SQLite Storage",description:"Uses file-based SQLite storage with no external database required, keeping deployment simple and efficient."}],features:[{title:"Bookmark Management",description:"Add, organize, search, and filter large bookmark collections efficiently with a clean interface."},{title:"Nested Tags",description:"Create hierarchical tag structures with color customization to categorize bookmarks exactly how you think."},{title:"Bulk Actions",description:"Perform operations on multiple bookmarks simultaneously to manage large collections quickly."},{title:"Responsive Design",description:"Clean, modern interface built with Tailwind CSS that works across desktop and mobile devices."},{title:"PWA Support",description:"Progressive Web App support for installation on iOS and Android devices for a native app feel."},{title:"Apple Shortcuts Integration",description:"Native integration with Apple Shortcuts for automated bookmark saving from iOS and macOS."}],tags:["Bookmarks","Organization","Productivity","Self-Hosted","Notes"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"storage",mountPath:"/var/www/html/storage"}]}}),{services:t}}},{slug:"feedpushr",meta:{name:"Feedpushr",description:"Feedpushr is a simple and fast RSS/Atom feed aggregator that can push notifications to various services. It supports multiple output formats and can be used to monitor and aggregate RSS/Atom feeds.",instructions:null,changeLog:[{date:"2025-04-24",description:"First Release"}],links:[{label:"Github",url:"https://github.com/ncarlier/feedpushr"},{label:"Documentation",url:"https://docs.readflow.app/en/integrations/examples/feedpushr/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"feedpushr"},appServiceImage:{type:"string",title:"App Service Image",default:"ncarlier/feedpushr:latest"}}},benefits:[{title:"Simple Feed Aggregation",description:"Feedpushr provides a simple way to aggregate RSS/Atom feeds and push notifications to various services."},{title:"Multiple Output Formats",description:"Supports multiple output formats and can be integrated with various notification services."},{title:"Easy to Use",description:"Simple configuration and easy to set up, making it perfect for monitoring and aggregating feeds."}],features:[{title:"RSS/Atom Support",description:"Supports both RSS and Atom feed formats for comprehensive feed aggregation."},{title:"Multiple Outputs",description:"Can push notifications to various services and supports multiple output formats."},{title:"REST API",description:"Provides a REST API for easy integration and automation."},{title:"Web Interface",description:"Includes a web interface for easy management and monitoring of feeds."},{title:"Filtering",description:"Supports filtering of feed items based on various criteria."},{title:"Customizable",description:"Highly customizable with support for custom output formats and filters."}],tags:["RSS","Atom","Feed","Aggregator","Notifications"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},ports:[{published:8080,target:8080}]}}),{services:t}}},{slug:"fenrus",meta:{name:"Fenrus",description:"Fenrus is a sleek and modern dashboard application designed to provide a centralized hub for accessing your self-hosted services and applications. It offers a clean, customizable interface that allows you to organize your various web applications and resources in a single, easy-to-navigate dashboard. Fenrus supports both dark and light themes, custom backgrounds, and different layout options to match your preferences. It's perfect for home server enthusiasts who want a beautiful and functional starting point for their self-hosted ecosystem.",instructions:"Access the dashboard at the configured port to start customizing your experience",changeLog:[{date:"2025-04-17",description:"first release"}],links:[{label:"Docker",url:"https://hub.docker.com/r/revenz/fenrus"},{label:"GitHub",url:"https://github.com/revenz/Fenrus"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fenrus"},appServiceImage:{type:"string",title:"App Service Image",default:"revenz/fenrus:23.08"},timezone:{type:"string",title:"Timezone",default:"Pacific/Auckland"}}},benefits:[{title:"Centralized Dashboard",description:"Fenrus provides a single, unified interface for accessing all your self-hosted applications and services, eliminating the need to remember multiple URLs."},{title:"Customizable Interface",description:"Personalize your dashboard with different themes, layouts, and backgrounds to create an experience that matches your preferences and workflow."},{title:"Organized Access",description:"Group your applications into categories and organize them in a way that makes the most sense for your specific needs and usage patterns."}],features:[{title:"Multiple Themes",description:"Choose between light and dark themes or customize the appearance to suit your visual preferences."},{title:"Application Categories",description:"Organize your applications into logical categories for easier navigation and improved workflow efficiency."},{title:"Custom Backgrounds",description:"Set custom background images or colors to personalize your dashboard experience."},{title:"Responsive Design",description:"Access your dashboard from any device with a fully responsive design that adapts to different screen sizes."},{title:"Quick Access",description:"Quickly access your most frequently used services with a clean, intuitive interface designed for efficiency."}],tags:["Dashboard","Home Lab","Self-hosted","Web Interface","Organization"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=".concat(e.timezone)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"ferron",meta:{name:"Ferron",description:"Ferron is a fast, memory-safe web server written in Rust. This template deploys Ferron with the official Docker image and exposes it through your Easypanel domain so you can start serving web traffic quickly.",instructions:"Deploy the template, then configure Ferron by mounting your own configuration and content files as needed for your use case.",changeLog:[{date:"2026-04-10",description:"Initial template release"}],links:[{label:"Website",url:"https://www.ferronweb.org/"},{label:"Documentation",url:"https://www.ferronweb.org/docs/"},{label:"GitHub",url:"https://github.com/ferronweb/ferron"},{label:"Docker Hub",url:"https://hub.docker.com/r/ferronserver/ferron"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ferron"},appServiceImage:{type:"string",title:"Ferron Image",default:"ferronserver/ferron:2-debian"}}},benefits:[{title:"Fast Rust web server",description:"Run a high-performance, memory-safe web server designed for modern workloads."},{title:"Simple deployment",description:"Start Ferron quickly with the official container image and default networking setup."},{title:"Flexible hosting",description:"Use Ferron for static hosting, reverse proxying, or mixed web server setups."}],features:[{title:"Official image deployment",description:"Uses the official `ferronserver/ferron` Docker image for predictable deployments."},{title:"Domain-ready setup",description:"Routes your Easypanel domain directly to the Ferron service."},{title:"Production-oriented server",description:"Supports modern web server use cases with a focus on reliability and safety."}],tags:["Web Server","Reverse Proxy","Rust","Self-Hosted"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"fider",meta:{name:"Fider",description:"Fider is a feature-rich solution designed to help you understand and prioritize your customers' needs. It allows your customers to share their ideas, vote, and discuss what they need the most. With Fider, you can keep everyone informed about the status of their suggestions, whether they are started, completed, or declined. The app offers a one-click sign-in feature, making it easy for visitors to contribute. You can customize Fider to match your brand's identity, and even control access to your site by making it private. The app also supports multiple languages, making it accessible to a global audience. Fider allows you to tag your content for easy organization and uses the popular Markdown language for text styling. It also provides a public API for integration into your process and can integrate with any system that supports Webhook. With Fider, you can collect valuable feedback, respond to suggestions, and keep your audience in the loop, all in one place.",instructions:"Fider REQUIRES email in order for installation to work!",changeLog:[{date:"2026-05-19",description:"Updated to v0.35.0"},{date:"2022-11-19",description:"first release"},{date:"2025-01-14",description:"Version bumped to SHA_a1553876aed65a35e1171831b3dd467749eca87b"},{date:"2025-02-25",description:"Version bumped to SHA_49128a57113c065edc6068bf568926a066c463e5"},{date:"2025-12-25",description:"Version bumped to v0.32.0"}],links:[{label:"Website",url:"https://fider.io"},{label:"Documentation",url:"https://fider.io/docs"},{label:"Github",url:"https://github.com/getfider/fider"}
1],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","emailNoReply","emailHost","emailPort","emailUsername","emailPassword"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"fider"},appServiceImage:{type:"string",title:"App Service Image",default:"getfider/fider:v0.35.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"fider-db"},emailNoReply:{type:"string",title:"No Reply Email"},emailHost:{type:"string",title:"Email Host"},emailPort:{type:"number",title:"Email Port",default:587},emailUsername:{type:"string",title:"Email Username"},emailPassword:{type:"string",title:"Email Password"}}},benefits:[{title:"Prioritize Customer Needs",description:"Fider allows you to prioritize what your customers really need. By giving your customers a voice, they can tell you what they need, allowing you to spend less time guessing and more time building the right product."},{title:"Stay Informed",description:"Fider keeps everyone informed. Whenever you start, complete or decline a suggestion, Fider will notify everyone that subscribed to that topic, ensuring everyone is up-to-date."},{title:"Easy Sign In",description:"Fider makes it easy for visitors to contribute. With one click sign in via various platforms, visitors are only one click away from contributing."},{title:"Customizable",description:"Fider allows you to make the platform your own. With custom CSS features, you can style Fider the way you want, including your logo, your colors, and your identity."}],features:[{title:"Share Ideas, Vote and Discuss",description:"Fider provides a feature-packed solution for all your needs. It allows you to share ideas, vote and discuss, giving voice to your community and getting valuable suggestions."},{title:"Private Site",description:"Fider offers the option to control access to your site by making it private, ensuring only the right people have access."},{title:"Public API",description:"Fider provides a complete API, giving you total control to integrate Fider into your process."},{title:"Multi-language",description:"Fider is translated in 10+ languages, such as English, Spanish, German, French and Portuguese, making it accessible to a wide range of users."},{title:"Organize Your Content",description:"Fider allows you to tag your content to make it easier to find, group and decide. Tags can be either Public or Private."},{title:"Markdown",description:"Fider allows you to style your text with the popular Markdown markup language, making it easy to create engaging content."},{title:"Your Own Domain",description:"When using our hosted service, you can use your own domain and get a free TLS certificate to keep it secure."}],tags:["Productivity","Feedback","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(512),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["BASE_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"JWT_SECRET=".concat(a),"EMAIL_NOREPLY=".concat(e.emailNoReply),"EMAIL_SMTP_HOST=".concat(e.emailHost),"EMAIL_SMTP_PORT=".concat(e.emailPort),"EMAIL_SMTP_USERNAME=".concat(e.emailUsername),"EMAIL_SMTP_PASSWORD=".concat(e.emailPassword),"EMAIL_SMTP_ENABLE_STARTTLS=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"filebrowser",meta:{name:"Filebrowser",description:"File Browser is a versatile app designed to provide a file managing interface within a specified directory. It's a powerful tool that allows you to upload, delete, preview, rename, and edit your files with ease. The app supports the creation of multiple users, with each user having their own directory, making it an ideal solution for managing files in a multi-user environment. File Browser also offers a range of customization options, including the ability to change the way users authenticate with the server, execute shell commands before or after certain events, and personalize the installation with custom branding. It can be used as a standalone app, offering a comprehensive and user-friendly solution for all your file management needs.",instructions:'Default credentials: User:"admin" Password:"admin"',changeLog:[{date:"2022-08-09",description:"first release"},{date:"2023-2-24",description:"Update to v2.23.0"},{date:"2025-02-25",description:"Version bumped to v2.32.0"},{date:"2025-07-21",description:"Version bumped to v2.40.2"},{date:"2025-12-25",description:"Version bumped to v2.52.0"},{date:"2026-02-21",description:"Version bumped to v2.59.0"},{date:"2026-04-29",description:"Version bumped to v2.63.2"}],links:[{label:"Website",url:"https://filebrowser.org/"},{label:"Github",url:"https://github.com/filebrowser/filebrowser"}],contributors:[{name:"Bedeoan Raul",url:"https://github.com/bedeoan"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"filebrowser"},appServiceImage:{type:"string",title:"App Service Image",default:"filebrowser/filebrowser:v2.63.2"}}},benefits:[{title:"Efficient File Management",description:"File Browser offers a streamlined interface for managing files within a specified directory. It simplifies tasks such as uploading, deleting, previewing, renaming, and editing files."},{title:"Multi-User Support",description:"The app supports the creation of multiple users, with each user having their own directory. This makes it an ideal tool for collaborative environments or shared systems."},{title:"Standalone Application",description:"File Browser can be used as a standalone app, providing a dedicated platform for file management without the need for additional software."}],features:[{title:"Authentication Method",description:"File Browser allows you to change the way the user authenticates with the server, providing flexibility in terms of security and access control."},{title:"Command Runner",description:"This feature enables you to execute any shell command you want before or after a certain event, providing a high level of customization and control."},{title:"Custom Branding",description:"File Browser allows you to customize your installation by changing its name, adding a global custom style sheet, and using your own logotype."}],tags:["File Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"bind",hostPath:"/",mountPath:"/srv"},{type:"volume",name:"database",mountPath:"/database"},{type:"file",content:JSON.stringify({port:80,baseURL:"",address:"",log:"stdout",database:"/database/database.db",root:"/srv"},null,2),mountPath:"/.filebrowser.json"}],deploy:{zeroDowntime:!1}}}),{services:t}}},{slug:"filegator",meta:{name:"Filegator",description:"Filegator is a free, open-source, self-hosted web application for managing files and folders. It provides a user-friendly interface for organizing, uploading, downloading, and sharing files with comprehensive file management capabilities. Built with PHP, it offers multi-user support with different access permissions, roles, and home folders. All basic file operations are supported including copy, move, rename, edit, create, delete, preview, zip, unzip, download, and upload. The file upload feature supports drag & drop, progress bar, pause and resume functionality with chunked uploads for large files. Perfect for teams, students, field workers, and anyone needing a simple yet powerful file sharing and management solution.",instructions:"Login using credentials - admin/admin123",changeLog:[{date:"2025-08-04",description:"First release"},{date:"2026-02-21",description:"Version bumped to 7.13.3"},{date:"2026-04-29",description:"Version bumped to 7.14.0"}],links:[{label:"Github",url:"https://github.com/filegator/filegator"},{label:"Documentation",url:"https://docs.filegator.io"},{label:"Website",url:"https://filegator.io"}],contributors:[{name:"Assistant",url:"https://github.com"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"filegator"},appServiceImage:{type:"string",title:"App Service Image",default:"filegator/filegator:v7.14.0"}}},benefits:[{title:"User-Friendly File Management",description:"Simple and intuitive interface that makes file management easy for users of all technical levels. No complex navigation or confusing menus."},{title:"Multi-User Support",description:"Support for multiple users with different access permissions, roles, and individual home folders for organized file sharing."},{title:"Comprehensive File Operations",description:"All essential file operations including copy, move, rename, edit, create, delete, preview, zip, unzip, download, and upload functionality."},{title:"Advanced Upload Features",description:"Drag & drop file uploads with progress bars, pause and resume capability, and chunked uploads for handling large files efficiently."},{title:"Flexible Storage Options",description:"Manage files in your local repository or connect to other storage adapters for extended storage capabilities."},{title:"Perfect for Teams and Organizations",description:"Ideal for sharing folders with colleagues, students uploading work, field workers submitting data, or as a cloud backup solution."}],features:[{title:"File Browser",description:"Clean and responsive file browser interface with folder navigation, file previews, and search capabilities."},{title:"User Management",description:"Administrative panel for managing users, permissions, and access controls with role-based security."},{title:"Bulk Operations",description:"Select multiple files and folders for batch operations like download, delete, move, or copy to save time."},{title:"File Sharing",description:"Easy file and folder sharing with download links and access control for secure collaboration."}],tags:["File Management","Storage","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"repository",mountPath:"/var/www/filegator/repository"}]}}),{services:t}}},{slug:"filepizza",meta:{name:"FilePizza",description:"FilePizza is a peer-to-peer file sharing platform that enables secure, direct file transfers between users without storing files on servers. Using WebRTC technology, it creates direct connections between browsers for fast, private file sharing. The platform includes Redis for session management and COTURN server for NAT traversal, ensuring reliable connections across different network configurations. Perfect for sharing large files securely without upload limits or storage concerns.",instructions:null,changeLog:[{date:"2025-07-23",description:"Initial release (8ea276d)"},{date:"2025-12-25",description:"Version bumped to 60704b4"},{date:"2026-04-29",description:"Version bumped to 3258673"}],links:[{label:"Website",url:"https://file.pizza"},{label:"GitHub",url:"https://github.com/kern/filepizza"},{label:"Documentation",url:"https://github.com/kern/filepizza#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","coturnServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"filepizza"},appServiceImage:{type:"string",title:"App Service Image",default:"kern/filepizza:3258673"},coturnServiceImage:{type:"string",title:"COTURN Service Image",default:"coturn/coturn:4.7"}}},benefits:[{title:"Direct Peer-to-Peer Transfer",description:"Files are transferred directly between users using WebRTC technology, ensuring maximum privacy and speed without server-side storage."},{title:"No File Size Limits",description:"Transfer files of any size without worrying about upload limits or storage quotas imposed by traditional file sharing services."},{title:"Enhanced Privacy & Security",description:"Files never touch external servers during transfer, providing end-to-end encryption and complete data privacy."},{title:"Real-time Transfer Status",description:"Monitor transfer progress in real-time with detailed status updates and connection information for both sender and receiver."},{title:"Cross-Platform Compatibility",description:"Works seamlessly across all modern browsers and operating systems without requiring additional software installation."},{title:"NAT Traversal Support",description:"Built-in COTURN server ensures reliable connections even through firewalls and NAT configurations."}],features:[{title:"WebRTC File Sharing",description:"Utilizes WebRTC technology for direct browser-to-browser file transfers with automatic connection establishment."},{title:"Redis Session Management",description:"Persistent session storage using Redis for reliable connection tracking and metadata management."},{title:"COTURN STUN/TURN Server",description:"Integrated COTURN server provides STUN/TURN services for NAT traversal and firewall bypass capabilities."},{title:"Real-time Progress Tracking",description:"Live transfer progress indicators with speed metrics and estimated completion times for ongoing transfers."},{title:"Multiple File Support",description:"Support for transferring multiple files simultaneously with individual progress tracking for each file."},{title:"Connection Status Monitoring",description:"Real-time connection status with detailed network information and troubleshooting capabilities."},{title:"Automatic Network Detection",description:"External IP detection and relay IP configuration for optimal connection establishment across networks."},{title:"Browser Compatibility",description:"Compatible with all modern browsers supporting WebRTC, including Chrome, Firefox, Safari, and Edge."},{title:"Responsive Web Interface",description:"Clean, intuitive web interface that works perfectly on desktop and mobile devices for easy file sharing."},{title:"Zero Server Storage",description:"No files are stored on servers, ensuring complete privacy and eliminating storage costs and concerns."}],tags:["File Sharing","Peer-to-Peer","WebRTC","Privacy","Direct Transfer","Real-time","Secure","Cross-Platform"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["PORT=8080","REDIS_URL=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379")].join("\n")}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-coturn"),source:{type:"image",image:e.coturnServiceImage},env:["DETECT_EXTERNAL_IP=yes","DETECT_RELAY_IP=yes"].join("\n"),deploy:{command:'docker-entrypoint.sh -n --log-file=stdout --redis-userdb="ip=$(PROJECT_NAME)_'.concat(e.appServiceName,'-redis connect_timeout=30"')},ports:[{published:3478,target:3478,protocol:"tcp"},{published:3478,target:3478,protocol:"udp"},{published:5349,target:5349,protocol:"tcp"},{published:5349,target:5349,protocol:"udp"}]}}),{services:t}}},{slug:"filerise",meta:{name:"Filerise",description:"Filerise is a modern file sharing and management platform that allows you to upload, organize, and share files securely. It provides a clean web interface for file management with features like user authentication, file uploads, metadata management, and configurable upload limits.",instructions:"On first launch, you will be guided to create the initial admin user.",changeLog:[{date:"2025-09-22",description:"First release"},{date:"2026-04-29",description:"Version bumped to v3.12.0"}],links:[{label:"Website",url:"https://filerise.net"},{label:"Documentation",url:"https://filerise.net/docs/"},{label:"Github",url:"https://github.com/error311/filerise"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"filerise"},appServiceImage:{type:"string",title:"App Service Image",default:"error311/filerise-docker:v3.12.0"},totalUploadSize:{type:"string",title:"Total Upload Size",description:"Maximum total upload size allowed",default:"10G"}}},benefits:[{title:"Modern File Management",description:"Filerise provides a modern, intuitive interface for managing and sharing files with advanced features."},{title:"User Authentication",description:"Built-in user authentication system allows you to control access to your files and manage multiple users."},{title:"Configurable Upload Limits",description:"Set custom upload size limits to control storage usage and prevent abuse."},{title:"Metadata Management",description:"Advanced metadata tracking and management for better file organization and search capabilities."},{title:"Self-Hosted Solution",description:"Complete control over your file sharing platform with no external dependencies or data sharing."}],features:[{title:"File Upload & Download",description:"Easy file upload and download with progress tracking and error handling."},{title:"User Management",description:"Create and manage user accounts with different access levels and permissions."},{title:"File Organization",description:"Organize files in folders and categories with advanced search and filtering options."},{title:"Metadata Tracking",description:"Comprehensive metadata collection and management for all uploaded files."},{title:"Security Features",description:"Secure file sharing with configurable access controls and persistent token management."},{title:"Web Interface",description:"Clean, responsive web interface that works on desktop and mobile devices."},{title:"Upload Size Control",description:"Configurable upload size limits to manage storage and prevent system overload."}],tags:["File Management","File Sharing","Web Interface","Self-Hosted","Storage"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"filerise-uploads",mountPath:"/var/www/uploads"},{type:"volume",name:"filerise-users",mountPath:"/var/www/users"},{type:"volume",name:"filerise-metadata",mountPath:"/var/www/metadata"}],env:["TIMEZONE=UTC","TOTAL_UPLOAD_SIZE=".concat(e.totalUploadSize),"SECURE=false","PERSISTENT_TOKENS_KEY=".concat(a)].join("\n")}}),{services:t}}},{slug:"filerun",meta:{name:"Filerun",description:"FileRun is a private, fully controlled file management and sharing solution. It's like having your own personal Google Drive, but with complete control and privacy. FileRun allows you to instantly access your files on any server without the need for importing or scanning. It supports access via FTP, SMB, and WebDAV, reflecting any changes made to your files instantly. You can sync files using desktop apps and access your files on the go with compatible mobile apps. FileRun is also great for managing photos with fast thumbnail and preview generation, timeline browsing, and metadata support. It even allows you to group photos from various folders into virtual albums that you can share online. The new virtual drive feature lets you access files directly from your computer without using up all your disk space. FileRun also supports collaboration with guest users and file requests for easy file collection and submission. It also integrates with various plugins for file editing, viewing, and conversion. FileRun ensures your files are safe with automatic file versioning and a trash folder for deleted files. It also allows for full customization to match your branding. FileRun is secure, loaded with features, and offers a smooth and intuitive mobile experience.",instructions:null,changeLog:[{date:"2023-3-14",description:"first release"},{date:"2025-12-25",description:"Version bumped to 8.4"}],links:[{label:"Website",url:"https://filerun.com/"},{label:"Documentation",url:"https://docs.filerun.com"}
1],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"filerun"},appServiceImage:{type:"string",title:"App Service Image",default:"filerun/filerun:8.4"},databaseServiceName:{type:"string",title:"Database Service Name",default:"filerun-db"}}},benefits:[{title:"Private and Controlled File Management",description:"FileRun is like your private Google Drive, offering full control over your files. It runs efficiently on any hardware, including Linux, Windows, VPS, Shared hosting, NAS, etc. No import or scanning is required, and you get instant web access to your files."},{title:"Effortless File Synchronization",description:"FileRun allows you to sync files using desktop apps and access them from anywhere using compatible mobile apps. It also offers a virtual drive for direct access to files from your computer without using all of your disk space."},{title:"Advanced Photo Management",description:"FileRun is great for managing photos with fast thumbnail and preview generation. It supports timeline browsing, sorting photos and videos chronologically, and grouping photos from various folders into virtual albums that you can share online."},{title:"Secure and Customizable",description:"FileRun ensures the safety of your files with automatic file versioning and a trash folder for deleted files. It also allows for complete customization to match your own branding, including background images, colors, and logos."}],features:[{title:"File Access and Management",description:"FileRun allows you to point to where you keep the files on your server for instant web access. You can upload, download, or manage the same files, and all changes made reflect via FileRun without delay."},{title:"Metadata Support",description:"FileRun automatically extracts and indexes information Exif, XMP, and IPTC, allowing you to search photos by keywords, dates, author, and more. You can also add custom metadata fields for any additional information you want to attach to the pictures."},{title:"File Requests and Guest Users",description:"FileRun allows you to collaborate with other people without creating accounts for them. You can send file requests to collect and receive files from anyone right into your FileRun user account with just a link."},{title:"Various Plugins and File Conversion",description:"FileRun supports various plugins for creating, editing, and previewing Office files, text files, and more. It also allows you to convert files from one format to another and manipulate PDF documents."},{title:"Mobile Support and Extendability",description:"FileRun offers fantastic mobile support, adapting to screens of any size for a smooth and intuitive experience. It also allows PHP web developers to develop plugins for viewing, creating, or manipulating files."}],tags:["File Management","Storage","Privacy"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["FR_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"FR_DB_PORT=3306","FR_DB_USER=mysql","FR_DB_PASS=".concat(a),"FR_DB_NAME=$(PROJECT_NAME)","APACHE_RUN_USER=www-data","APACHE_RUN_USER_ID=33","APACHE_RUN_GROUP=www-data","APACHE_RUN_GROUP_ID=33"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"html",mountPath:"/var/www/html"},{type:"volume",name:"files",mountPath:"/user-files"}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"fileshelter",meta:{name:"FileShelter",description:"A simple and secure file sharing application that allows users to upload and share files with a clean web interface. Files are stored on the server and can be accessed through unique URLs.",instructions:null,changeLog:[{date:"2025-05-05",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to 6.4.0"}],links:[{label:"GitHub",url:"https://github.com/epoupon/fileshelter"},{label:"Docker Hub",url:"https://hub.docker.com/r/epoupon/fileshelter"},{label:"Website",url:"https://fileshelter-demo.poupon.dev"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fileshelter"},appServiceImage:{type:"string",title:"App Service Image",default:"epoupon/fileshelter:6.4.0"}}},benefits:[{title:"Simple Sharing",description:"Easy-to-use file sharing platform"},{title:"Secure Storage",description:"Files are stored securely on the server"},{title:"Clean Interface",description:"Modern and intuitive web interface"},{title:"Open Source",description:"Free and open-source file sharing solution"}],features:[{title:"File Upload",description:"Upload files through web interface"},{title:"Unique URLs",description:"Share files through unique URLs"},{title:"File Management",description:"Manage uploaded files easily"},{title:"Persistent Storage",description:"Files are stored persistently"},{title:"Web Interface",description:"Clean and responsive web UI"}],tags:["File Sharing","Self-hosted","Open Source"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5091}],mounts:[{type:"volume",name:"fileshelter-data",mountPath:"/var/fileshelter"}]}}),{services:t}}},{slug:"filestash",meta:{name:"Filestash",description:"Filestash is a self-hosted file management and sharing platform designed for individuals and teams. It offers a secure, user-friendly interface to store, organize, and access all your files from one centralized location. With supp
1ort for multiple file types, seamless integration with popular storage backends, tagging, and powerful search functionality, Filestash simplifies file management and boosts productivity. Whether working on personal projects or collaborating with your team, Filestash ensures your files are always accessible and easy to manage.",instructions:null,changeLog:[{date:"2025-02-10",description:"First Release"}],links:[{label:"Documentation",url:"https://www.filestash.app/docs/"},{label:"Github",url:"https://github.com/mickael-kerjean/filestash"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Service Name",default:"filestash"},appServiceImage:{type:"string",title:"Service Image",default:"machines/filestash:latest"}}},benefits:[{title:"Centralized File Management",description:"Filestash provides a single, secure location to store all your files, making it easy to manage and access them whenever you need."},{title:"Enhanced Productivity",description:"With features like tagging, powerful search functionality, and integration with various storage providers, Filestash helps you quickly locate and reuse your files, improving your workflow."},{title:"Collaboration and Sharing",description:"Easily share files with teammates or external collaborators, enabling efficient teamwork and improving project outcomes."}],features:[{title:"File Preview and Editing",description:"View and edit your files directly in the browser without needing additional software."},{title:"Storage Backend Support",description:"Connect and manage files from a variety of storage backends, including FTP, SFTP, WebDAV, and cloud services."},{title:"Secure Access",description:"Implement user authentication and role-based access controls to keep your files private and secure."},{title:"Powerful Search",description:"Use advanced search features to quickly locate files by name, tags, or metadata."},{title:"Integration Options",description:"Integrate Filestash with other tools and services through its API and plugins, allowing seamless workflows."}],tags:["File Management","Collaboration","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["APPLICATION_URL=https://$(PRIMARY_DOMAIN)","CANARY=true","OFFICE_FILESTASH_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,":8334")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8334}],mounts:[{type:"volume",name:"filestash",mountPath:"/app/data/state/"}]}}),{services:t}}},{slug:"filewizard",meta:{name:"FileWizard",description:"FileWizard is a self hosted browser based utility for file conversion OCR and audio transcription. It wraps FFmpeg LibreOffice Pandoc ImageMagick faster-whisper Tesseract and more behind a FastAPI backend and a simple web UI.",instructions:"After deploy open your domain on port 8000. For local trusted use keep Local only enabled. To use OIDC authentication set Local only to false then add OAuth settings in settings.yml.",changeLog:[{date:"2026-04-03",description:"Initial Template Release"}],links:[{label:"Documentation",url:"https://github.com/LoredCast/filewizard/wiki"},{label:"GitHub",url:"https://github.com/LoredCast/filewizard"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"filewizard"},appServiceImage:{type:"string",title:"App Service Image",default:"loredcast/filewizard:0.4-latest"},localOnly:{type:"boolean",title:"Local Only (disable for OIDC)",default:!0},downloadKokoroOnStartup:{type:"boolean",title:"Download Kokoro on Startup",default:!0},ompNumThreads:{type:"string",title:"OMP Threads",default:"1"},transcriptionDevice:{type:"string",title:"Transcription Device (optional)",description:"cpu or cuda when using a GPU image"},transcriptionComputeType:{type:"string",title:"Transcription Compute Type (optional)",description:"e.g. int8 float16 int8_float16 for GPU builds"},transcriptionDeviceIndex:{type:"string",title:"Transcription Device Index (optional)",description:"GPU index when multiple devices are available"}}},benefits:[{title:"Many Conversion Pipelines",description:"Convert documents media and images using well known CLI tools configured from the UI and settings file."},{title:"OCR and Transcription",description:"Run Tesseract OCR and Whisper style transcription for local speech to text workflows."},{title:"Self Hosted Control",description:"Keep files on your own storage volumes with a straightforward Docker image from the upstream maintainers."}],features:[{title:"Format Conversion",description:"Broad format support through LibreOffice Pandoc FFmpeg Ghostscript and related tools."},{title:"Job History",description:"Background jobs with status updates and persistent history in the app."},{title:"Configurable Tools",description:"Extend or tune conversions using settings.yml in the mounted config volume."}],tags:["Files","Conversion","OCR","Transcription","FastAPI"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(48),i=!1!==e.localOnly,o=!1!==e.downloadKokoroOnStartup,n=e.ompNumThreads||"1",r=["LOCAL_ONLY=".concat(i?"True":"False"),"SECRET_KEY=".concat(a),"UPLOADS_DIR=/app/uploads","PROCESSED_DIR=/app/processed","OMP_NUM_THREADS=".concat(n),"DOWNLOAD_KOKORO_ON_STARTUP=".concat(o?"true":"false")];return e.transcriptionDevice&&r.push("TRANSCRIPTION_DEVICE=".concat(e.transcriptionDevice)),e.transcriptionComputeType&&r.push("TRANSCRIPTION_COMPUTE_TYPE=".concat(e.transcriptionComputeType)),e.transcriptionDeviceIndex&&r.push("TRANSCRIPTION_DEVICE_INDEX=".concat(e.transcriptionDeviceIndex)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:r.join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"config",mountPath:"/app/config"},{type:"volume",name:"uploads",mountPath:"/app/uploads"},{type:"volume",name:"processed",mountPath:"/app/processed"}]}}),{services:t}}},{slug:"filezilla",meta:{name:"Filezilla Client",description:"FileZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client. It is designed with a lot of useful features and an intuitive graphical user interface. The app is capable of delivering a true lossless image at a high framerate to your web browser. It supports multiple architectures and can be accessed via HTTP or HTTPS. The app also allows you to specify the user PUID and group PGID to avoid permission issues between the host OS and the container. It also provides the ability to override the default umask settings for services started within the containers.",instructions:"use abc:abc to login. To access the login interface, add ?login=true to your URL.",changeLog:[{date:"2022-11-21",description:"first release"},{date:"2025-01-11",description:"Version bumped to 3.68.1"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-filezilla"},{label:"Github",url:"https://github.com/linuxserver/docker-filezilla"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"filezilla"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/filezilla:3.68.1"}}},benefits:[{title:"Cross-Platform Compatibility",description:"FileZilla Client is a cross-platform FTP, FTPS, and SFTP client, meaning it can be used on various operating systems without compatibility issues."},{title:"Intuitive User Interface",description:"The app features an intuitive graphical user interface, making it easy for users to navigate and operate, regardless of their technical expertise."},{title:"Fast and Reliable",description:"FileZilla Client is known for its speed and reliability, ensuring efficient and uninterrupted file transfers."}],features:[{title:"Multi-Platform Awareness",description:"The app utilizes the docker manifest for multi-platform awareness, allowing it to retrieve the correct image for your architecture."},{title:"Customizable Environment Variables",description:"FileZilla Client offers customizable environment variables, enabling users to adjust settings such as internal port, HTTP Basic auth username and password, and more."},{title:"Lossless Mode",description:"The app is capable of delivering a true lossless image at a high framerate to your web browser, ensuring the highest quality of image transmission."}],tags:["File Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"firebird",meta:{name:"Firebird",description:"Firebird is a powerful, open-source relational database management system (RDBMS) that offers high performance, scalability, and SQL compliance. It is designed for both small and large-scale applications, providing robust multi-user support, stored procedures, triggers, and full ACID compliance. Firebird is lightweight, requiring minimal configuration while delivering strong reliability and security. It supports multiple authentication methods and integrates seamlessly with various programming languages and frameworks. With its containerized deployment, Firebird ensures easy scalability and simplified management.",instructions:null,changeLog:[{date:"2025-03-18",description:"Template Release"},{date:"2025-07-21",description:"Version bumped to 5.0.3"}],links:[{label:"Documentation",url:"https://firebirdsql.org/manual/"},{label:"Github",url:"https://github.com/FirebirdSQL/firebird"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","rootPassword","dbUser","dbPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"firebird"},appServiceImage:{type:"string",title:"App Service Image",default:"firebirdsql/firebird:5.0.3"},rootPassword:{type:"string",title:"Root Password",default:"rootpassword"},dbUser:{type:"string",title:"Database User",default:"dbuser"},dbPassword:{type:"string",title:"Database Password",default:"password"}}},benefits:[{title:"High Performance & Scalability",description:"Firebird delivers exceptional speed and scalability, making it suitable for enterprise applications and large-scale databases."},{title:"Open-Source & Cost-Effective",description:"Firebird is completely open-source, offering a cost-effective RDBMS solution without licensing fees."},{title:"ACID Compliance & Security",description:"Ensures data integrity with full ACID compliance, robust authentication, and security mechanisms."}],features:[{title:"SQL Standard Support",description:"Firebird supports advanced SQL features, stored procedures, triggers, views, and more for complex database applications."},{title:"Multi-Platform Compatibility",description:"Firebird runs on multiple operating systems, including Windows, Linux, and macOS, ensuring cross-platform flexibility."},{title:"Lightweight & Low Resource Usage",description:"Requires minimal system resources while delivering high performance."},{title:"Role-Based Access Control",description:"Manage user roles and permissions for secure database access."},{title:"Backup & Recovery Tools",description:"Firebird provides built-in tools for database backup, restore, and disaster recovery."}],tags:["Database","SQL","Relational Database","Open Source","FirebirdDB"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["FIREBIRD_ROOT_PASSWORD=".concat(e.rootPassword),"FIREBIRD_USER=".concat(e.dbUser),"FIREBIRD_PASSWORD=".concat(e.dbPassword),"FIREBIRD_DATABASE=mirror.fdb","FIREBIRD_DATABASE_DEFAULT_CHARSET=UTF8"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3050}],mounts:[{type:"volume",name:"data",mountPath:"/var/lib/firebird/data"}]}}),{services:t}}},{slug:"firecrawl",meta:{name:"Firecrawl",description:"Firecrawl is an API service that takes a URL, crawls it, and converts it into clean markdown or structured data. It crawls all accessible subpages and gives you clean data for each. No sitemap required. Featuring advanced scraping, crawling, and data extraction capabilities with LLM-ready formats, anti-bot mechanisms, dynamic content handling, and powerful customization options. Perfect for AI applications, data extraction, and web automation.",instructions:'After deployment, access Firecrawl at the main domain on port 3002. The API\nruns in standalone mode with Redis, RabbitMQ, and NuQ Postgres. Use a fresh\ndeployment so the nuq-postgres image can run its init script and create the\nnuq schema. If you see "relation nuq.queue_scrape does not exist", delete the\nnuq-postgres volume and redeploy to re-run the schema setup.\n',changeLog:[{date:"2025-06-04",description:"First Release"},{date:"2026-03-11",description:"Align with official compose; add RabbitMQ; single harness container; nuq-postgres image"}],links:[{label:"Website",url:"https://firecrawl.dev/"},{label:"GitHub",url:"https://github.com/firecrawl/firecrawl"},{label:"Documentation",url:"https://docs.firecrawl.dev/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"firecrawl"},appServiceImage:{type:"string",title:"Firecrawl API Image",default:"ghcr.io/firecrawl/firecrawl:latest"},playwrightServiceImage:{type:"string",title:"Playwright Service Image",default:"ghcr.io/firecrawl/playwright-service:latest"},redisImage:{type:"string",title:"Redis Image",default:"redis:alpine"},rabbitmqImage:{type:"string",title:"RabbitMQ Image",default:"rabbitmq:3-management"},nuqPostgresImage:{type:"string",title:"NuQ Postgres Image",default:"ghcr.io/firecrawl/nuq-postgres:latest"}}},benefits:[{title:"LLM-Ready Data Extraction",description:"Converts any website into clean markdown or structured data optimized for use with language models and AI applications."},{title:"Advanced Web Scraping",description:"Handles the hard stuff - proxies, anti-bot mechanisms, dynamic content (JS-rendered), output parsing, and orchestration automatically."},{title:"Multiple Extraction Modes",description:"Supports scraping single pages, crawling entire websites, mapping site structures, web search, and AI-powered data extraction."},{title:"Self-Hosted & Scalable",description:"Deploy on your own infrastructure with full control over your data. Matches official stack (Redis, RabbitMQ, NuQ Postgres, Playwright)."}],features:[{title:"Multiple Content Formats",description:"Extract content in markdown, HTML, structured JSON, screenshots, and more. Perfect for different use cases and AI model requirements."},{title:"Intelligent Crawling",description:"Smart crawling with depth control, URL filtering, deduplication, and respect for robots.txt. Efficiently discover and extract content from entire websites."},{title:"AI-Powered Extraction",description:"Use AI to extract structured data with custom prompts and schemas. Perfect for extracting specific information like prices, names, and details."},{title:"Dynamic Content Support",description:"Renders JavaScript-heavy pages with Playwright, handles SPAs, performs actions like clicking and scrolling before extraction."},{title:"Batch Processing",description:"Process thousands of URLs simultaneously with built-in queuing, rate limiting, and parallel processing capabilities."},{title:"Web Search Integration",description:"Search the web and optionally scrape search results in one operation. Perfect for research and content discovery."}],tags:["Web Scraping","Data Extraction","AI","LLM","Crawler","API"],logo:"logo.png",screenshots:[]},generate:function(e){var t,a,i,o,n,r=[],s=y(16),c=y(16),l=v(),p=v(),d="$(PROJECT_NAME)_".concat(e.appServiceName),u=["REDIS_URL=redis://default:".concat(l,"@").concat(d,"-redis:6379"),"REDIS_RATE_LIMIT_URL=redis://default:".concat(l,"@").concat(d,"-redis:6379"),"PLAYWRIGHT_MICROSERVICE_URL=http://".concat(d,"-playwright:3000/scrape"),"NUQ_DATABASE_URL=postgres://postgres:".concat(p,"@").concat(d,"-nuq-postgres:5432/postgres"),"POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(p),"POSTGRES_DB=postgres","POSTGRES_HOST=".concat(d,"-nuq-postgres"),"POSTGRES_PORT=5432","NUQ_RABBITMQ_URL=amqp://".concat(d,"-rabbitmq:5672"),"USE_DB_AUTHENTICATION=false","BULL_AUTH_KEY=".concat(s),"TEST_API_KEY=".concat(c),"LOGGING_LEVEL=info","NUM_WORKERS_PER_QUEUE=8","CRAWL_CONCURRENT_REQUESTS=10","MAX_CONCURRENT_JOBS=5","BROWSER_POOL_SIZE=5","EXTRACT_WORKER_PORT=3004","WORKER_PORT=3005","ENV=local"].join("\n");return r.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:null!==(t=e.appServiceImage)&&void 0!==t?t:"ghcr.io/firecrawl/firecrawl:latest"},deploy:{command:"node dist/src/harness.js --start-docker"},env:["HOST=0.0.0.0","PORT=3002","INTERNAL_PORT=3002",u].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3002}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),r.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-playwright"),source:{type:"image",image:null!==(a=e.playwrightServiceImage)&&void 0!==a?a:"ghcr.io/firecrawl/playwright-service:latest"},env:["PORT=3000","BLOCK_MEDIA=false","MAX_CONCURRENT_PAGES=10"].join("\n")}}),r.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:l,image:null!==(i=e.redisImage)&&void 0!==i?i:"redis:alpine"}}),r.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-rabbitmq"),source:{type:"image",image:null!==(o=e.rabbitmqImage)&&void 0!==o?o:"rabbitmq:3-management"},deploy:{command:"rabbitmq-server"}}}),r.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-nuq-postgres"),password:p,image:null!==(n=e.nuqPostgresImage)&&void 0!==n?n:"ghcr.io/firecrawl/nuq-postgres:latest",databaseName:"postgres"}}),{services:r}}},{slug:"fireflyIII",meta:{name:"FireFlyIII",description:"Firefly III is a self-hosted personal finance manager designed to help you take control of your finances. It provides a simple and intuitive interface for tracking expenses, creating budgets, and generating insightful reports. With its robust features, Firefly III enables you to analyze your financial data effectively.",instructions:null,changeLog:[{date:"2025-01-10",description:"Template Release"},{date:"2025-07-21",description:"Version bumped to 6.2.21"},{date:"2025-12-25",description:"Version bumped to 6.4.14"},{date:"2026-02-21",description:"Version bumped to 6.4.23"},{date:"2026-04-29",description:"Version bumped to 6.6.2"}],links:[{label:"Documentation",url:"https://firefly-iii.org/documentation/"},{label:"Github",url:"https://github.com/firefly-iii/firefly-iii"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fireflyiii"},appServiceImage:{type:"string",title:"App Service Image",default:"fireflyiii/core:version-6.6.2"}}},benefits:[{title:"Comprehensive Financial Tracking",description:"Firefly III allows you to track expenses, income, and transfers across multiple accounts with ease."},{title:"Budgeting Made Simple",description:"Plan your finances and track your spending habits with intuitive budgeting tools."},{title:"Self-Hosted Privacy",description:"Keep your financial data private and secure with a self-hosted solution."},{title:"Insightful Reporting",description:"Generate detailed financial reports to analyze and optimize your spending."}],features:[{title:"Multi-Currency Support",description:"Manage transactions in multiple currencies seamlessly."},{title:"Budget and Savings Goals",description:"Set and track budgets or savings goals to stay financially disciplined."},{title:"Advanced Reporting",description:"Gain insights with charts, reports, and visualizations of your financial data."},{title:"API Access",description:"Extend functionality or integrate Firefly III with other applications through its API."}],tags:["Personal Finance","Self-Hosted","Budgeting","Expense Tracking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=3306","DB_CONNECTION=mysql","DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mysql","DB_PASSWORD=".concat(a),"APP_KEY=".concat(i),"APP_URL=https://$(PRIMARY_DOMAIN)","TRUSTED_PROXIES=**"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"firefox",meta:{name:"Firefox",description:"Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. This app allows you to deploy and run Firefox in a containerized environment, providing a secure and isolated space for your browsing activities. Firefox uses the Gecko layout engine to render web pages, implementing current and anticipated web standards. The app supports multiple architectures and can be accessed via HTTP or HTTPS. It also offers additional environment variables and run configurations to enable or disable specific functionalities. This containerized version of Firefox is capable of delivering a true lossless image at a high framerate to your web browser, providing an optimal browsing experience.",instructions:"use abc:abc to login. To access the login interface, add ?login=true to your URL.",changeLog:[{date:"2022-11-14",description:"first release"},{date:"2025-02-25",description:"Version bumped to 135.0.1"},{date:"2025-07-21",description:"Version bumped to 1140.0.4"},{date:"2025-12-25",description:"Version bumped to 1146.0.1"},{date:"2026-02-21",description:"Version bumped to 1147.0.4"},{date:"2026-04-29",description:"Version bumped to 1150.0.1"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-firefox"},{label:"Github",url:"https://github.com/linuxserver/docker-firefox"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"firefox"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/firefox:1150.0.1"}}},benefits:[{title:"Open-Source Web Browser",description:"Firefox Browser, developed by the Mozilla Foundation, is a free and open-source web browser. It uses the Gecko layout engine to render web pages, implementing current and anticipated web standards."},{title:"Multi-Platform Awareness",description:"The app utilizes the docker manifest for multi-platform awareness. This means that simply pulling the correct image for your architecture is made easy and straightforward."},{title:"Accessible Application",description:"The application can be accessed at specified host addresses, providing flexibility and ease of use."},{title:"Customizable Environment Variables",description:"The app offers a range of optional environment variables that can be customized to suit your needs, such as changing the internal port the container listens on, setting the HTTP Basic auth username and password, and more."}],features:[{title:"Lossless Mode",description:"The app is capable of delivering a true lossless image at a high framerate to your web browser. This feature enhances the visual experience and performance of the app."},{title:"Docker in Docker (DinD) Setup",description:"The app offers an optional run configuration that starts a Docker in Docker (DinD) setup inside the container. This allows you to use docker in an isolated environment, enhancing security and performance."},{title:"GPU Acceleration",description:"The app supports mounting a GPU into the container. This can be used in conjunction with the DRINODE environment variable to leverage a host video card for GPU accelerated applications."},{title:"Environment Variables from Files",description:"The app allows you to set any environment variable from a file using a special prepend FILE__. This feature enhances security and flexibility in managing environment variables."},{title:"User / Group Identifiers",description:"The app allows you to specify the user PUID and group PGID to avoid permission issues between the host OS and the container when using volumes."}],tags:["Web Browsers","Internet"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"fireshare",meta:{name:"Fireshare",description:"Fireshare is a simple, user-friendly app designed to make sharing your game clips, videos, or other media a breeze. With Fireshare, you no longer have to go through the hassle of uploading your short clips to YouTube and waiting for them to process. Instead, you can easily self-host your clips and share them with your friends through unique links generated by the app. All you need to do is put your videos in a folder and Fireshare will handle the rest. The app also allows you to view all your videos, edit their details, and decide whether you want them to show up on the public feed. Fireshare also supports foldered sorting, allowing you to organize your videos into categories of your choosing. The app is mobile-friendly and supports open graph data, allowing websites and messaging apps to display the title, description, and video thumbnails in your posts.",instructions:null,changeLog:[{date:"2023-2-24",description:"first release"},{date:"2025-07-21",description:"Version bumped to v1.2.25"},{date:"2025-12-25",description:"Version bumped to v1.3.2"},{date:"2026-02-21",description:"Version bumped to v1.4.3"},{date:"2026-04-29",description:"Version bumped to v1.6.8"},{date:"2026-09-21",description:"Fixed invalid image tag (v1.6.8 does not exist on Docker Hub); updated to 1.8.1"}],links:[{label:"Website",url:"https://v.fireshare.net"},{label:"Github",url:"https://github.com/ShaneIsrael/fireshare"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminUsername","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fireshare"},appServiceImage:{type:"string",title:"App Service Image",default:"shaneisrael/fireshare:1.8.1"},adminUsername:{type:"string",title:"Username"},adminPassword:{type:"string",title:"Password"}}},benefits:[{title:"Effortless Sharing",description:"Fireshare allows you to share your game clips, videos, or other media effortlessly. You no longer need to spend time uploading them to YouTube or other platforms. Simply put your videos in a folder and Fireshare will generate a unique link for each video."},{title:"Organized Media",description:"Fireshare uses the topmost directory that your videos are in as a simple way for you to organize your videos into categories of your choosing. This makes it easy to manage and find your videos."},{title:"Easy Editing",description:"Fireshare provides a dashboard where you can see all of your videos and edit their details such as title, description, and whether or not you want them to show up on the public feed."}],features:[{title:"Video Sharing",description:"Fireshare allows you to share your game clips, videos, or other media via unique links. All you have to do is put your videos in a folder and Fireshare will take care of the rest."},{title:"Dashboard",description:"Fireshare provides a dashboard where you can see all of your videos and edit their details such as title, description, and whether or not you want them to show up on the public feed."},{title:"Foldered Sorting",description:"Fireshare uses the topmost directory that your videos are in as a simple way for you to organize your videos into categories of your choosing."},{title:"Video Preview Modal",description:"Videos opened when on the public feed or admin dashboard show up in a modal. This modal gives you direct link and timestamped link sharing buttons as well as the ability to 'shuffle' randomly to another video."},{title:"Mobile Support",description:"Fireshare is mobile-friendly. You can browse and manage your videos on your mobile device without any problem."}],tags:["Media","File Management"],logo:"logo.png",screenshots:["screenshot1.png","screenshot10.png","screenshot2.png","screenshot3.png","screenshot4.png","screenshot5.png","screenshot6.png","screenshot7.png","screenshot8.png","screenshot9.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ADMIN_USERNAME=".concat(e.adminUsername),"ADMIN_PASSWORD=".concat(e.adminPassword),"SECRET_KEY=".concat(a),"MINUTES_BETWEEN_VIDEO_SCANS=5","PUID=1000","PGID=1000"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"processed",mountPath:"/processed"},{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"videos",mountPath:"/videos"}]}}),{services:t}}},{slug:"flagsmith",meta:{name:"Flagsmith",description:"Flagsmith is a powerful, self-hosted service for feature flag management, remote configuration, and experimentation. It provides a clean and simple interface, supports integrations with various tools, and offers advanced analytics for feature usage and experimentation results. With Flagsmith, you can maintain control over your feature management and deployment process.",instructions:null,changeLog:[{date:"2025-01-01",description:"Template Release"},{date:"2025-07-21",description:"Version bumped to 2.187.0"},{date:"2026-02-21",description:"Version bumped to 2.217.0"},{date:"2026-04-29",description:"Version bumped to 2.231.1"}],links:[{label:"Documentation",url:"https://docs.flagsmith.com/"},{label:"GitHub",url:"https://github.com/Flagsmith/flagsmith"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"flagsmith"},appServiceImage:{type:"string",title:"App Service Image",default:"flagsmith/flagsmith:2.231.1"}}},benefits:[{title:"Centralized Feature Management",description:"Manage feature flags across all your environments and applications from a single platform."},{title:"Remote Configuration",description:"Dynamically control application behavior without redeploying your code."},{title:"Self-Hosted Solution",description:"Stay in control of your data and feature management with a self-hosted service."}],features:[{title:"REST API",description:"Integrate Flagsmith with other tools using its flexible API for programmatic access."},{title:"Integrations",description:"Connect Flagsmith with tools like Slack, Segment, or GitHub for streamlined workflows."},{title:"Advanced Analytics",description:"Gain insights into feature usage, experiments, and configurations for better decision-making."},{title:"Multi-Environment Support",description:"Manage and deploy feature flags across multiple environments with ease."}],tags:["Feature Flags","Remote Configuration","Analytics","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"USE_POSTGRES_FOR_ANALYTICS=true","ENVIRONMENT=production","DJANGO_ALLOWED_HOSTS=*","ALLOW_ADMIN_INITIATION_VIA_CLI=true","FLAGSMITH_DOMAIN=$(PRIMARY_DOMAIN)","DJANGO_SECRET_KEY=secret","ENABLE_ADMIN_ACCESS_USER_PASS=true","# PREVENT_SIGNUP=true","# ALLOW_REGISTRATION_WITHOUT_INVITE=true","# Google OAuth Configuration","# Uncomment the following line if enabling Google OAuth","# DJANGO_SECURE_CROSS_ORIGIN_OPENER_POLICY=same-origin-allow-popups","# Email Configuration (example, uncomment and modify as needed)","# EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend","# EMAIL_HOST=mail.example.com","# [email protected]","# [email protected]","# EMAIL_HOST_PASSWORD=smtp_account_password","# EMAIL_PORT=587","# EMAIL_USE_TLS=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:8e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"flame",meta:{name:"Flame",description:"Flame is a self-hosted startpage for your server, designed to be your very own application hub. Inspired by SUI, its sleek design is not only visually appealing but also incredibly easy to use. With Flame, you can create, update, and delete your applications and bookmarks directly from the app using built-in GUI editors. It also allows you to pin your favorite items to the homescreen for quick and easy access. The app features an integrated search bar with local filtering and 11 web search providers, and even gives you the ability to add your own. Flame also includes an authentication system to protect your settings, apps, and bookmarks. The interface is highly customizable, with dozens of options including support for custom CSS, 15 built-in color themes, and a custom theme builder. Additionally, Flame features a weather widget with current temperature, cloud coverage, and animated weather status. It also integrates with Docker to automatically pick and add apps based on their labels.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2026-04-29",description:"Version bumped to multiarch2.4.0"}],links:[{label:"Website",url:"https://github.com/pawelmalak/flame"},{label:"Documentation",url:"https://github.com/pawelmalak/flame"},{label:"Github",url:"https://github.com/pawelmalak/flame"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"flame"},appServiceImage:{type:"string",title:"App Service Image",default:"pawelmalak/flame:multiarch2.4.0"},password:{type:"string",title:"Password"}}},benefits:[{title:"Personalized Startpage",description:"Flame provides a self-hosted startpage for your server, allowing you to create a personalized hub for all your applications and bookmarks. Its design, inspired by SUI, is easy to navigate and use."},{title:"Easy Setup",description:"With built-in editors, Flame allows you to set up your very own application hub in no time. There's no need for file editing, making it a user-friendly solution for managing your applications."},{title:"Customizable Interface",description:"Flame offers dozens of options to customize the interface according to your needs. It includes support for custom CSS, 15 built-in color themes, and a custom theme builder."},{title:"Integrated Weather Widget",description:"Flame includes a weather widget that provides current temperature, cloud coverage, and animated weather status. This feature adds a personal touch to your startpage."},{title:"Docker Integration",description:"Flame seamlessly integrates with Docker, allowing it to automatically pick and add apps based on their labels. This feature simplifies the process of managing your applications."}],features:[{title:"Application and Bookmark Management",description:"Flame allows you to create, update, and delete your applications and bookmarks directly from the app using built-in GUI editors."},{title:"Quick Access",description:"With Flame, you can pin your favorite items to the homescreen for quick and easy access."},{title:"Integrated Search Bar",description:"Flame features an integrated search bar with local filtering, 11 web search providers, and the ability to add your own."},{title:"Authentication System",description:"Flame includes an authentication system to protect your settings, apps, and bookmarks."},{title:"Weather Widget",description:"Flame features a weather widget that provides current temperature, cloud coverage, and animated weather status."},{title:"Docker Integration",description:"Flame integrates with Docker to automatically pick and add apps based on their labels."}],tags:["Dashboard","Bookmarks","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:"PASSWORD=".concat(e.password),domains:[{host:"$(EASYPANEL_DOMAIN)",port:5005}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"flaresolverr",meta:{name:"FlareSolverr",description:"FlareSolverr is a proxy server designed to help bots and scripts bypass web protections like Cloudflare's anti-bot page. It acts as an intermediary that can execute JavaScript and handle cookies and sessions, making it appear as if requests are coming from a real web browser. This tool is particularly useful for web scraping and automated data collection tasks where access to JavaScript-heavy websites is required. FlareSolverr supports multiple platforms and can be integrated into existing scraping setups to solve CAPTCHAs and manage browser sessions efficiently.",instructions:null,changeLog:[{date:"2024-03-18",description:"Template added"},{date:"2025-07-21",description:"Version bumped to v3.3.25"},{date:"2025-12-25",description:"Version bumped to v3.4.6"}],links:[{label:"Website",url:"https://github.com/FlareSolverr/FlareSolverr"},{label:"Documentation",url:"https://github.com/FlareSolverr/FlareSolverr/wiki"},{label:"Github",url:"https://github.com/FlareSolverr/FlareSolverr"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"flaresolverr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/flaresolverr/flaresolverr:v3.4.6"}}},benefits:[{title:"Bypass Web Protections",description:"FlareSolverr helps bots and scripts bypass web protections like Cloudflare, making it easier to access JavaScript-heavy websites for web scraping and automated data collection."},{title:"Simulates Real Browser Sessions",description:"By executing JavaScript and handling cookies and sessions, FlareSolverr simulates real web browser sessions, helping to solve CAPTCHAs and navigate through complex web protections."},{title:"Integration with Scraping Tools",description:"FlareSolverr can be integrated into existing web scraping setups, providing a seamless experience for overcoming web protections and improving data collection efficiency."}],features:[{title:"Proxy Server Functionality",description:"Acts as a proxy server that can execute JavaScript, handle cookies, and manage sessions, making it appear as requests are coming from a real web browser."},{title:"CAPTCHA Solving",description:"Integrates with CAPTCHA solving services to automatically solve CAPTCHAs, facilitating access to protected websites."},{title:"Wide Platform Support",description:"Supports multiple platforms, ensuring compatibility with various systems and setups for web scraping and data collection."},{title:"Easy Integration",description:"Designed to be easily integrated into existing web scraping frameworks, FlareSolverr simplifies the process of bypassing web protections."}],tags:["Web Scraping","Proxy Server","Anti-bot Bypass","CAPTCHA Solving","Cloudflare Bypass"],logo:null,screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"flarum",meta:{name:"Flarum",description:"Experience a modern, fast, and free forum experience with our app. Designed with an elegant UI, our app is mobile-first, easily stylable, and lightweight, ensuring a seamless experience on any device. It prioritizes security and trust, providing a safe environment for users. The app is also localised into many languages, with 41 translation packs available, making it accessible to users worldwide. Whether you're a leading telephone network serving millions of customers, an avid adventurer sharing your experiences, or a provider of communication and entertainment, our app is the perfect platform for you. It's not just a forum, it's a revolution in community engagement.",instructions:"Please use the credentials flarum:flarum to login.",changeLog:[{date:"2022-10-31",description:"first release"},{date:"2023-2-24",description:"Update to v1.6.2"},{date:"2025-01-14",description:"Version bumped to 1.8.9"},{date:"2025-07-21",description:"Version bumped to 1.8.10"}],links:[{label:"Website",url:"https://flarum.org/"},{label:"Documentation",url:"https://docs.flarum.org/"},{label:"Github",url:"https://github.com/flarum/flarum"}],contributors:[{name:"Rub\xe9n Robles",url:"https://github.com/D8vjork"},{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"flarum"},appServiceImage:{type:"string",title:"App Service Image",default:"crazymax/flarum:1.8.10"},databaseType:{type:"string",title:"Database Type",default:"mariadb",oneOf:[{enum:["mysql"],title:"MySQL"},{enum:["mariadb"],title:"MariaDB"},{enum:["external"],title:"External"}]},databaseServiceName:{type:"string",title:"Database Service Name (URL if external)",default:"flarum-db"},databasePort:{type:"string",title:"Database Port (blank to default)"},databaseName:{type:"string",title:"Database Name (blank to default)"},databaseUser:{type:"string",title:"Database User (blank to default)"},databaseUserPassword:{type:"string",title:"Database User Password (blank to randomly generated)"}}},benefits:[{title:"Modern and Fast",description:"The app is designed with a modern and elegant user interface that is also mobile-first, ensuring a seamless and enjoyable user experience. It is also fast and light, providing quick response times and a smooth operation."},{title:"Secure and Trusted",description:"Security is a top priority in the app. It is trusted by many users worldwide and has robust security measures in place to protect your data and ensure your privacy."},{title:"Localized",description:"The app is localized into many languages with 41 translation packs, making it accessible and easy to use for people all around the world."},{title:"Extensible and Stylable",description:"The app is extensible, allowing for additional functionalities to be added as needed. It is also stylable, giving you the freedom to customize its appearance to suit your preferences."}],features:[{title:"Elegant User Interface",description:"The app features an elegant user interface that is modern and easy to navigate. It is designed with a mobile-first approach, ensuring a seamless experience across all devices."},{title:"Fast and Light",description:"The app is designed to be fast and light, providing quick response times and a smooth operation. This ensures a seamless and enjoyable user experience."},{title:"Secure",description:"The app has robust security measures in place to protect your data and ensure your privacy. It is trusted by many users worldwide."},{title:"Localized",description:"The app is localized into many languages with 41 translation packs, making it accessible and easy to use for people all around the world."},{title:"Extensible",description:"The app is extensible, allowing for additional functionalities to be added as needed. This ensures that the app can adapt to your changing needs."},{title:"Stylable",description:"The app is stylable, giving you the freedom to customize its appearance to suit your preferences. This allows you to create a unique and personalized user experience."}],tags:["Forums","Communication","Social Networking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a="external"===e.databaseType?e.databaseServiceName:"$(PROJECT_NAME)_".concat(e.databaseServiceName),i=e.databasePort||3306,o=e.databaseName||"$(PROJECT_NAME)",n=e.databaseUser||e.databaseType,r=e.databaseUserPassword||v(
1),s=["FLARUM_BASE_URL=https://$(PRIMARY_DOMAIN)","FLARUM_FORUM_TITLE=Flarum","DB_HOST=".concat(a),"DB_PORT=".concat(i),"DB_NAME=".concat(o),"DB_USER=".concat(n),"DB_PASSWORD=".concat(r)];return t.push({type:"app",data:{serviceName:e.appServiceName,env:s.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),"external"!==e.databaseType&&t.push({type:e.databaseType,data:{serviceName:e.databaseServiceName,password:r}}),{services:t}}},{slug:"flashpaper",meta:{name:"FlashPaper",description:"FlashPaper is a secure, self-destructing message service that allows you to share sensitive information safely. Messages are encrypted and automatically destroyed after being viewed once, ensuring that sensitive data remains secure and temporary.",instructions:"After installation, access the web interface through the provided domain to start creating self-destructing messages.",changeLog:[{date:"2025-04-10",description:"First Release"}],links:[{label:"Github",url:"https://github.com/AndrewPaglusch/FlashPaper"},{label:"Website",url:"https://flashpaper.io"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"flashpaper"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/andrewpaglusch/flashpaper:2.4.0"}}},benefits:[{title:"Self-Destructing Messages",description:"Messages are automatically destroyed after being viewed once."},{title:"Secure Communication",description:"Share sensitive information securely with automatic destruction."},{title:"Customizable Interface",description:"Customize the interface with your own branding and messages."},{title:"Message Pruning",description:"Automatic cleanup of old messages for better security."},{title:"Easy Sharing",description:"Simple URL-based sharing of encrypted messages."}],features:[{title:"One-Time Viewing",description:"Messages can only be viewed once before being destroyed."},{title:"Custom Branding",description:"Customize the interface with your logo and text."},{title:"Message Management",description:"Automatic pruning of old messages."},{title:"Secure Storage",description:"Encrypted storage of messages until viewed."},{title:"Simple Interface",description:"Easy-to-use web interface for creating and viewing messages."}],tags:["Security","Privacy","Encryption","Self-Destructing","Communication"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["SITE_TITLE=FlashPaper :: Self-Destructing Message","SITE_LOGO=img/logo.png","DISPLAY_LOGO=false","DISPLAY_TITLE=true","RETURN_FULL_URL=true","BASE_URL=https://$(PRIMARY_DOMAIN)","MAX_SECRET_LENGTH=3000","ANNOUNCEMENT=","MESSAGES_ERROR_SECRET_TOO_LONG=Input length too long","MESSAGES_SUBMIT_SECRET_HEADER=Create A Self-Destructing Message","MESSAGES_SUBMIT_SECRET_SUBHEADER=","MESSAGES_SUBMIT_SECRET_BUTTON=Encrypt Message","MESSAGES_VIEW_CODE_HEADER=Self-Destructing URL","MESSAGES_VIEW_CODE_SUBHEADER=Share this URL via email, chat, or another messaging service. It will self-destruct after being viewed once.","MESSAGES_CONFIRM_VIEW_SECRET_HEADER=View this secret?","MESSAGES_CONFIRM_VIEW_SECRET_BUTTON=View Secret","MESSAGES_VIEW_SECRET_HEADER=Self-Destructing Message","MESSAGES_VIEW_SECRET_SUBHEADER=This message has been destroyed","PRUNE_ENABLED=true","PRUNE_MIN_DAYS=365","PRUNE_MAX_DAYS=730"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/var/www/html/data"}]}}),{services:t}}},{slug:"flatnotes",meta:{name:"Flatnotes",description:"Flatnotes is an open-source, self-hosted note-taking platform designed to help individuals and teams manage their notes efficiently. It provides a lightweight and intuitive interface for creating, organizing, and sharing notes. With robust customization options, Flatnotes supports markdown editing, tagging, and a responsive design, making it a versatile solution for note management.",instructions:null,changeLog:[{date:"2025-01-20",description:"First Release"},{date:"2025-02-25",description:"Version bumped to v5.4.1"},{date:"2025-07-21",description:"Version bumped to v5.5.3"},{date:"2025-12-25",description:"Version bumped to v5.5.4"}],links:[{label:"Github",url:"https://github.com/dullage/flatnotes"},{label:"Demo",url:"https://flatnotes.dullage.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"flatnotes"},appServiceImage:{type:"string",title:"App Service Image",default:"dullage/flatnotes:v5.5.4"},username:{type:"string",title:"Username",default:"flatnotesuser"},password:{type:"string",title:"Password",default:"password"}}},benefits:[{title:"Lightweight and Fast",description:"Flatnotes provides a minimalistic platform that is quick to set up and use for note-taking."},{title:"Customizable and Flexible",description:"Flatnotes allows users to personalize their note-taking experience with markdown support and tagging."},{title:"Accessible Anywhere",description:"A responsive design ensures that notes are accessible on desktops, tablets, and mobile devices."}],features:[{title:"Markdown Support",description:"Write and edit notes using markdown for a rich text editing experience."},{title:"Note Tagging",description:"Organize notes effectively with a robust tagging system."},{title:"Search and Filter",description:"Quickly find notes using the search and filtering functionality."},{title:"Self-Hosted for Privacy",description:"Host Flatnotes on your own server to ensure complete control over your data."},{title:"Responsive Interface",description:"Access and manage notes seamlessly across all devices."}],tags:["Note-Taking","Markdown","Open Source","Self-Hosted","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(16);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["FLATNOTES_AUTH_TYPE=password","FLATNOTES_USERNAME=".concat(e.username),"FLATNOTES_PASSWORD=".concat(e.password),"FLATNOTES_SECRET_KEY=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"flink",meta:{name:"Flink",description:"Flink is a free, libre, and open source URL shortener built with ASP.NET Core. It generates QR codes and embeddable link previews for every shortened URL, supports password-protected and time-limited links, and ships with built-in spam protection that checks submissions against AdBlock/phishing blocklists. Short links can be created one at a time through the web UI or in bulk from the terminal with curl, and a Prometheus metrics endpoint is available for tracking click activity. This template runs Flink against a PostgreSQL database for production-grade reliability.",instructions:'Open the app URL and use the "flinkify" form to shorten a link, or POST to /links with a JSON body of uri, creator, and either preferredId or preferredIdLength. Swagger and Scalar API docs are linked in the top navigation bar.',changeLog:[{date:"2026-07-09",description:"first release"}],links:[{label:"Website",url:"https://flink.rtrace.io"},{label:"GitLab",url:"https://gitlab.com/rtraceio/web/flink"},{label:"Documentation",url:"https://gitlab.com/rtraceio/web/flink/-/blob/main/docs/install/install.md"},{label:"Container Registry",url:"https://quay.io/repository/rtraceio/flink"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"flink"},appServiceImage:{type:"string",title:"App Service Image",default:"quay.io/rtraceio/flink:2.6.0-rc03"}}},benefits:[{title:"Instant QR Codes",description:"Every shortened link automatically gets a scannable QR code, cached in memory for fast repeat requests."},{title:"Built-In Spam Protection",description:"Submitted URLs are checked against AdBlock-format phishing and spam blocklists before they are shortened, out of the box."},{title:"Production-Ready Database",description:"Runs against PostgreSQL instead of the SQLite default, so multiple Flink replicas can safely share the same database."}],features:[{title:"Embeddable Link Previews",description:"Shortened links generate iframe-embeddable previews with page metadata, similar to how social platforms unfurl links."},{title:"Password and Time-Limited Links",description:"Lock a short link behind a password or restrict it to a specific activation and expiration window."},{title:"CLI-Friendly Bulk Creation",description:"Create short links from the terminal with curl or wget, with a custom ID or a randomly generated one of a chosen length."},{title:"Prometheus Metrics",description:"A built-in /metrics endpoint (optionally behind HTTP basic auth) exposes click and usage statistics for scraping."},{title:"Event Webhooks",description:"Fire notifications to ntfy, Discord, Slack, Mattermost, or Rocket.Chat whenever a link is created or deleted."}],tags:["URL Shortener","QR Code","Utilities","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DbConfiguration__DbType=Postgres","DbConfiguration__PostgresConnectionString=Server=$(PROJECT_NAME)_".concat(e.appServiceName,"-db;Port=5432;Database=flink;User Id=postgres;Password=").concat(a,";")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),databaseName:"flink",password:a}}),{services:t}}},{slug:"flowise",meta:{name:"Flowise",description:"Flowise is an open-source UI visual tool that allows you to build your own customized LLM (Language Learning Model) flow with ease. It is built on top of LangChainJS and is written in Node Typescript/Javascript. With Flowise, you can see your LLM apps running live, making the process of building and testing faster and more efficient. The app is extensible, allowing for custom component integrations. It offers a variety of features such as QnA retrieval chain, language translation chain, and a conversational agent with memory for chat models. Flowise is designed to make the process of visualizing and building LLM apps simple and accessible.",instructions:null,changeLog:[{date:"2023-06-22",description:"first release"},{date:"2025-01-14",description:"Version bumped to 2.2.3"},{date:"2025-02-25",description:"Version bumped to 2.2.5"},{date:"2025-07-21",description:"Version bumped to 3.0.4"},{date:"2025-12-25",description:"Version bumped to 3.0.12"},{date:"2026-02-21",description:"Version bumped to 3.0.13"},{date:"2026-05-06",description:"Version bumped to 3.1.2"}],links:[{label:"Website",url:"https://flowiseai.com"},{label:"Documentation",url:"https://docs.flowiseai.com"},{label:"Github",url:"https://github.com/FlowiseAI/Flowise"}],contributors:[{name:"AlexSerban",url:"https://github.com/serban-alexandru"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"flowise"},appServiceImage:{type:"string",title:"App Service Image",default:"flowiseai/flowise:3.1.2"},username:{type:"string",title:"Username"},password:{type:"string",title:"Password"}}},benefits:[{title:"Open Source",description:"Flowise is an open-source tool, making it free for both commercial and personal use. This allows you to use and modify the tool according to your needs without any restrictions."},{title:"Live Running Apps",description:"With Flowise, you can see your LLM apps running live. This allows you to monitor the performance of your apps in real-time and make necessary adjustments on the go."},{title:"Custom Component Integrations",description:"Flowise allows for custom component integrations, giving you the flexibility to add and integrate components that suit your specific needs."}],features:[{title:"LLM Flow Builder",description:"Flowise is a UI visual tool that allows you to build your customized LLM flow using LangchainJS. It simplifies the process of creating LLM apps by providing a visual interface for building your flow."},{title:"QnA Retrieval Chain",description:"Flowise includes a QnA retrieval chain feature that allows you to create conversational retrieval QA chains. This feature enhances the interaction between your app and its users."},{title:"Language Translation Chain",description:"Flowise offers a language translation chain feature that enables language translation using LLM Chain with a Chat Prompt Template and Chat Model. This feature makes your app more accessible to users who speak different languages."},{title:"Conversational Agent with Memory",description:"Flowise provides a conversational agent feature for a chat model which utilizes chat specific prompts and buffer memory. This feature allows your app to remember previous interactions and provide more personalized responses."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["FLOWISE_USERNAME=".concat(e.username),"FLOWISE_PASSWORD=".concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/root/.flowise"}],deploy:{command:"sleep 3; flowise start"}}}),{services:t}}},{slug:"fluid-calendar",meta:{name:"FluidCalendar",description:"FluidCalendar is an open source calendar app that combines scheduling with task management. It syncs two-way with Google Calendar and Outlook, auto-schedules tasks into open slots on your calendar, and offers public booking pages so others can grab time on your calendar without an account. This template runs FluidCalendar against a PostgreSQL database.",instructions:"Go directly to https://your-domain/setup to create the first account \u2014 this is a dedicated first-run page, not the sign-in screen, and the account created there automatically becomes the admin. It's only reachable while no users exist yet, so do this before anything else. To enable Google Calendar or Outlook sync, add the corresponding OAuth client credentials under Settings > System once logged in, and set the redirect URI on the provider's side to your app URL (for example https://your-domain/api/auth/callback/google).",changeLog:[{date:"2026-07-13",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/dotnetfactory/fluid-calendar"},{label:"Documentation",url:"https://github.com/dotnetfactory/fluid-calendar/blob/main/docs/self-hosting-setup-checklist.md"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fluid-calendar"},appServiceImage:{type:"string",title:"App Service Image",default:"eibrahim/fluid-calendar:sha-832a7ba"}}},benefits:[{title:"Two-Way Calendar Sync",description:"Connect Google Calendar or Outlook and changes flow in both directions, so FluidCalendar stays in sync with the calendars you already use."},{title:"Auto-Scheduling",description:"Give a task a duration and a deadline and FluidCalendar finds an open slot on your calendar automatically, instead of you scheduling it by hand."},{title:"Public Booking Pages",description:"Share a booking link so others can reserve open time on your calendar directly, without needing an account of their own."}],features:[{title:"Combined Calendar and Tasks",description:"Tasks and calendar events live side by side, so scheduled work shows up right next to meetings instead of in a separate app."},{title:"Multiple Calendar Views",description:"Switch between day, week, month, and agenda views to plan at whatever granularity you need."},{title:"Focus Mode",description:"Collapse the interface down to just the task or event you are working on, to cut down on distractions."}],tags:["Calendar","Productivity","Task Management","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/postgres"),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_SECRET=".concat(i),"NEXT_PUBLIC_APP_URL=https://$(PRIMARY_DOMAIN)","NEXT_PUBLIC_SITE_URL=https://$(PRIMARY_DOMAIN)","HOSTNAME=0.0.0.0","PORT=3000"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{command:"npx --yes [email protected] generate && npx --yes [email protected] migrate deploy && node server.js"}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"focalboard",meta:{name:"Focalboard",description:"Mattermost Boards is an open-source project management tool designed for technical teams. It centralizes, plans, and tracks all your work in one place, helping your organization maintain a single source of truth. This ensures your teams stay aligned to complete tasks, reach milestones, and achieve their goals. The app allows you to manage all your tasks on a Kanban, table, gallery, and calendar view, focusing on the highest priority items with board filters. It also offers real-time collaboration features, including card comments, @mention teammates, and board permissions to share your board with the entire team or specific individuals. Mattermost Boards comes with pre-built templates for quick setup or the option to create a fully custom board from scratch. It also includes features like unlimited boards, file sharing, customizable templates, project cards & tasks, archiving & back-up snapshots, and more. Mattermost Boards is an open-source alternative to tools like Asana, Trello, and Notion.",instructions:null,changeLog:[{date:"2023-03-20",description:"First Release"}],links:[{label:"Website",url:"https://focalboard.com"},{label:"Documentation",url:"https://docs.mattermost.com/guides/boards.html"},{label:"Github",url:"https://github.com/mattermost/focalboard"},{label:"Docker",url:"https://hub.docker.com/r/mattermost/focalboard"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"focalboard"},appServiceImage:{type:"string",title:"App Service Image",default:"mattermost/focalboard:7.11.4"},databaseType:{type:"string",title:"Database Type",default:"sqlite3",oneOf:[{enum:["sqlite3"],title:"SQLite"},{enum:["postgres"],title:"PostgreSQL"},{enum:["mariadb"],title:"MariaDB"},{enum:["mysql"],title:"MySQL"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"focalboard-db"},enablePublicSharedBoards:{type:"boolean",title:"Enable Public Shared Boards",default:!1},telemetry:{type:"boolean",title:"Telemetry",default:!1}}},benefits:[{title:"Accelerate Productivity",description:"Mattermost Boards centralizes, plans, and tracks all your work in one place. It helps your organization maintain a single source of truth, so your teams stay aligned to complete tasks, reach milestones, and achieve their goals."},{title:"Organize and Visualize Work Your Way",description:"Mattermost Boards allows you to work in the way that suits you best. You can manage all your tasks on a Kanban, table, gallery, and calendar view. It also allows you to focus on the highest priority items with board filters, and save an unlimited number of filtered views for quick access later."},{title:"Real-Time Collaboration",description:"Mattermost Boards keeps everyone in sync with card comments, @mention teammates to get their attention, and set board permissions to share your board with the entire team or specific individuals."},{title:"Customizable Templates",description:"Mattermost Boards provides tons of templates to get you started fast. You can also create a fully custom board from scratch."}],features:[{title:"Unlimited Boards",description:"Mattermost Boards allows you to create and manage unlimited boards to keep track of all your projects and tasks."},{title:"Task Management",description:"With Mattermost Boards, you can group, filter, and sort tasks to manage your work effectively. It also supports file sharing and unlimited custom attributes."},{title:"Customizable Templates",description:"Mattermost Boards comes with pre-built templates for project tasks, content calendar, company goals & OKRs, roadmap, meeting agenda, and more. You can also create a fully custom board from scratch."},{title:"Real-Time Collaboration",description:"Mattermost Boards supports real-time collaboration with features like card comments, @mention teammates, and board permissions to share your board with the entire team or specific individuals."},{title:"Archiving & Back-Up Snapshots",description:"Mattermost Boards allows you to archive and back-up snapshots of your boards for future reference."},{title:"User Permissions",description:"With Mattermost Boards, you can set user permissions to control who can view and edit your boards."},{title:"Multi-Team Views",description:"Mattermost Boards supports multi-team views, allowing you to collaborate with multiple teams on the same board."}],tags:["Project Management","Collaboration","Task Management"],logo:"logo.svg",screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a="sqlite3",i="./data/focalboard.db";if("sqlite3"!==e.databaseType){var o=v();t.push({type:e.databaseType,data:{serviceName:e.databaseServiceName,password:o}}),"postgres"===e.databaseType?(a="postgres",i="postgres://postgres:".concat(o,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,"/$(PROJECT_NAME)?sslmode=disable&connect_timeout=10")):(a="mysql",i="".concat(e.databaseType,":").concat(o,"@tcp($(PROJECT_NAME)_").concat(e.databaseServiceName,":3306)/$(PROJECT_NAME)"))}return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"fbdata",mountPath:"/opt/focalboard/data"},{type:"file",content:JSON.stringify({serverRoot:"https://$(PRIMARY_DOMAIN)",port:8e3,dbtype:a,dbconfig:i,useSSL:!0,webpath:"./pack",filespath:"./data/files",telemetry:e.telemetry,session_expire_time:2592e3,session_refresh_time:18e3,localOnly:!1,enableLocalMode:!1,localModeSocketLocation:"/var/tmp/focalboard_local.socket",enablePublicSharedBoards:e.enablePublicSharedBoards},null,2),mountPath:"/opt/focalboard/config.json"}]}}),{services:t}}},{slug:"foldingathome",meta:{name:"Folding@Home",description:"Folding@Home is a distributed computing project that simulates protein folding and other molecular dynamics to help researchers understand how proteins work and how they can malfunction. By donating your unused computing power, you be
1come a citizen scientist contributing to research on diseases like COVID-19, Alzheimer's, cancer, and many others. The project uses your computer to run simulations that help scientists develop new treatments and understand biological processes.",instructions:null,changeLog:[{date:"2025-07-01",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to 8.5.5"}],links:[{label:"Website",url:"https://foldingathome.org/"},{label:"Documentation",url:"https://foldingathome.org/start-folding/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"foldingathome"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/foldingathome:8.5.5"}}},benefits:[{title:"Contribute to Science",description:"Help researchers understand diseases and develop new treatments by donating your computer's idle processing power to important research."},{title:"Fight Global Diseases",description:"Contribute to research on COVID-19, Alzheimer's disease, cancer, Parkinson's, and many other conditions affecting millions worldwide."},{title:"Easy Participation",description:"Simply deploy and let it run - the software automatically downloads and processes research tasks while your computer is idle."}],features:[{title:"Distributed Computing",description:"Part of a global network of volunteers contributing computing power to scientific research and drug discovery efforts."},{title:"Web Interface",description:"Monitor your contributions, view statistics, and configure settings through an intuitive web-based control panel."},{title:"Automatic Task Management",description:"Automatically downloads work units, processes them, and uploads results without requiring manual intervention."},{title:"Team Collaboration",description:"Join teams to collaborate with others and track collective contributions to research projects."}],tags:["Science","Research","Distributed Computing","Medical Research","Protein Folding","Citizen Science","Volunteer Computing"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Etc/UTC","ACCOUNT_TOKEN=","MACHINE_NAME=","CLI_ARGS="].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:7396}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"forgejo",meta:{name:"Forgejo",description:"Forgejo is a community-driven, lightweight, and self-hosted Git service that offers a seamless platform for managing repositories, collaborating on code, and controlling your versioning needs. As a fork of Gitea, Forgejo builds on a solid foundation and enhances features with contributions from a vibrant community. It supports all major platforms, including Linux, macOS, Windows, and ARM-based systems. Forgejo is lightweight, extensible, and easy to set up, making it an excellent choice for individuals and teams looking for a self-hosted Git service. Its open-source nature ensures privacy, transparency, and the flexibility to self-host for maximum control.",instructions:null,changeLog:[{date:"2024-12-21",description:"First Release"},{date:"2025-02-25",description:"Version bumped to 10.0.1"},{date:"2026-02-21",description:"Version bumped to 14.0.2"},{date:"2026-04-29",description:"Version bumped to 15.0.1"}],links:[{label:"Website",url:"https://forgejo.org/"},{label:"Documentation",url:"https://docs.forgejo.org/"},{label:"Github",url:"https://codeberg.org/forgejo/forgejo"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"forgejo"},appServiceImage:{type:"string",title:"App Service Image",default:"codeberg.org/forgejo/forgejo:15.0.1"},databaseType:{type:"string",title:"Select Database Type",oneOf:[{enum:["mysql"],title:"MySQL"},{enum:["postgres"],title:"Postgres"}]}}},benefits:[{title:"Community-Driven Development",description:"Forgejo is actively developed and maintained by a community that prioritizes user needs and feedback."},{title:"Self-Hosted Git Service",description:"Forgejo provides an easy-to-set-up self-hosted Git service, enabling teams to maintain privacy and control over their repositories."},{title:"Cross-Platform",description:"Forgejo runs seamlessly on all major platforms, including Linux, macOS, Windows, and ARM-based systems."},{title:"Lightweight and Extensible",description:"Forgejo is lightweight with minimal system requirements and supports plugins and integrations for extensibility."},{title:"Open Source and Transparent",description:"Forgejo is 100% open source, giving users the ability to audit, modify, and share the software freely under an open license."}],features:[{title:"Repository Management",description:"Forgejo supports repository management features, including webhooks, deploy keys, Git hooks, and Git LFS."},{title:"Collaborative Development",description:"Tools like pull requests, issue tracking, and team management make it easier for developers to collaborate on projects."},{title:"Authentication Options",description:"Forgejo supports multiple authentication methods, such as LDAP, SMTP, and OAuth, to ensure secure access."},{title:"Customization",description:"Users can tailor Forgejo to their needs with customizable templates, static files, and configurations."},{title:"CI/CD Integrations",description:"Forgejo integrates with CI/CD pipelines, enabling automated builds, tests, and deployments."}],tags:["Code Hosting","Self-Hosted","Git Service"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["USER_UID=1000","USER_GID=1000"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"bind",hostPath:"/etc/timezone",mountPath:"/etc/timezone"},{type:"bind",hostPath:"/etc/timezone",mountPath:"/etc/localtime"}]}}),"mysql"===e.databaseType?t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}):"postgres"===e.databaseType&&t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"formbricks",meta:{name:"Formbricks",description:"Formbricks provides a free and open source surveying platform. Gather feedback at every point in the user journey with beautiful in-app, website, link and email surveys. Build on top of Formbricks or leverage prebuilt data analysis capabilities.",instructions:null,changeLog:[{date:"2024-03-28",description:"First Release"},{date:"2025-07-21",description:"Version bumped to v3.16.0"},{date:"2026-02-21",description:"Version bumped to 4.7.2"},{date:"2026-04-29",description:"Version bumped to 4.9.5"}],links:[{label:"Website",url:"https://formbricks.com"},{label:"Github",url:"https://github.com/formbricks/formbricks"},{label:"Docker",url:"https://ghcr.io/formbricks/formbricks"}],contributors:[{name:"Shubham Palriwala",url:"https://github.com/ShubhamPalriwala"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"formbricks"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/formbricks/formbricks:4.9.5"},databaseServiceImage:{type:"string",title:"Database Service Image",default:"pgvector/pgvector:pg17"},enterpriseLicenseKey:{type:"string",title:"Enterprise License Key",default:""},shortUrlBase:{type:"string",title:"Short URL Base",default:""},emailVerificationDisabled:{type:"string",title:"Email Verification Disabled (1 for true)",default:"1"},passwordResetDisabled:{type:"number",title:"Password Reset Disabled (1 for true)",default:1},signUpDisabled:{type:"number",title:"Sign Up Disabled (1 for true)",default:0},emailAuthDisabled:{type:"number",title:"Email Auth Disabled (1 for true)",default:0},inviteDisabled:{type:"number",title:"Invite Disabled (1 for true)",default:0},privacyPolicyUrl:{type:"string",title:"Privacy Policy URL",default:""},termsOfServiceUrl:{type:"string",title:"Terms of Service URL",default:""},imprintUrl:{type:"string",title:"Imprint URL",default:""},githubId:{type:"string",title:"GitHub ID",default:""},githubSecret:{type:"string",title:"GitHub Secret",default:""},googleClientId:{type:"string",title:"Google Client ID",default:""},googleClientSecret:{type:"string",title:"Google Client Secret",default:""},defaultTeamId:{type:"string",title:"Default Team ID",default:""},onboardingDisabled:{type:"number",title:"Onboarding Disabled (1 for true)",default:0}}},features:[{title:"Granular in-app targeting",description:"Combine usage data with custom attributes and device information for fine-grained targeting. Targeted embedded surveys mean better insights for your research team and a better UX for your users."},{title:"Multi-language app surveys",description:"For app surveys to fit in smoothly, they should feel like a part of your UI. Matching languages plays a big role for seamless product research. Formbricks lets you handle survey translations easily."},{title:"On brand design",description:"Customize your embedded surveys to fit in. Match the look & feel of your embedded surveys with your app. Leverage our no-code design editor or load a custom style sheet - all on the free plan!"},{title:"Keep all data private and secure",description:"Formbricks is open source and can be self-hosted easily. Fly through compliance reviews by keeping all data on premise - or use our EU Cloud \ud83c\uddea\ud83c\uddfa. Formbricks works in full compliance with data privacy regulation worldwide"},{title:"No-code targeting",description:"To set up and run an online survey, no code changes are needed. Use generic triggers like clicks, page views, scroll depth or exit intents to trigger web surveys whenever you want. Enable less technical team mates to run online surveys in minutes."},{title:"Free link forms forever, unlimited",description:"Get unlimited forms, responses, team members and workspaces in our open source web forms builder. In the Cloud we only charge for branding removal. Self
1-host with one click and remove the branding from all forms for free."},{title:"Conditional logic",description:"Jump questions based on previous answers for higher completion rate. Conditional logic lets you personalize the survey experience. Formbricks is the only open source form builder with comprehensive logic capabilities included."}],tags:["Survey","Forms","Experience Management"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32),n=v(),r=["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"REDIS_URL=redis://default:".concat(n,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"NEXTAUTH_SECRET=".concat(i),"ENCRYPTION_KEY=".concat(o),"WEBAPP_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","ENTERPRISE_LICENSE_KEY=".concat(e.enterpriseLicenseKey),"SHORT_URL_BASE=".concat(e.shortUrlBase),"EMAIL_VERIFICATION_DISABLED=".concat(e.emailVerificationDisabled),"PASSWORD_RESET_DISABLED=".concat(e.passwordResetDisabled),"SIGNUP_DISABLED=".concat(e.signUpDisabled),"EMAIL_AUTH_DISABLED=".concat(e.emailAuthDisabled),"INVITE_DISABLED=".concat(e.inviteDisabled),"PRIVACY_URL=".concat(e.privacyPolicyUrl),"TERMS_URL=".concat(e.termsOfServiceUrl),"IMPRINT_URL=".concat(e.imprintUrl),"GITHUB_ID=".concat(e.githubId),"GITHUB_SECRET=".concat(e.githubSecret),"GOOGLE_CLIENT_ID=".concat(e.googleClientId),"GOOGLE_CLIENT_SECRET=".concat(e.googleClientSecret),"DEFAULT_TEAM_ID=".concat(e.defaultTeamId),"ONBOARDING_DISABLED=".concat(e.onboardingDisabled)];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"uploads",mountPath:"/home/nextjs/apps/web/uploads/"}],env:r.join("\n")}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,image:e.databaseServiceImage}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:n}}),{services:t}}},{slug:"formio",meta:{name:"Form.io",description:"Form.io is a form and data management platform for progressive web applications. It provides a drag-and-drop form builder, API platform, and data management system that allows developers to rapidly build complex forms and workflows. Form.io combines the power of JSON Schema with a robust API to create dynamic, data-driven applications.",instructions:null,changeLog:[{date:"2025-06-23",description:"Initial Template Release"},{date:"2026-04-29",description:"Version bumped to 4.6.5"}],links:[{label:"Official Website",url:"https://form.io/"},{label:"Documentation",url:"https://help.form.io/"},{label:"GitHub",url:"https://github.com/formio/formio"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","rootEmail","rootPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"formio"},appServiceImage:{type:"string",title:"App Service Image",default:"formio/formio:4.6.5",description:"Form.io Docker image"},rootEmail:{type:"string",title:"Root Admin Email",default:"[email protected]",description:"Email address for the root administrator account"},rootPassword:{type:"string",title:"Root Admin Password",default:"",description:"Password for the root administrator account"}}},benefits:[{title:"Drag-and-Drop Form Builder",description:"Create complex forms with an intuitive visual interface without writing code, including advanced components and validation rules."},{title:"API-First Architecture",description:"RESTful API platform that automatically generates endpoints for your forms and data, enabling seamless integration."},{title:"JSON Schema Based",description:"Built on JSON Schema standards for maximum flexibility and interoperability with other systems and frameworks."},{title:"Data Management",description:"Comprehensive data management system with user authentication, permissions, and workflow capabilities."}],features:[{title:"Form Builder",description:"Visual drag-and-drop interface for creating forms with advanced components like file uploads, signatures, and calculations."},{title:"Workflow Engine",description:"Built-in workflow and business process management with conditional logic and automated actions."},{title:"User Management",description:"Complete user authentication and authorization system with role-based access control and team management."},{title:"API Platform",description:"Automatically generated REST API endpoints for all forms and data with comprehensive documentation."}],tags:["Forms","Form Builder","API Platform","Data Management","Workflow","MongoDB"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-mongo"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["DEBUG=formio:*",'NODE_CONFIG={"mongo": "mongodb://mongo:'.concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,'-mongo:27017/?tls=false"}'),"ROOT_EMAIL=".concat(e.rootEmail),"ROOT_PASSWORD=".concat(e.rootPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001}]}}),{services:t}}},{slug:"fossbilling",meta:{name:"FOSSBilling",description:"FOSSBilling is a free, open-source billing and client management system designed for hosting providers, service providers, and freelancers. It provides comprehensive tools for managing clients, products, services, invoices, and payments. FOSSBilling features automated billing cycles, support ticket management, domain registration integration, customizable invoice templates, and multi-currency support. The platform includes a client portal where customers can manage their services, view invoices, and submit support tickets. With support for multiple payment gateways including PayPal, Stripe, and others, FOSSBilling streamlines the entire billing workflow. Perfect for web hosting companies, SaaS providers, and service-based businesses who need professional billing automation without expensive licensing fees.",instructions:"After deployment, open your domain and run the FOSSBilling web installer.\nUse MySQL connection details, keep /var/www/html on persistent storage as configured.\n",changeLog:[{date:"2025-11-21",description:"Template Release"},{date:"2026-03-24",description:"Fixed instructions and added screenshot."}],links:[{label:"Website",url:"https://fossbilling.org/"},{label:"Documentation",url:"https://fossbilling.org/docs"},{label:"Github",url:"https://github.com/FOSSBilling/FOSSBilling"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fossbilling"},appServiceImage:{type:"string",title:"App Service Image",default:"fossbilling/fossbilling:0.7.2"}}},benefits:[{title:"Complete Billing Automation",description:"Automate recurring billing, invoice generation, payment processing, and service provisioning with customizable billing cycles."},{title:"Client Self-Service Portal",description:"Professional client portal allows customers to manage services, pay invoices, submit tickets, and access account information 24/7."},{title:"Open Source & Cost-Free",description:"Fully open-source with no licensing fees or per-client charges. Complete control over your billing system with community support."}],features:[{title:"Invoice Management",description:"Generate professional invoices automatically with customizable templates, multiple currencies, and tax configuration."},{title:"Product & Service Management",description:"Create and manage products, services, and pricing plans with flexible configuration and automated provisioning."},{title:"Payment Gateway Integration",description:"Accept payments through multiple gateways including PayPal, Stripe, and other popular payment processors."},{title:"Support Ticket System",description:"Built-in helpdesk with ticket management, email piping, canned responses, and customer communication tracking."},{title:"Client Portal",description:"Self-service portal where clients can manage services, view invoices, make payments, and submit support requests."},{title:"Domain Registration",description:"Integrate with domain registrars for automated domain registration, renewal, and management within the platform."}],tags:["Billing","Invoice","Client Management","Payment Processing","Hosting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o="$(PROJECT_NAME)_".concat(e.appServiceName,"-db");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["DB_HOST=".concat(o),"DB_NAME=$(PROJECT_NAME)","DB_USER=mysql","DB_PASS=".concat(a)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/var/www/html"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,rootPassword:i}}),{services:t}}},{slug:"fossflow",meta:{name:"FOSSFlow",description:"FOSSFlow is an open-source diagramming and flowchart application that enables users to create, edit, and manage technical diagrams, flowcharts, and process visualizations. Built for developers, system architects, and technical teams, FOSSFlow provides an intuitive interface for designing workflows, system architectures, database schemas, and network diagrams. The application supports server-side storage for persistent diagram saving and optional Git backup integration for version control and collaboration. With a lightweight Node.js backend and modern frontend, FOSSFlow offers a self-hosted alternative to cloud-based diagramming tools, giving you complete control over your technical documentation and diagrams. Perfect for teams that need to document systems, design workflows, create technical specifications, and maintain architectural diagrams without relying on external services or sharing sensitive information with third parties.",instructions:null,changeLog:[{date:"2025-11-24",description:"Template Release"}],links:[{label:"Docker Hub",url:"https://hub.docker.com/r/stnsmith/fossflow"},{label:"Github",url:"https://github.com/stan-smith/FossFLOW"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fossflow"},appServiceImage:{type:"string",title:"App Service Image",default:"stnsmith/fossflow:latest"},enableServerStorage:{type:"string",title:"Enable Server Storage",default:"true",enum:["true","false"]},enableGitBackup:{type:"string",title:"Enable Git Backup",default:"false",enum:["true","false"]}}},benefits:[{title:"Self-Hosted Diagramming",description:"Keep your technical diagrams and workflows private on your own infrastructure without relying on cloud services."},{title:"Version Control Integration",description:"Optional Git backup support enables version history tracking and team collaboration on diagram changes."},{title:"Persistent Storage",description:"Server-side storage ensures your diagrams are saved securely and accessible across sessions and devices."}],features:[{title:"Technical Diagramming",description:"Create flowcharts, system architectures, database schemas, network diagrams, and process visualizations with an intuitive interface."},{title:"Server-Side Storage",description:"Configurable server storage saves diagrams persistently with organized file management in dedicated storage volumes."},{title:"Git Backup Support",description:"Enable Git integration to automatically backup diagrams, track changes, and collaborate with team members through version control."},{title:"Production Ready",description:"Optimized for production deployment with Node.js backend and efficient resource utilization for reliable performance."},{title:"Open Source",description:"Free and open-source software gives you complete transparency, customization options, and no vendor lock-in."}],tags:["Diagramming","Flowchart","Documentation","Visualization","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["NODE_ENV=production","ENABLE_SERVER_STORAGE=".concat(e.enableServerStorage),"STORAGE_PATH=/data/diagrams","ENABLE_GIT_BACKUP=".concat(e.enableGitBackup)].join("\n"),mounts:[{type:"volume",name:"diagrams",mountPath:"/data/diagrams"}]}}),{services:t}}},{slug:"foundryvtt",meta:{name:"FoundryVTT",description:"Foundry Virtual Tabletop is a modern, self-hosted virtual tabletop platform designed for playing tabletop roleplaying games online. It provides a comprehensive suite of tools for game masters and players, including dynamic lighting, fog of war, automated combat systems, and extensive customization options. FoundryVTT supports multiple game systems and offers a rich ecosystem of community-created modules and content. With its powerful JavaScript API and intuitive interface, FoundryVTT delivers an immersive gaming experience that rivals traditional tabletop gaming.",instructions:"FoundryVTT is proprietary software, so there is no official public `foundryvtt/foundryvtt` Docker image on Docker Hub. This template uses `felddy/foundryvtt`, which is the widely used community container maintained specifically for licensed FoundryVTT deployments. You must provide a valid FoundryVTT release URL and your foundryvtt.com account credentials so the container can download your licensed build. Keep these credentials private. On first startup, complete setup in the web UI, set an admin key, and activate your FoundryVTT license. All persistent data is stored in `/data`.",changeLog:[{date:"2026-05-19",description:"Updated to v14.361.0"},{date:"2026-03-26",description:"Added container source links and documented why community image is used"},{date:"2025-10-09",description:"Initial template release (SHA-18b36bf)"}],links:[{label:"Website",url:"https://foundryvtt.com/"},{label:"Documentation",url:"https://foundryvtt.com/kb/"},{label:"GitHub (container source)",url:"https://github.com/felddy/foundryvtt-docker"},{label:"Docker Hub (container image)",url:"https://hub.docker.com/r/felddy/foundryvtt"},{label:"Community",url:"https://discord.gg/foundryvtt"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","foundryReleaseUrl","foundryUsername","foundryPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"foundryvtt"},appServiceImage:{type:"string",title:"App Service Image",default:"felddy/foundryvtt:14.361.0"},foundryReleaseUrl:{type:"string",title:"FoundryVTT Release URL",description:"The URL of the FoundryVTT release"},foundryUsername:{type:"string",title:"FoundryVTT Username",description:"Your FoundryVTT.com account username"},foundryPassword:{type:"string",title:"FoundryVTT Password",description:"Your FoundryVTT.com account password"},foundryAdminKey:{type:"string",title:"Admin Key",description:"Initial admin key for first-time setup"},foundryLicenseKey:{type:"string",title:"License Key",description:"Your FoundryVTT license key (required for activation)",default:""}}},benefits:[{title:"Self-Hosted Control",description:"Maintain complete control over your virtual tabletop server with self-hosted deployment, ensuring your game data stays private and secure."},{title:"Rich Feature Set",description:"Access powerful features including dynamic lighting, fog of war, automated combat, and extensive customization options for immersive gaming experiences."},{title:"Extensive Module Ecosystem",description:"Benefit from a thriving community of developers creating modules and content to enhance your gaming sessions with additional functionality."},{title:"Multi-System Support",description:"Play virtually any tabletop RPG system with official and community-created game systems, from D&D to custom homebrew systems."}],features:[{title:"Dynamic Lighting System",description:"Advanced lighting and vision system that creates realistic shadows and line-of-sight mechanics for enhanced immersion during gameplay."},{title:"Automated Combat",description:"Streamlined combat system with automated dice rolling, damage calculation, and turn management to keep games flowing smoothly."},{title:"Rich Media Support",description:"Upload and manage maps, tokens, audio, and video content to create immersive gaming environments with high-quality assets."},{title:"Real-Time Collaboration",description:"Multiple players can interact simultaneously with live updates, chat, and collaborative tools for seamless online gaming sessions."},{title:"JavaScript API",description:"Powerful scripting capabilities allow for custom automation, macros, and module development to tailor the experience to your specific needs."},{title:"Cross-Platform Compatibility",description:"Works on Windows, Mac, Linux, and mobile devices, ensuring all players can join your games regardless of their preferred platform."}],tags:["Gaming","Virtual Tabletop","RPG","Self-Hosted","Multiplayer","Game Master Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["FOUNDRY_RELEASE_URL=".concat(e.foundryReleaseUrl),"FOUNDRY_USERNAME=".concat(e.foundryUsername),"FOUNDRY_PASSWORD=".concat(e.foundryPassword),"CONTAINER_CACHE=/data/container_cache"].concat(Oe(e.foundryAdminKey?["FOUNDRY_ADMIN_KEY=".concat(e.foundryAdminKey)]:[]),Oe(e.foundryLicenseKey?["FOUNDRY_LICENSE_KEY=".concat(e.foundryLicenseKey)]:[]));return t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e4}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"frappe-helpdesk",meta:{name:"Frappe Helpdesk",description:"Frappe Helpdesk is a comprehensive customer support and ticketing system built on the Frappe framework. It provides a complete solution for managing customer inquiries, support tickets, and service requests. The platform offers multi-channel support, automated workflows, knowledge base integration, and detailed analytics to help teams deliver exceptional customer service. Frappe Helpdesk features a modern, responsive interface that works seamlessly across desktop and mobile devices, making it easy for support agents to manage tickets and for customers to submit and track their requests. The system supports team collaboration, SLA management, and integration with various communication channels including email, chat, and social media platforms.",instructions:null,changeLog:[{date:"2025-10-08",description:"First Release"}],links:[{label:"Website",url:"https://frappe.io/"},{label:"Documentation",url:"https://frappe.io/docs"},{label:"GitHub",url:"https://github.com/frappe/helpdesk"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"frappe-helpdesk"},appServiceImage:{type:"string",title:"App Service Image",default:"frappe/bench:v5.25.9"}}},benefits:[{title:"Comprehensive Ticket Management",description:"Manage customer support tickets efficiently with features like ticket routing, priority assignment, status tracking, and automated workflows to ensure timely resolution of customer issues."},{title:"Multi-Channel Support",description:"Handle customer inquiries from multiple channels including email, web forms, chat, and social media platforms, all centralized in one unified interface for better organization and response management."},{title:"Team Collaboration",description:"Enable seamless collaboration among support team members with features like internal notes, ticket assignment, escalation workflows, and real-time updates to improve team efficiency and knowledge sharing."},{title:"Customer Self-Service",description:"Provide customers with self-service options including knowledge base access, ticket status tracking, and FAQ sections to reduce support load and improve customer satisfaction."}],features:[{title:"Modern Web Interface",description:"Clean, responsive web interface that works perfectly on desktop and mobile devices, providing an intuitive experience for both support agents and customers accessing the helpdesk system."},{title:"Automated Workflows",description:"Create automated workflows for ticket routing, escalation, and notifications to ensure consistent service delivery and reduce manual overhead in support operations."},{title:"SLA Management",description:"Set and monitor Service Level Agreements (SLAs) with automatic alerts and reporting to ensure support teams meet their performance targets and customer expectations."},{title:"Knowledge Base Integration",description:"Built-in knowledge base functionality to create, organize, and share support articles, FAQs, and documentation to help customers find answers independently."},{title:"Analytics and Reporting",description:"Comprehensive analytics and reporting features to track support metrics, team performance, customer satisfaction, and identify areas for improvement in support operations."},{title:"Email Integration",description:"Seamless email integration for ticket creation, updates, and notifications, allowing customers to interact with the helpdesk through their preferred email client."},{title:"Customizable Fields",description:"Customize ticket fields, forms, and workflows to match your specific support processes and requirements, ensuring the system adapts to your business needs."},{title:"Multi-Language Support",description:"Support for multiple languages to serve global customers and support teams, making the helpdesk accessible to users worldwide."}],tags:["Helpdesk","Customer Support","Ticketing","CRM","Open Source","Web App","Self-hosted","MariaDB","Redis"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v(),n='#!bin/bash\n\nif [ -d "/home/frappe/frappe-bench/apps/frappe" ]; then\n    echo "Bench already exists, skipping init"\n    cd frappe-bench\n    bench start\nelse\n    echo "Creating new bench..."\nfi\n\nbench init --skip-redis-config-generation frappe-bench --version version-15\n\ncd frappe-bench\n\n# Use containers instead of localhost\nbench set-mariadb-host $(PROJECT_NAME)_'.concat(e.appServiceName,"-mariadb\nbench set-redis-cache-host redis://:").concat(o,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379\nbench set-redis-queue-host redis://:").concat(o,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379\nbench set-redis-socketio-host redis://:").concat(o,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379\n\n# Remove redis, watch from Procfile\nsed -i '/redis/d' ./Procfile\nsed -i '/watch/d' ./Procfile\n\nbench get-app telephony --branch main\nbench get-app helpdesk --branch main\n\nbench new-site helpdesk.localhost --force --mariadb-root-password ").concat(i," --admin-password admin --no-mariadb-socket\n\nbench --site helpdesk.localhost install-app telephony\nbench --site helpdesk.localhost install-app helpdesk\nbench --site helpdesk.localhost set-config developer_mode 1\nbench --site helpdesk.localhost set-config mute_emails 1\nbench --site helpdesk.localhost set-config server_script_enabled 1\nbench --site helpdesk.localhost clear-cache\nbench use helpdesk.localhost\n\nbench start");return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SHELL=/bin/bash"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"workspace",mountPath:"/workspace"},{type:"file",content:n,mountPath:"/workspace/init.sh"}],deploy:{command:"bash /workspace/init.sh"}}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-mariadb"),rootPassword:i,password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),{services:t}}},{slug:"frappe-lms",meta:{name:"Frappe LMS",description:"LMS (Learning Management System) is a comprehensive educational platform built on the Frappe framework that enables organizations to create, manage, and deliver online learning content. The system provides course management, student enrollment, progress tracking, assessments, and interactive learning features. Built with modern web technologies, it offers a robust and scalable solution for educational institutions, corporate training programs, and online learning platforms. The Frappe-based architecture ensures reliability, extensibility, and ease of customization for specific learning requirements.",instructions:"Default login credentials are Administrator/admin. It takes 5-7 minutes to install the app.",changeLog:[{date:"2025-08-06",description:"First release"},{date:"2025-12-25",description:"Version bumped to v5.28.0"},{date:"2026-02-21",description:"Version bumped to v5.29.1"}],links:[{label:"Github",url:"https://github.com/frappe/lms"},{label:"Documentation",url:"https://frappe.io/learning"},{label:"Website",url:"https://frappeframework.com"}
1],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"frappe-lms"},appServiceImage:{type:"string",title:"App Service Image",default:"frappe/bench:v5.29.1"}}},benefits:[{title:"Comprehensive Learning Management",description:"Complete learning management system with course creation, student enrollment, progress tracking, and assessment capabilities for comprehensive educational delivery."},{title:"Modern Web Framework",description:"Built on the Frappe framework, providing a modern, scalable, and extensible architecture for reliable learning management operations."},{title:"Interactive Learning Features",description:"Rich interactive features including multimedia content support, discussion forums, assignments, and real-time progress monitoring for engaging learning experiences."},{title:"Multi-tenant Architecture",description:"Support for multiple organizations, courses, and user roles with secure isolation and customizable learning environments."},{title:"Assessment and Analytics",description:"Built-in assessment tools, grading systems, and comprehensive analytics for tracking student performance and learning outcomes."},{title:"Mobile Responsive Design",description:"Responsive design that works seamlessly across desktop, tablet, and mobile devices for accessible learning anywhere, anytime."}],features:[{title:"Course Management",description:"Create and manage courses with structured content, modules, lessons, and multimedia resources for comprehensive learning delivery."},{title:"Student Enrollment",description:"Streamlined student enrollment process with user management, role-based access control, and automated course assignments."},{title:"Progress Tracking",description:"Real-time progress monitoring with detailed analytics, c
1ompletion tracking, and performance metrics for both students and instructors."},{title:"Assessment Tools",description:"Built-in assessment creation tools with multiple question types, automated grading, and detailed feedback mechanisms."},{title:"Discussion Forums",description:"Interactive discussion forums for student collaboration, Q&A sessions, and community-based learning experiences."},{title:"Content Management",description:"Rich content management system supporting various media types, file uploads, and structured content organization."}],tags:["Learning Management","Education","E-Learning","Course Management","Student Portal"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v(),n='#!bin/bash\n\nif [ -d "/home/frappe/frappe-bench/apps/frappe" ]; then\n    echo "Bench already exists, skipping init"\n    cd frappe-bench\n    bench start\nelse\n    echo "Creating new bench..."\nfi\n\nexport PATH="${NVM_DIR}/versions/node/v${NODE_VERSION_DEVELOP}/bin/:${PATH}"\n\nbench init --skip-redis-config-generation frappe-bench\n\ncd frappe-bench\n\n# Use containers instead of localhost\nbench set-mariadb-host $(PROJECT_NAME)_'.concat(e.appServiceName,"-mariadb\nbench set-redis-cache-host redis://:").concat(o,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379\nbench set-redis-queue-host redis://:").concat(o,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379\nbench set-redis-socketio-host redis://:").concat(o,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379\n\n# Remove redis, watch from Procfile\nsed -i '/redis/d' ./Procfile\nsed -i '/watch/d' ./Procfile\n\nbench get-app lms\n\nbench new-site lms.localhost --force --mariadb-root-password ").concat(a," --admin-password admin --no-mariadb-socket\n\nbench --site lms.localhost install-app lms\nbench --site lms.localhost set-config developer_mode 1\nbench --site lms.localhost clear-cache\nbench use lms.localhost\n\nbench start\n  ");return t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-mariadb"),rootPassword:a,password:i}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["SHELL=/bin/bash","NODE_VERSION_DEVELOP=18","NVM_DIR=/home/frappe/.nvm"].join("\n"),mounts:[{type:"file",content:n,mountPath:"/workspace/init.sh"},{type:"volume",name:"workspace",mountPath:"/workspace"}],deploy:{command:"bash /workspace/init.sh"}}}),{services:t}}},{slug:"freescout",meta:{name:"Freescout",description:"FreeScout is a powerful, open-source help desk and shared inbox application. It's a self-hosted alternative to Zendesk & Help Scout, offering you complete control over your customer support without compromising on privacy. FreeScout is designed to be lightweight yet robust, capable of handling unlimited support agents, tickets, and mailboxes. It offers seamless email integration, automatic replies, internal notes, conversation forwarding, merging, and moving, among other features. The application is mobile-friendly and supports multiple languages. It also includes features like push notifications, starred conversations, collision detection, and flexible notifications for user agents. FreeScout also offers a range of integrations, including Slack, WhatsApp, Facebook, and Telegram, and supports translating tickets, live chat, time tracking, custom fields, and more. It's the perfect solution for those who need professional customer support but can't afford to pay for Zendesk or Help Scout.",instructions:null,changeLog:[{date:"2023-1-4",description:"first release"},{date:"2023-2-23",description:"Update to v1.16.25"},{date:"2025-01-14",description:"Version bumped to php8.1-1.17.98"},{date:"2025-02-25",description:"Version bumped to php8.1-1.17.107"},{date:"2026-02-21",description:"Version bumped to php8.1-1.17.145"},{date:"2026-04-29",description:"Version bumped to php8.1-1.17.158"}],links:[{label:"Website",url:"https://freescout.net"},{label:"Documentation",url:"https://github.com/freescout-helpdesk/freescout/wiki"},{label:"Github",url:"https://github.com/freescout-helpdesk/freescout/"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","adminEmail","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"freescout"},appServiceImage:{type:"string",title:"App Service Image",default:"tiredofit/freescout:php8.1-1.17.158"},databaseServiceName:{type:"string",title:"Database Service Name",default:"freescout-db"},adminEmail:{type:"string",title:"Email",default:"[email protected]"},adminPassword:{type:"string",title:"Password",default:"changeme"}}},benefits:[{title:"Cost-Effective Customer Support Solution",description:"FreeScout is a free, open-source help desk and shared inbox solution that provides a cost-effective alternative to paid services like Zendesk and Help Scout. It allows businesses to offer professional customer support without incurring high costs."},{title:"Privacy and Control",description:"As a self-hosted solution, FreeScout gives you complete control over your data and operations. It ensures your privacy and prevents you from being locked into a service you don't control."},{title:"Unlimited Support Agents and Tickets",description:"FreeScout does not limit the number of support agents, tickets, or mailboxes you can have. This allows for scalability and flexibility in managing your customer support."}],features:[{title:"Multilingual Support",description:"FreeScout supports multiple languages, making it a versatile tool for businesses with a global customer base."},{title:"Seamless Email Integration",description:"FreeScout integrates seamlessly with your email, ensuring smooth communication with customers."},{title:"Advanced Conversation Management",description:"FreeScout allows for advanced conversation management, including starred conversations, auto replies, internal notes, forwarding and merging conversations, and more."},{title:"Real-Time Reports",description:"FreeScout provides real-time reports, helping you monitor and improve your customer support performance."},{title:"Integration with Various Platforms",description:"FreeScout can be integrated with various platforms, including Slack, WhatsApp, Facebook, and Telegram, for efficient communication and support."},{title:"Knowledge Base and Live Chat",description:"FreeScout includes a knowledge base for self-service support and a live chat feature for real-time assistance."},{title:"Custom Fields and White-Labeling",description:"FreeScout allows for customization with custom fields and white-labeling, enabling you to tailor the tool to your business needs."}],tags:["Customer Support"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ADMIN_EMAIL=".concat(e.adminEmail),"ADMIN_FIRST_NAME=".concat(e.appServiceName),"ADMIN_LAST_NAME=User","ADMIN_PASS=".concat(e.adminPassword),"APPLICATION_NAME=".concat(e.appServiceName),"DB_TYPE=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_PORT=3306","DB_USER=mysql","DB_PASS=".concat(a),"DB_NAME=$(PROJECT_NAME)","SITE_URL=https://$(PRIMARY_DOMAIN)","APP_FORCE_HTTPS=true","ENABLE_SSL_PROXY=true","DISPLAY_ERRORS=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"logs",mountPath:"/www/logs"},{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"modules",mountPath:"/assets/modules"}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"freshrss",meta:{name:"Freshrss",description:"FreshRSS is a free, self-hostable aggregator for RSS feeds. It allows you to gather and read your favorite news sources in one place, providing a streamlined and efficient way to stay informed. The app supports multiple platforms and can be easily accessed through a web user interface. FreshRSS also offers the ability to use external databases, enabling users to create a user and database in their MySQL/MariaDB server. Additional extensions can be added to enhance the functionality of the app. FreshRSS is designed to be simple to use, yet powerful, providing a comprehensive solution for RSS feed aggregation.",instructions:null,changeLog:[{date:"2022-11-14",description:"first release"},{date:"2025-01-14",description:"Version bumped to 1.25.0"},{date:"2025-02-25",description:"Version bumped to 1.26.0"},{date:"2025-07-21",description:"Version bumped to 1.26.3"},{date:"2025-12-25",description:"Version bumped to 1.28.0"},{date:"2026-02-21",description:"Version bumped to 1.28.1"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-freshrss"},{label:"Github",url:"https://github.com/linuxserver/docker-freshrss"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"freshrss"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/freshrss:1.28.1"}}},benefits:[{title:"Stay Updated",description:"Freshrss is a self-hostable aggregator for RSS feeds. It allows you to stay updated with your favorite websites, blogs, and more, all in one place."},{title:"Multi-platform Support",description:"Freshrss supports multiple platforms. It utilizes the docker manifest for multi-platform awareness, ensuring you can use it on your preferred platform."},{title:"Easy Setup",description:"Freshrss comes with an easy setup wizard. For external databases, you can create a user and database in your MySQL/MariaDB server and follow the setup wizard in the web user interface."}],features:[{title:"RSS Feed Aggregator",description:"Freshrss is a powerful RSS feed aggregator. It allows you to collect and view content from your favorite websites, blogs, and more, all in one place."},{title:"Self-Hostable",description:"Freshrss is self-hostable, giving you full control over your data and privacy. You can host it on your own server and access it from anywhere."},{title:"Multi-platform Support",description:"Freshrss supports multiple platforms. Whether you're using x86-64 or arm64, Freshrss has got you covered."},{title:"Easy Setup",description:"Freshrss comes with an easy setup wizard. It guides you through the process of setting up the application, making it easy even for non-technical users."},{title:"External Database Support",description:"Freshrss supports external databases. You can create a user and database in your MySQL/MariaDB server and connect it to Freshrss."}],tags:["RSS"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/config"}]}}),{services:t}}},{slug:"fusionauth",meta:{name:"FusionAuth",description:"FusionAuth is a powerful, self-hosted identity and access management platform designed for developers. It provides a robust set of features, including user authentication, authorization, and user management, all accessible through a modern API or web interface. FusionAuth supports advanced features like social login, SSO, passwordless login, and multi-factor authentication.",instructions:null,changeLog:[{date:"2026-09-24",description:"Removed OpenSearch dependency - modern Elasticsearch client libraries reject OpenSearch because it doesn't send the X-Elastic-Product header, causing a permanent SERVER_DOWN error. Switched to SEARCH_TYPE=database, which FusionAuth supports natively and only affects the admin UI's advanced user search."},{date:"2026-05-19",description:"Updated to v1.66.0"},{date:"2025-01-17",description:"Template Release"},{date:"2025-07-21",description:"Version bumped to 1.57.1"},{date:"2025-12-25",description:"Version bumped to 1.62.0"}],links:[{label:"Documentation",url:"https://fusionauth.io/docs"},{label:"Github",url:"https://github.com/FusionAuth/fusionauth-containers"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"fusionauth"},appServiceImage:{type:"string",title:"App Service Image",default:"fusionauth/fusionauth-app:1.66.0"}}},benefits:[{title:"Comprehensive Identity Management",description:"FusionAuth allows you to manage user authentication, authorization, and profiles efficiently through a user-friendly interface or APIs."},{title:"Developer-Centric Solution",description:"Designed with developers in mind, FusionAuth is easy to integrate into any application stack with extensive documentation and SDKs."},{title:"Secure and Flexible",description:"FusionAuth provides advanced security features such as SSO, passwordless login, and multi-factor authentication for ultimate flexibility."}],features:[{title:"Multi-Factor Authentication",description:"Enhance user security with support for TOTP, SMS, and email-based multi-factor authentication."},{title:"Social Login",description:"Easily integrate with popular social providers like Google, Facebook, and Twitter for quick user onboarding."},{title:"Customizable Branding",description:"Fully customize the look and feel of your login pages and user portals to match your brand."},{title:"Role-Based Access Control",description:"Manage user permissions and access with fine-grained role-based access control."}],tags:["Identity Management","Authentication","Authorization","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=jdbc:postgresql://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"DATABASE_ROOT_USERNAME=postgres","DATABASE_ROOT_PASSWORD=".concat(a),"DATABASE_USERNAME=postgres","DATABASE_PASSWORD=".concat(a),"FUSIONAUTH_APP_MEMORY=512M","FUSIONAUTH_APP_RUNTIME_MODE=production","FUSIONAUTH_APP_URL=https://$(PRIMARY_DOMAIN)","SEARCH_TYPE=database"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9011}],mounts:[{type:"volume",name:"config",mountPath:"/usr/local/fusionauth/config"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"gameyfin",meta:{name:"Gameyfin",description:"Gameyfin is a free and open-source application for managing your video game library. Track installed and wanted games, fetch metadata (e.g. IGDB, Steam), and use plugins for downloads and extra providers. It runs as a Kotlin / Spring Boot app with a web UI, PF4J plugins, and optional OIDC. Docker is the recommended install path; persist db, data, plugin data, logs, and mount at least one folder for your game files.",instructions:"APP_KEY is generated on deploy (32 random bytes, Base64). Do not change it\nafter data exists or the app cannot decrypt secrets in the database; if you\nrecreate the service, restore the same APP_KEY from a backup.\nLibraries: Put (or bind) your games under the library volume; inside\nGameyfin, add libraries whose paths are under `/library`\n(https://gameyfin.org/installation/getting-started/).\nPUID / PGID default to 1000; set them to your host user/group if file\npermissions on mounted volumes are wrong.\nOptional: for the bundled torrent plugin, publish host ports 6969 and 6881\non this service.\n",changeLog:[{date:"2025-10-02",description:"First Release"},{date:"2026-03-20",description:"Website/docs links, setup instructions, plugindata volume, /library mount, Base64 APP_KEY, APP_URL, configurable PUID/PGID (1000), image pin 2.4.0"}],links:[{label:"Website",url:"https://gameyfin.org"},{label:"Documentation",url:"https://gameyfin.org/installation/docker/"},{label:"GitHub",url:"https://github.com/gameyfin/gameyfin"},{label:"Container registry (GHCR)",url:"https://github.com/gameyfin/gameyfin/pkgs/container/gameyfin"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","puid","pgid"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gameyfin"},appServiceImage:{type:"string",title:"Gameyfin Image",default:"ghcr.io/gameyfin/gameyfin:2.4.0"},puid:{type:"string",title:"PUID",default:"1000",description:"Container user ID for file ownership (non-root)."},pgid:{type:"string",title:"PGID",default:"1000",description:"Container group ID for file ownership (non-root)."}}},benefits:[{title:"Self-hosted library",description:"Own your metadata and library layout without relying on a hosted service."},{title:"Metadata & plugins",description:"Multiple metadata sources and a plugin system with data under plugindata."},{title:"Reverse-proxy ready",description:"APP_URL is set from your primary domain for correct links and first-run logs."}],features:[{title:"Library & metadata",description:"Organize games and enrich them with IGDB and other providers."},{title:"Plugin system",description:"Download and metadata plugins; state persists in /opt/gameyfin/plugindata."},{title:"Docker layout",description:"Matches upstream compose for db, data, plugindata, logs, plus a library path."},{title:"Encrypted DB fields",description:"APP_KEY secures sensitive values stored in the embedded database."},{title:"Authentication",description:"Local accounts and optional OpenID Connect."}],tags:["Games","Library","Self-Hosted","Metadata","Docker","IGDB"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["APP_KEY=".concat(a),"APP_URL=https://$(PRIMARY_DOMAIN)","PUID=".concat(e.puid),"PGID=".concat(e.pgid)].join("\n"),mounts:[{type:"volume",name:"db",mountPath:"/opt/gameyfin/db"},{type:"volume",name:"data",mountPath:"/opt/gameyfin/data"},{type:"volume",name:"plugindata",mountPath:"/opt/gameyfin/plugindata"},{type:"volume",name:"logs",mountPath:"/opt/gameyfin/logs"},{type:"volume",name:"library",mountPath:"/library"}]}}),{services:t}}},{slug:"gatus",meta:{name:"Gatus",description:"Gatus is a self-hosted automated service health dashboard that monitors the uptime and performance of your services, APIs, and websites. The application provides a clean, modern web interface to visualize the health status of all your monitored endpoints in real-time. Gatus performs periodic health checks on configured endpoints, evaluating custom conditions like HTTP status codes, response body content, response times, and more. The dashboard displays detailed metrics including uptime percentages, average response times, and historical status data. With supp
1ort for various alerting integrations including Discord, Slack, PagerDuty, and custom webhooks, Gatus can notify you immediately when services go down or fail health checks. The application supports complex condition evaluation using JSON path queries, pattern matching, and response time thresholds. Perfect for DevOps teams monitoring microservices infrastructure, system administrators tracking critical services, developers needing uptime monitoring for their applications, or anyone who wants a simple, self-hosted alternative to commercial monitoring services with complete control over their health checks and data.",instructions:"you can modify the config from the config.yaml file in the storage section.",changeLog:[{date:"2025-12-17",description:"Template Release"},{date:"2026-04-29",description:"Version bumped to v5.35.0"}],links:[{label:"GitHub",url:"https://github.com/TwiN/gatus"},{label:"Docker Hub",url:"https://hub.docker.com/r/twinproduction/gatus"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gatus"},appServiceImage:{type:"string",title:"App Service Image",default:"twinproduction/gatus:v5.35.0"}}},benefits:[{title:"Automated Health Monitoring",description:"Continuously monitor your services, APIs, and websites with automated health checks and real-time status updates."},{title:"Custom Condition Evaluation",description:"Define complex health check conditions using status codes, response body content, JSON path queries, and response time thresholds."},{title:"Alerting Integrations",description:"Get notified immediately when services fail through Discord, Slack, PagerDuty, email, or custom webhooks."},{title:"Self-Hosted Control",description:"Complete ownership of your monitoring data and health check configurations without relying on external services."}],features:[{title:"Health Dashboard",description:"Clean, modern web interface displaying real-time health status of all monitored endpoints with uptime percentages and metrics."},{title:"Flexible Health Checks",description:"Configure health checks with custom intervals, conditions, and evaluation criteria for each endpoint."},{title:"Response Time Monitoring",description:"Track and alert on response times to ensure services meet performance requirements."},{title:"JSON Path Queries",description:"Evaluate complex conditions using JSON path queries to check specific fields in API responses."},{title:"Pattern Matching",description:"Use pattern matching to verify response body content meets expected criteria."},{title:"Historical Data",description:"View historical status data and trends to identify patterns and recurring issues."},{title:"Multiple Alert Channels",description:"Configure alerts through Discord, Slack, PagerDuty, email, Teams, Mattermost, and custom webhooks."},{title:"YAML Configuration",description:"Simple YAML-based configuration for easy setup and management of monitoring endpoints."}],tags:["Monitoring","Health Check","Uptime","Dashboard","Self-Hosted","DevOps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a='\nendpoints:\n  - name: website\n    url: "https://twin.sh/health"\n    interval: 5m\n    conditions:\n      - "[STATUS] == 200"\n      - "[BODY].status == UP"\n      - "[RESPONSE_TIME] < 300"\n\n  - name: make-sure-header-is-rendered\n    url: "https://example.org/"\n    interval: 60s\n    conditions:\n      - "[STATUS] == 200"\n      - "[BODY] == pat(*<h1>Example Domain</h1>*)"\n'.trim();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"file",content:a,mountPath:"/config/config.yaml"}]}}),{services:t}}},{slug:"gerrit",meta:{name:"Gerrit",description:"Gerrit is a web-based code review tool that integrates with Git. It provides a framework for reviewing code changes before they are merged into the codebase, making it an essential tool for collaborative software development.",instructions:null,changeLog:[{date:"2025-04-03",description:"Initial template release"},{date:"2025-07-21",description:"Version bumped to 3.12.1"},{date:"2025-12-25",description:"Version bumped to 3.13.1"},{date:"2026-02-21",description:"Version bumped to 3.13.3"},{date:"2026-05-06",description:"Version bumped to 3.13.6"}],links:[{label:"Website",url:"https://www.gerritcodereview.com/"},{label:"Documentation",url:"https://gerrit-documentation.storage.googleapis.com/Documentation/3.7.1/index.html"},{label:"GitHub",url:"https://github.com/GerritCodeReview/gerrit"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gerrit"},appServiceImage:{type:"string",title:"Gerrit Image",default:"gerritcodereview/gerrit:3.13.6"}}},benefits:[{title:"Code Review",description:"Streamlined code review process with inline comments."},{title:"Git Integration",description:"Seamless integration with Git repositories."},{title:"Access Control",description:"Fine-grained access control for projects and branches."},{title:"Collaboration",description:"Enhanced team collaboration through code review."}],features:[{title:"Web Interface",description:"User-friendly web interface for code review."},{title:"SSH Access",description:"Secure SSH access for Git operations."},{title:"Project Management",description:"Built-in project and repository management."},{title:"Plugin System",description:"Extensible through a rich plugin ecosystem."}],tags:["Git","Code Review","Version Control","Collaboration","Development"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"web-$(EASYPANEL_DOMAIN)",port:8080},{host:"$(EASYPANEL_DOMAIN)",port:29418}],mounts:[{type:"volume",name:"git_volume",mountPath:"/var/gerrit/git"},{type:"volume",name:"index_volume",mountPath:"/var/gerrit/index"},{type:"volume",name:"cache_volume",mountPath:"/var/gerrit/cache"}]}}),{services:t}}},{slug:"ghost-file-sharing",meta:{name:"Ghost File Sharing",description:"Our app is a powerful tool designed to streamline your workflow and enhance productivity. It allows you to easily find code, projects, and people on GitHub, making it simpler than ever to collaborate and contribute to open-source projects. With this app, you can stay updated with product updates, company news, and more by subscribing to our newsletter. It also offers a range of features designed to ensure the security of your work, making it a reliable choice for enterprises. Whether you're a developer looking for a robust platform or a company seeking to leverage the power of open-source, our app is the perfect solution for you.",instructions:null,changeLog:[{date:"2023-01-28",description:"Stable build. Hello, Easypanel!"}],links:[{label:"Github",url:"https://github.com/voxelin/gh0.st"}],contributors:[{name:"Saputskyi Petro",url:"https://github.com/voxelin"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gh0.st"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/voxelin/ghost:stable"}}},benefits:[{title:"Efficient Code Management",description:"The app provides a platform for efficient code management. It allows users to keep track of their code changes and revert back to any previous state of the project. This makes it easier to manage and control the versions of your project."},{title:"Collaboration",description:"The app enables users to collaborate on projects. It allows multiple people to work on the same project at the same time, making it easier to collaborate and contribute to projects."}],features:[{title:"Code Repository",description:"The app provides a code repository where users can store and manage their code. This repository is accessible from anywhere, making it easy to work on your projects from any location."},{title:"Version Control",description:"The app includes a version control feature that allows users to keep track of changes made to the code. This feature makes it easy to revert back to a previous version of the project if necessary."},{title:"Collaboration Tools",description:"The app includes tools that make it easy to collaborate on projects. These tools include features for sharing code, discussing changes, and reviewing code."}],tags:["Code Hosting","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["GHOST_HOST=0.0.0.0","GHOST_PORT=8080","GHOST_SIZE_LIMIT=10","GHOST_DB_PATH=/data/files.db","GHOST_FAKE_SSL=true","GHOST_INDEX_PATH=/data/index.html","GHOST_BLACKLIST_PATH=/data/blacklist.txt"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"ghost",meta:{name:"Ghost",description:"Ghost is a robust application designed for new-media creators looking to turn their audience into a business. It provides a suite of modern tools to build a website, publish engaging content, send newsletters, and offer paid subscriptions to members. Ghost allows you to launch your website with a selection of beautiful free themes and design settings that can be tweaked to match your brand and style. It also offers an editor built for professionals, with advanced workflows and a user-friendly interface. With Ghost, you can expand your story beyond words, incorporating image galleries, gifs, video, audio, and more into your content. The app also includes built-in newsletters, allowing you to deliver posts by email to your audience. Ghost simplifies the process of building an indie publication with memberships and subscriptions, with native signup forms that convert anonymous views into logged-in members. It also provides detailed engagement analytics to understand what content is getting the most attention and who your biggest fans are. Ghost also supports offers and promotions to entice new subscribers and grow your business.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2023-02-24",description:"Update to v5.35.1"},{date:"2023-06-30",description:"Update to v5.53.3"},{date:"2023-07-23",description:"Update to v5"},{date:"2025-01-14",description:"Version bumped to 5.106.1-alpine"},{date:"2025-02-25",description:"Version bumped to 5.110.1"},{date:"2025-07-21",description:"Version bumped to 5.130.1"},{date:"2026-04-29",description:"Version bumped to 6.35.0"}],links:[{label:"Website",url:"https://ghost.org/"},{label:"Documentation",url:"https://ghost.org/resources/"},{label:"Github",url:"https://github.com/TryGhost/Ghost"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"siriokun",url:"https://github.com/siriokun"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","smtpServerHost","smtpServerPort","smtpServerUsername","smtpServerPassword","smtpFromEmail"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ghost"},appServiceImage:{type:"string",title:"App Service Image",default:"ghost:6.35.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"ghost-db"},smtpServerHost:{type:"string",title:"SMTP Server Host",default:"smtp.example.com"},smtpServerPort:{type:"string",title:"SMTP Server Port",default:"587"},smtpServerUsername:{type:"string",title:"SMTP Server Username",default:"example"},smtpServerPassword:{type:"string",title:"SMTP Server Password",default:"password"},smtpFromEmail:{type:"string",title:"SMTP From Email",default:"[email protected]"}}},benefits:[{title:"Turn Your Audience into a Business",description:"Ghost is a powerful app that enables new-media creators to publish, share, and grow a business around their content. It offers modern tools to build a website, publish content, send newsletters, and offer paid subscriptions to members."},{title:"Advanced Creator Tools",description:"Ghost provides an array of advanced tools to make your profile stand out. It offers a selection of beautiful free themes and design settings to match your brand and style. You can also explore hundreds of custom themes in the marketplace or build your own design from scratch."},{title:"Grow Your Audience",description:"Ghost helps transform clicks into contacts. It offers native signup forms that turn anonymous views into logged-in members. It also allows people to sign up for free or purchase a paid subscription to support your work across monthly and yearly premium tiers."},{title:"Run Your Business",description:"Ghost helps you manage your memberships, understand your audience, and grow your business. It provides detailed engagement analytics so you can understand what content is getting the most attention and who your biggest fans are."}],features:[{title:"Publish by Web & Email Newsletter",description:"Ghost offers an editor built for professionals. It allows you to publish content via web and email newsletters. The interface is invisible until you need it, and powerful when you do."},{title:"Rich Media & Dynamic Cards",description:"Ghost allows you to expand your story with image galleries, gifs, video, audio, products, info boxes, accordion toggles, downloadable files, bookmarks, and much more."},{title:"Newsletters Built-In",description:"Ghost comes with built-in newsletter functionality. You can deliver posts by email newsletter to your audience, so they\u2019ll be in the loop whenever something new goes live."},{title:"Offers & Promotions",description:"Ghost allows you to entice new subscribers with offers and promotions. You can run discounts or special promotions for live events to grow your business."},{title:"Integrations",description:"Ghost works with a variety of other tools including referral programs, push notifications, social sharing, payment gateways, A/B testing, desktop editors, mobile apps, comments, notifications, and more."}],tags:["CMS","Blog","Business Apps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:2368}],mounts:[{type:"volume",name:"content",mountPath:"/var/lib/ghost/content"}],env:["url=https://$(PRIMARY_DOMAIN)","database__client=mysql","database__connection__host=$(PROJECT_NAME)_".concat(e.databaseServiceName),"database__connection__user=mysql","database__connection__password=".concat(a),"database__connection__database=$(PROJECT_NAME)","mail__transport=SMTP","mail__options__host=".concat(e.smtpServerHost),"mail__options__port=".concat(e.smtpServerPort),"mail__options__auth__user=".concat(e.smtpServerUsername),"mail__options__auth__pass=".concat(e.smtpServerPassword),"mail__from=".concat(e.smtpFromEmail)].join("\n")}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"ghostboard",meta:{name:"Ghostboard",description:"Ghostboard is a minimal shared scratchpad \u2014 open a board URL and anyone else with that URL can type alongside you in real time, no account needed. Everything is held in memory only and clears automatically a few minutes after everyone disconnects, so there's nothing to back up and nothing to lose track of. It has no login of its own, so this template protects it with HTTP Basic Auth instead.",instructions:"Open the app URL and sign in with the HTTP Basic Auth prompt using username admin and the auto-generated password shown as this service's first basic auth entry in 
1Easypanel. From there, visit any board path (e.g. /my-notes) to start a shared scratchpad \u2014 share that same URL with anyone you want editing alongside you. Boards are purely in-memory and clear themselves about 5 minutes after the last person disconnects.",changeLog:[{date:"2026-07-24",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/jon6fingrs/ghostboard"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"ghostboard"},appServiceImage:{type:"string",title:"App Service Image",default:"thehelpfulidiot/ghostboard-server:3.4.3"}}},benefits:[{title:"Nothing to Set Up",description:"Just visit a board URL \u2014 no account, no database, no configuration needed on either end."},{title:"Leaves No Trace",description:"Boards live in memory only and clear themselves automatically after everyone leaves, so there's nothing to purge or back up later."},{title:"Lightweight",description:"A single small container with no database or persistent storage to provision."}],features:[{title:"Real-Time Shared Editing",description:"Everyone viewing the same board URL sees edits live, without refreshing."},{title:"Markdown Support",description:"Switch a board into Markdown mode for lightweight formatting."},{title:"Light and Dark Mode",description:"Toggle the editor theme to whatever's easiest on your eyes."}],tags:["Collaboration","Notes","Self-Hosted","Real-Time"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(20);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],basicAuth:[{username:"admin",password:a}]}}),{services:t}}},{slug:"ghostfolio",meta:{name:"Ghostfolio",description:"Ghostfolio is a self-hosted wealth management application that allows users to track and analyze their investment portfolios. It provides insights into asset allocation, risk exposure, and financial growth, helping individuals make informed decisions about their finances. With Ghostfolio, users can connect their brokerage accounts, monitor their investments in real-time, and gain a comprehensive overview of their financial health. The application is accessible via a web interface and offers API support for integrations. Built for privacy and control, Ghostfolio is an excellent solution for self-hosted personal finance management.",instructions:"Click on get started, create account and save the generated token safely for logins.",changeLog:[{date:"2025-02-06",description:"Template Release"},{date:"2025-02-25",description:"Version bumped to 2.140.0"},{date:"2025-07-21",description:"Version bumped to 2.183.0"},{date:"2025-12-25",description:"Fixed image URL and version bumped to 2.224.2"},{date:"2026-02-21",description:"Version bumped to 2.240.0"},{date:"2026-04-29",description:"Version bumped to 2.255.0"}],links:[{label:"Documentation",url:"https://ghostfolio.dev/docs/"},{label:"Github",url:"https://github.com/ghostfolio/ghostfolio"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ghostfolio"},appServiceImage:{type:"string",title:"App Service Image",default:"ghostfolio/ghostfolio:2.255.0"}}},benefits:[{title:"Personal Finance Management",description:"Ghostfolio provides users with a self-hosted solution to track and manage their investment portfolios, ensuring complete privacy and control."},{title:"Real-Time Portfolio Insights",description:"Users can monitor asset performance, view real-time price updates, and analyze their financial growth with powerful visualization tools."},{title:"Secure and Private",description:"Ghostfolio is designed for self-hosting, meaning all financial data remains private and under user control, without reliance on third-party services."}],features:[{title:"Multi-Asset Support",description:"Track stocks, ETFs, cryptocurrencies, and other financial assets in a single dashboard."},{title:"API Access",description:"Integrate Ghostfolio with other applications using its API for automated data retrieval."},{title:"Risk Analysis",description:"Assess portfolio risk exposure with advanced analytics and performance indicators."},{title:"Transaction Tracking",description:"Log and monitor investment transactions to maintain an accurate financial history."}],tags:["Investment Tracking","Personal Finance","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_PASSWORD=".concat(i),"ACCESS_TOKEN_SALT=".concat(n),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?connect_timeout=300&sslmode=prefer"),"JWT_SECRET_KEY=".concat(o)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"ghstats",meta:{name:"GHStats",description:"GHStats is a self-hosted GitHub statistics and analytics tool that helps you track and visualize your GitHub repository metrics. Monitor stars, traffic, clones, views, and other important repository statistics over time with an intuitive web interface. The application collects and stores historical data from your GitHub repositories, allowing you to analyze trends and growth patterns that would otherwise be lost after GitHub's 14-day statistics retention period. Perfect for developers, project maintainers, and organizations who want to maintain long-term analytics of their GitHub presence. GHStats requires a GitHub personal access token to fetch repository statistics and stores all collected data persistently for historical analysis and visualization.",instructions:"Create a GitHub personal access token before deploying. Open https://github.com/settings/tokens and generate a classic token with at least the public_repo scope so GHStats can collect repository traffic data. If you want private repositories included, use repo scope and set GHS_INCLUDE_PRIVATE=true in a custom environment override. Paste the token into the GitHub Token field in this template. The app reads it as GITHUB_TOKEN and starts collecting metrics into /app/data. After deployment, open the assigned domain on port 8080. The first sync may take a little time depending on repository count, then dashboard history updates on the hourly scheduler.",changeLog:[{date:"2025-10-30",description:"Initial Template Release"},{date:"2026-03-25",description:"Added setup instructions for required githubToken and token scopes"},{date:"2026-04-29",description:"Version bumped to v0.8.0"}],links:[{label:"Documentation",url:"https://github.com/vladkens/ghstats/blob/main/readme.md"},{label:"GitHub",url:"https://github.com/vladkens/ghstats"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","githubToken"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ghstats"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/vladkens/ghstats:v0.8.0",description:"GHStats Docker image"},githubToken:{type:"string",title:"GitHub Token",description:"GitHub personal access token for fetching repository statistics"}}},benefits:[{title:"Historical Data Retention",description:"Keep long-term history of your GitHub repository statistics beyond GitHub's default 14-day retention period for comprehensive analytics."},{title:"Self-Hosted Analytics",description:"Host your own GitHub statistics dashboard with complete control over your data and privacy without relying on third-party services."},{title:"Repository Insights",description:"Track stars, traffic, clones, views, and other metrics to understand your repository's growth and popularity trends over time."},{title:"Data Persistence",description:"All collected statistics are stored persistently in a dedicated volume, ensuring your historical data is never lost."}],features:[{title:"GitHub Statistics Tracking",description:"Automatically collects and stores repository statistics including stars, forks, traffic, clones, and views from your GitHub repositories."},{title:"Historical Data Storage",description:"Maintains long-term historical records of all collected metrics, allowing you to analyze trends beyond GitHub's limited retention period."},{title:"Web Dashboard",description:"Access your GitHub statistics through a clean web interface with visualizations and insights accessible from any device."},{title:"Multiple Repositories",description:"Track statistics across multiple GitHub repositories from a single dashboard for comprehensive project portfolio monitoring."},{title:"Persistent Storage",description:"All collected data is stored in a persistent volume mounted at /app/data, ensuring your statistics history survives container restarts."},{title:"Automated Collection",description:"Automatically fetches and updates repository statistics at regular intervals without manual intervention required."},{title:"Lightweight Deployment",description:"Runs efficiently with minimal resource requirements, perfect for any Docker-capable host or cloud environment."},{title:"GitHub API Integration",description:"Uses official GitHub API with your personal access token to securely fetch repository data and statistics."}],tags:["GitHub","Analytics","Statistics","Monitoring","Self-Hosted","Repository","Tracking","Metrics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["GITHUB_TOKEN=".concat(e.githubToken)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"gitea",meta:{name:"Gitea",description:"Gitea is a lightweight DevOps platform designed to streamline operations from planning to production. It enables the creation and management of repositories, exploration of commit history and code files, review and merging of code commits, and more. Gitea also supports standard Git features, including tags, cherry-picking, hooks, and integrated collaboration tools. It features an integrated CI/CD system, Gitea Actions, that is compatible with GitHub Actions. With Gitea, you can efficiently manage a project's requirements, features, and bugs through issue tasks, labeling, and kanban project boards. It supports more than 20 different kinds of public or private package management. Gitea is an open-source project that accelerates development and collaboration, offering universal compatibility and flexible deployment options. It also provides a powerful built-in CI/CD system and is developed with a focus on security. Gitea can be tailored to your requirements and is integrated with your favorite tools to boost your workflow.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2023-2-24",description:"Update to v1.18.4"},{date:"2025-01-14",description:"Version bumped to 1.23.1"},{date:"2025-02-25",description:"Version bumped to 1.23.4"},{date:"2025-07-21",description:"Version bumped to 1.24"},{date:"2025-12-25",description:"Version bumped to 1.25.3"},{date:"2026-04-29",description:"Version bumped to 1.26.1"}
1],links:[{label:"Website",url:"https://gitea.io/en-us/"},{label:"Documentation",url:"https://docs.gitea.io/en-us/"},{label:"Github",url:"https://github.com/go-gitea/gitea"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"gitea"},appServiceImage:{type:"string",title:"App Service Image",default:"gitea/gitea:1.26.1"},databaseType:{type:"string",title:"Database Type",oneOf:[{enum:["postgres"],title:"Postgres"},{enum:["mysql"],title:"MySQL"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"gitea-db"}}},benefits:[{title:"Efficient Development and Collaboration",description:"Gitea is a lightweight DevOps platform that accelerates development and collaboration. It offers high-efficiency operations from planning to production, making development simpler and faster."},{title:"Secure Code Ownership",description:"Developed using Golang, a memory-safe language, Gitea focuses on security. It ensures that you securely own your code, with features like branch protection for enforcing code signing and WebAuthn-based 2FA login."},{title:"Flexible and Customizable",description:"Gitea offers universal compatibility and flexible deployment options. It can be tailored to your requirements, allowing you to enable or disable features with a single configuration file, customize site themes, UI languages, and more."},{title:"Integrated with Your Favorite Tools",description:"Gitea boosts your workflow with its versatile integrations. It syncs seamlessly with chat tools like Slack, Discord, MS Teams, Lark, and more, and improves workflows with CI/CD service compatibility."}],features:[{title:"Code Hosting",description:"Gitea enables the creation and management of repositories, exploration of commit history and code files, review and merging of code commits, collaboration management, branch handling, and more."},{title:"Code Review",description:"Gitea's code review accommodates both Pull Request and AGit workflows. Reviewers can easily examine code online and submit comments or inquiries, facilitating enhanced code quality."},{title:"CI/CD",description:"Gitea features an integrated CI/CD system, Gitea Actions, that is compatible with GitHub Actions. Users can create workflows using the familiar YAML format or utilize numerous existing plugins."},{title:"Project Management",description:"With Gitea, you can efficiently manage a project's requirements, features, and bugs through issue tasks, labeling, and kanban project boards. These tools help plan and track the progress of your software."},{title:"Package Management",description:"Gitea supports more than 20 different kinds of public or private package management, including Cargo, Chef, Composer, Conan, Conda, Container, Helm, Maven, npm, NuGet, Pub, PyPI, RubyGems, Vagrant, and more."}],tags:["Code Hosting","Developer Tools","Documentation","Project Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i="postgres"===e.databaseType?"postgres":"mysql",o="postgres"===e.databaseType?"5432":"3306";return t.push({type:"app",data:{serviceName:e.appServiceName,env:["USER_UID=1000","USER_GID=1000","ROOT_URL=https://$(PRIMARY_DOMAIN)","GITEA__database__DB_TYPE=".concat(e.databaseType),"GITEA__database__HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName,":").concat(o),"GITEA__database__NAME=$(PROJECT_NAME)","GITEA__database__USER=".concat(i),"GITEA__database__PASSWD=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"bind",hostPath:"/etc/timezone",mountPath:"/etc/timezone"},{type:"bind",hostPath:"/etc/localtime",mountPath:"/etc/localtime"}],ports:[{published:2222,target:22}]}}),"postgres"===e.databaseType&&t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),"mysql"===e.databaseType&&t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"github-actions-runner",meta:{name:"Github Actions Runner",description:"A GitHub Actions runner is a service that runs the jobs defined in your GitHub workflows.\nThis image is based on Linux 24.04",instructions:"Go to your GitHub repository or organization. Navigate to Settings > Actions > Runners. Click Add Runner and copy the registration token provided.",changeLog:[{date:"2025-09-19",description:"Initial release"}],links:[{label:"Website",url:"https://github.com/actions/runner"},{label:"Documentation",url:"https://docs.github.com/en/actions/concepts/runners/self-hosted-runners"},{label:"GitHub",url:"https://github.com/leogomide/gha-runner"},{label:"Docker Hub",url:"https://hub.docker.com/r/leogomide/gha-runner"},{label:"Environment Variables",url:"https://github.com/leogomide/gha-runner"}],contributors:[{name:"Leonardo Gomide",url:"https://github.com/leogomide"}],schema:{type:"object",required:["appServiceName","appServiceImage","githubRepoUrl","githubRepoToken"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gha-runner"},appServiceImage:{type:"string",title:"App Service Image",default:"leogomide/gha-runner:latest-x64",oneOf:[{enum:["leogomide/gha-runner:latest-x64"],title:"latest-x64"},{enum:["leogomide/gha-runner:latest-arm64"],title:"latest-arm64"}]},githubRepoUrl:{type:"string",title:"Github Repository Link",default:"https://github.com/<your-repo>"},githubRepoToken:{type:"string",title:"Github Repository Token",default:"<your-runner-token>"}}},benefits:[{title:"Full Environment Control",description:"Customize the operating system, tools, and dependencies to match your project needs"},{title:"Persistent Resources",description:"Keep build caches and artifacts between runs for faster execution"},{title:"Private Network Access",description:"Run jobs inside secure environments with access to internal services and databases"},{title:"Cost Efficiency",description:"Reduce reliance on GitHub-hosted runners by using your own infrastructure"}],features:[{title:"Custom Environment Setup",description:"Install and configure any tools, libraries, or runtimes required for your workflows"},{title:"Hardware Flexibility",description:"Run jobs on your own servers, virtual machines, or even specialized hardware like GPUs"},{title:"Persistent Storage",description:"Retain build artifacts, logs, and caches between workflow runs"},{title:"Secure Network Integration",description:"Connect workflows directly to internal systems and private databases"},{title:"Scalable Infrastructure",description:"Register multiple runners to balance load and handle parallel jobs"},{title:"Long-running Jobs",description:"Support workflows that require more time than GitHub-hosted runners allow"},{title:"Custom Labels",description:"Tag runners with labels to target specific jobs and environments"}],tags:["GitHub Actions","CI/CD","Automation","DevOps"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["# Runner name (default: docker-runner-{hostname})","RUNNER_NAME=".concat(e.appServiceName),"# GitHub repository URL","REPO_URL=".concat(e.githubRepoUrl),"# Runner registration token (obtained from Settings > Actions > Runners > New runner)","REGISTRATION_TOKEN=".concat(e.githubRepoToken),"# OPTIONAL Comma-separated runner labels (default: docker,linux)","# RUNNER_LABELS=<label1,label2>","# OPTIONAL Run in ephemeral mode (default: false)","# https://docs.github.com/pt/actions/reference/runners/self-hosted-runners#ephemeral-runners-for-autoscaling","EPHEMERAL=false","# OPTIONAL Disable automatic runner software updates (default: false)","# https://docs.github.com/pt/actions/reference/runners/self-hosted-runners#runner-software-updates-on-self-hosted-runners","DISABLE_UPDATE=false"].join("\n"),mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"runner_work",mountPath:"/runner/_work"},{type:"volume",name:"runner_toolcache",mountPath:"/opt/hostedtoolcache"}]}}),{services:t}}},{slug:"github-desktop",meta:{name:"Github Desktop",description:"Github Desktop is an open-source, Electron-based application that simplifies the way you interact with GitHub. Written in TypeScript and using React, this app provides a user-friendly interface for managing your GitHub repositories. It allows you to access your GitHub account, manage your repositories, make changes, and track updates, all from the convenience of your desktop. The app is accessible via http://yourhost:3000/ or https://yourhost:3001/. It supports multiple architectures and can be easily deployed using Docker. Please note that this app requires specific environment variables and run configurations for optimal functionality.",instructions:"use abc:abc to login. To access the login interface, add ?login=true to your URL.",changeLog:[{date:"2023-04-12",description:"first release"},{date:"2025-07-21",description:"Version bumped to 3.4.13"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-github-desktop"},{label:"Github",url:"https://github.com/desktop/desktop"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"github-desktop"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/github-desktop:3.4.13"}}},benefits:[{title:"Efficient GitHub Management",description:"The Github Desktop app allows users to manage their GitHub repositories in a more efficient and streamlined manner. It provides a user-friendly interface that makes it easy to commit changes, create branches, and sync with the remote repository."},{title:"Multi-Platform Support",description:"The app supports multiple architectures, making it accessible to a wide range of users. It utilizes the Docker manifest for multi-platform awareness, ensuring the correct image is retrieved for your architecture."},{title:"Secure Access",description:"The app can be accessed securely via HTTP and HTTPS, ensuring that your data and information are always protected. It also supports HTTP Basic auth for added security."}],features:[{title:"Open Source",description:"Github Desktop is an open-source Electron-based GitHub app. It is written in TypeScript and uses React, making it a reliable and transparent tool for managing GitHub repositories."},{title:"Customizable Environment",description:"The app provides a range of optional environment variables and run configurations that can be customized to suit your needs. This includes the ability to change the internal port the container listens on, the HTTP Basic auth username and password, and more."},{title:"Docker Integration",description:"The app is capable of starting a Docker in Docker (DinD) setup inside the container, allowing you to use Docker in an isolated environment. This feature can be used to increase performance and functionality."},{title:"Lossless Mode",description:"The app is capable of delivering a true lossless image at a high framerate to your web browser. This feature ensures that you always get the highest quality image possible."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"config",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{capAdd:["IPC_LOCK"]}}}),{services:t}}},{slug:"gitsave",meta:{name:"GitSave",description:"GitSave is a self-hosted and open-source application that backs up your Git repositories on a schedule. It supports GitHub, GitLab and other Git platforms, lets you choose how many backups to keep, and can back up to a local volume or an SMB share. GitSave includes an easy to use and responsive web interface for managing schedules, pausing or resuming backups, and viewing backup history.",instructions:"Change the ENCRYPTION_SECRET after first deploy only if you have not stored any access tokens yet, since existing tokens are encrypted with it. Set DISABLE_AUTH to true only if you are putting GitSave behind your own authentication provider.",changeLog:[{date:"2026-07-24",description:"first release"}],links:[{label:"Website",url:"https://witzdam.com"},{label:"GitHub",url:"https://github.com/TimWitzdam/GitSave"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gitsave"},appServiceImage:{type:"string",title:"App Service Image",default:"timwitzdam/gitsave:1.3.6"},disableAuth:{type:"boolean",title:"Disable Built-in Authentication",default:!1}}},benefits:[{title:"Scheduled Backups",description:"Automatically back up Git repositories on a recurring schedule"},{title:"Multi-Platform",description:"Works with GitHub, GitLab and other Git platforms"},{title:"Self-Hosted",description:"Keep control of your repository backups on your own storage"}],features:[{title:"Backup History",description:"View a full history of every backup that has run"},{title:"Retention Control",description:"Choose how many backups to keep per schedule"},{title:"SMB Support",description:"Back up directly to an SMB share"},{title:"Pause and Resume",description:"Pause or resume individual backup schedules"}],tags:["Backup","Git","Developer Tools","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(40),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"backups",mountPath:"/app/backups"}],env:["JWT_SECRET=".concat(a),"ENCRYPTION_SECRET=".concat(i),"DISABLE_AUTH=".concat(e.disableAuth)].join("\n")}}),{services:t}}},{slug:"gladys",meta:{name:"Gladys Assistant",description:"Gladys Assistant is a privacy-first, open-source home automation platform that allows you to control and automate your smart home devices. Built with Node.js, Gladys provides a comprehensive solution for managing IoT devices, creating automation scenarios, and monitoring your home environment. The system supports a wide range of devices including Zigbee, Z-Wave, Bluetooth, WiFi, and more. Gladys stores all data locally in SQLite, ensuring your home automation data remains private. Perfect for home automation enthusiasts looking for a self-hosted alternative to commercial smart home platforms.",instructions:null,changeLog:[{date:"2025-01-29",description:"Initial Template Release"},{date:"2026-04-29",description:"Version bumped to sha-569dfde"}],links:[{label:"Website",url:"https://gladysassistant.com"},{label:"GitHub",url:"https://github.com/GladysAssistant/Gladys"},{label:"Documentation",url:"https://gladysassistant.com/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gladys"},appServiceImage:{type:"string",title:"App Service Image",default:"gladysassistant/gladys:sha-569dfde"},timezone:{type:"string",title:"Timezone",default:"Asia/Karachi",description:"Timezone for the application (e.g., Asia/Karachi, America/New_York, Europe/London)"}}},benefits:[{title:"Home Automation",description:"Control and automate your smart home devices with a comprehensive, privacy-first home automation platform."},{title:"Privacy-First",description:"All data is stored locally in SQLite, ensuring your home automation data remains private and under your control."},{title:"Wide Device Support",description:"Support for a wide range of devices including Zigbee, Z-Wave, Bluetooth, WiFi, and more through various integrations."},{title:"Self-Hosted Solution",description:"Keep your home automation data private and under your control with a self-hosted deployment."}],features:[{title:"Device Management",description:"Connect and manage a wide variety of smart home devices including lights, sensors, switches, and more."},{title:"Automation Scenarios",description:"Create complex automation scenarios with triggers, conditions, and actions to automate your home."},{title:"Local Data Storage",description:"All data is stored locally in SQLite, ensuring privacy and data ownership."},{title:"Hardware Access",description:"Direct access to hardware devices through Docker socket and device mounts for comprehensive device control."},{title:"Web-Based Interface",description:"Access and manage your home automation system through a modern web interface accessible on port 8080."},{title:"Containerized Deployment",description:"Easily deploy Gladys Assistant in any environment that supports Docker with hardware access capabilities."}],tags:["Home Automation","IoT","Smart Home","Self-Hosted","Privacy","Zigbee","Z-Wave","Docker"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["NODE_ENV=production","SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db","SERVER_PORT=8080","TZ=".concat(e.timezone)];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:a.join("\n"),mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"data",mountPath:"/var/lib/gladysassistant"},{type:"bind",hostPath:"/dev",mountPath:"/dev"},{type:"bind",hostPath:"/run/udev",mountPath:"/run/udev"}],deploy:{capAdd:["SYS_ADMIN","NET_ADMIN","SYS_RAWIO","SYS_TIME"]}}}),{services:t}}},{slug:"glance",meta:{name:"Glance",description:"Glance is a fast and lightweight self-hosted dashboard that allows you to monitor various real-time data sources through customizable widgets. With support for RSS feeds, market prices, YouTube uploads, Twitch streams, weather forecasts, server stats, Docker container status, and more, Glance provides a centralized hub for tracking essential information. The dashboard is fully themeable, optimized for mobile devices, and highly configurable through YAML-based settings.",instructions:"You can edit the Yaml configuration as per your needs.",changeLog:[{date:"2025-03-17",description:"First Release (v0.7.7)"},{date:"2025-07-21",description:"Version bumped to v0.8.4"}],links:[{label:"Documentation",url:"https://github.com/glanceapp/glance/blob/main/docs/configuration.md"},{label:"Github",url:"https://github.com/glanceapp/glance"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"glance"},appServiceImage:{type:"string",title:"App Service Image",default:"glanceapp/glance:v0.8.4"}}},benefits:[{title:"Fully Customizable Dashboard",description:"Glance allows users to create their own dashboard layouts with multiple pages, tabs, and widgets, tailored to their specific needs."},{title:"Supports Multiple Data Sources",description:"Monitor RSS feeds, weather forecasts, financial market prices, Docker container status, server metrics, social media updates, and more."},{title:"Fast and Lightweight",description:"Glance is designed for low memory usage with minimal dependencies, ensuring fast performance even with multiple widgets."},{title:"Optimized for Mobile Devices",description:"The dashboard is mobile-friendly, allowing users to track their favorite widgets on the go."},{title:"Highly Themeable",description:"Users can customize themes, styles, and layouts to match their preferences or choose from pre-existing themes."}],features:[{title:"Various Widgets",description:"Supports RSS feeds, subreddit posts, Hacker News updates, YouTube channel uploads, Twitch streams, weather forecasts, market prices, Docker container statuses, server stats, and more."},{title:"YAML-Based Configuration",description:"Easily configure widgets, pages, and layouts using a simple YAML-based setup."},{title:"Multi-Page Support",description:"Users can create multiple pages/tabs with different sets of widgets for better organization."},{title:"Minimal and Efficient",description:"Glance is designed to be fast and efficient, with an uncached page loading time of ~1s depending on network speed and number of widgets."},{title:"Theme and Style Customization",description:"Modify CSS styles, change widget designs, and adjust layout settings to match user preferences."}],tags:["Dashboard","Productivity","Self-Hosted","Customizable","Widgets"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"config",mountPath:"/app/config"},{type:"file",content:'pages:\n  - name: Home\n    # Optionally, if you only have a single page you can hide the desktop navigation for a cleaner look\n    # hide-desktop-navigation: true\n    columns:\n      - size: small\n        widgets:\n          - type: calendar\n            first-day-of-week: monday\n\n          - type: rss\n            limit: 10\n            collapse-after: 3\n            cache: 12h\n            feeds:\n              - url: https://selfh.st/rss/\n                title: selfh.st\n                limit: 4\n              - url: https://ciechanow.ski/atom.xml\n              - url: https://www.joshwcomeau.com/rss.xml\n                title: Josh Comeau\n              - url: https://samwho.dev/rss.xml\n              - url: https://ishadeed.com/feed.xml\n                title: Ahmad Shadeed\n\n          - type: twitch-channels\n            channels:\n              - theprimeagen\n              - j_blow\n              - piratesoftware\n              - cohhcarnage\n              - christitustech\n              - EJ_SA\n\n      - size: full\n        widgets:\n          - type: group\n            widgets:\n              - type: hacker-news\n              - type: lobsters\n\n          - type: videos\n            channels:\n              - UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips\n              - UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling\n              - UCsBjURrPoezykLs9EqgamOA # Fireship\n              - UCBJycsmduvYEL83R_U4JriQ # Marques Brownlee\n              - UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium\n\n          - type: group\n            widgets:\n              - type: reddit\n                subreddit: technology\n                show-thumbnails: true\n              - type: reddit\n                subreddit: selfhosted\n                show-thumbnails: true\n\n      - size: small\n        widgets:\n          - type: weather\n            location: London, United Kingdom\n            units: metric # alternatively "imperial"\n            hour-format: 12h # alternatively "24h"\
1n            # Optionally hide the location from being displayed in the widget\n            # hide-location: true\n\n          - type: markets\n            markets:\n              - symbol: SPY\n                name: S&P 500\n              - symbol: BTC-USD\n                name: Bitcoin\n              - symbol: NVDA\n                name: NVIDIA\n              - symbol: AAPL\n                name: Apple\n              - symbol: MSFT\n                name: Microsoft\n\n          - type: releases\n            cache: 1d\n            # Without authentication the Github API allows for up to 60 requests per hour. You can create a\n            # read-only token from your Github account settings and use it here to increase the limit.\n            # token: ...\n            repositories:\n              - glanceapp/glance\n              - go-gitea/gitea\n              - immich-app/immich\n              - syncthing/syncthing\n\n  # Add more pages here:\n  # - name: Your page name\n  #   columns:\n  #     - size: small\n  #       widgets:\n  #         # Add widgets here\n\n  #     - size: full\n  #       widgets:\n  #         # Add widgets here\n\n  #     - size: small\n  #       widgets:\n  #         # Add widgets here\n  ',mountPath:"/app/config/glance.yml"}]}}),{services:t}}},{slug:"glances",meta:{name:"Glances",description:"Glances is a cross-platform, real-time system monitoring tool designed to offer a unified view of your system's performance and health. It provides an intuitive interface that displays critical information, including CPU usage, memory, disk I/O, network activity, and more. Built to work seamlessly on Linux, macOS, Windows, and ARM-based systems, Glances is highly extensible with plugins and supports remote monitoring via a web-based UI or API. With its open-source foundation, Glances ensures transparency and flexibility, making it a perfect choice for individuals and teams looking for a lightweight yet powerful monitoring solution.",instructions:'To use Glances with Podman, you can mount a bind volume "/run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock".',changeLog:[{date:"2024-12-22",description:"First Release"},{date:"2025-07-21",description:"Version bumped to 4.3.3"},{date:"2025-12-25",description:"Version bumped to 4.4.1"},{date:"2026-02-21",description:"Version bumped to 4.5.0.4"}],links:[{label:"Website",url:"https://nicolargo.github.io/glances/"},{label:"Documentation",url:"https://glances.readthedocs.io/en/stable/"},{label:"GitHub",url:"https://github.com/nicolargo/glances"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"glances"},appServiceImage:{type:"string",title:"App Service Image",default:"nicolargo/glances:4.5.0.4"}}},benefits:[{title:"Real-Time System Monitoring",description:"Glances provides a detailed and real-time overview of system performance metrics, ensuring you stay informed about your system's health."},{title:"Cross-Platform Support",description:"Glances works seamlessly on Linux, macOS, Windows, and ARM-based systems, offering flexibility for diverse environments."},{title:"Extensible and Customizable",description:"With plugins and configuration options, Glances can be tailored to suit your specific monitoring needs."},{title:"Remote Monitoring",description:"Monitor systems remotely using the web interface, API, or third-party integrations."},{title:"Open Source and Transparent",description:"Glances is open source, ensuring users can audit, modify, and extend the tool as needed."}],features:[{title:"Unified Monitoring Dashboard",description:"Displays key performance metrics, including CPU, memory, disk usage, network traffic, and more, in a single view."},{title:"Remote Access",description:"Access Glances remotely using its web-based UI or RESTful API."},{title:"Threshold-Based Alerts",description:"Configure alerts based on thresholds to get notified about critical system issues in real-time."},{title:"Plugin Support",description:"Extend functionality with plugins for additional metrics or integrations with other tools."},{title:"Multi-Platform Integration",description:"Integrates with tools like Docker, Podman, and Kubernetes for container monitoring."}],tags:["System Monitoring","Real-Time Metrics","Open Source","Cross-Platform","Extensible"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["GLANCES_OPT=-w"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:61208}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"glasskeep",meta:{name:"Glass Keep",description:"Glass Keep is a lightweight, self-hosted note-taking and organization application designed for personal knowledge management. It provides a clean, intuitive interface for creating, organizing, and managing notes, thoughts, and ideas. Glass Keep features markdown support, rich text editing, categories, tags, and powerful search capabilities to help you find information quickly. Built with Node.js and SQLite, it offers fast performance and easy deployment without requiring complex database setup. All your notes are stored locally in a SQLite database, ensuring privacy and complete control over your data. Perfect for individuals who want a simple, fast, and private note-taking solution without the complexity of larger systems.",instructions:"Open the web app on your assigned domain. The application uses the ADMIN_EMAILS value from this template to mark admin users. This template uses the Docker image name recommended by the upstream README and pins it to a static version tag instead of latest.For a fresh deployment, the default admin username is admin and the default password is admin. If you set the Admin Email/Username field before first start, that value is used to auto-promote the corresponding admin user(s). Create or manage users using the admin route at https://<your-domain>/#/admin. After login you can change admin settings in the Admin Panel and create additional users as needed.",changeLog:[{date:"2025-11-17",description:"Template Release"},{date:"2026-03-25",description:"Added logo, pinned Docker image to a static tag, confirmed image name from upstream README, and completed links and instructions."}],links:[{label:"Website",url:"https://github.com/nikunjsingh93/react-glass-keep"},{label:"Documentation",url:"https://github.com/nikunjsingh93/react-glass-keep#readme"},{label:"GitHub",url:"https://github.com/nikunjsingh93/react-glass-keep"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminEmail"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"glasskeep"},appServiceImage:{type:"string",title:"App Service Image",default:"nikunjsingh/glass-keep:v20260114-1008"},adminEmail:{type:"string",title:"Admin Email/Username",default:""}}},benefits:[{title:"Simple & Lightweight",description:"Minimalist design focused on note-taking essentials. Fast, responsive interface with no bloat or unnecessary features."},{title:"Privacy-First",description:"All notes stored locally in SQLite database on your own server. Your thoughts and ideas remain completely private."},{title:"Easy Deployment",description:"Single container deployment with no external database required. SQLite provides reliable storage with zero configuration."}],features:[{title:"Note Management",description:"Create, edit, and organize notes with a clean interface. Support for rich text, markdown, and structured content."},{title:"Categories & Tags",description:"Organize notes with categories and tags for easy retrieval. Build a structured knowledge base that grows with you."},{title:"Search Functionality",description:"Powerful search across all your notes to quickly find the information you need when you need it."},{title:"User Authentication",description:"Secure access with JWT-based authentication. Admin controls for managing users and permissions."},{title:"SQLite Storage",description:"Reliable, fast SQLite database for storing all your notes. No complex database setup or maintenance required."},{title:"Markdown Support",description:"Write notes in markdown format for structured, formatted content that's easy to read and portable."}],tags:["Notes","Knowledge Management","Note Taking","Markdown","SQLite"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NODE_ENV=production","API_PORT=8080","JWT_SECRET=".concat(a),"DB_FILE=/app/data/notes.db","ADMIN_EMAILS=".concat(e.adminEmail)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"glitchtip",meta:{name:"GlitchTip",description:"GlitchTip is a simple, open-source error tracking application designed to collect, organize, and alert you about every error from your project in real time. It allows you to monitor your software's performance, track errors, and check your site's uptime all in one place. GlitchTip is compatible with Sentry client SDKs, offering a more straightforward operation. It provides a comprehensive error tracking system, reporting your website or application's exceptions, log messages, Content Security Policy violations, and more. With GlitchTip, you can also monitor your application's performance, identifying slow web requests, database calls, and other transactions. Additionally, it offers uptime monitoring, pinging your site and alerting you when it's not responding. GlitchTip is the perfect choice for those who value simplicity, affordability, and the freedom provided by open source.",instructions:"To create an admin user, run the command ./manage.py createsuperuser",changeLog:[{date:"2023-04-06",description:"First Release"},{date:"2024-10-09",description:"Version changed to v4.1.4"},{date:"2025-01-14",description:"Version bumped to v4.2"},{date:"2025-07-21",description:"Version bumped to v5.0"},{date:"2025-12-25",description:"Version bumped to v5.2.1"},{date:"2026-02-21",description:"Version bumped to v6.0.3"}],links:[{label:"Website",url:"https://glitchtip.com/"},{label:"Gitlab",url:"https://gitlab.com/glitchtip"},{label:"Docker",url:"https://hub.docker.com/r/glitchtip/glitchtip"},{label:"Documentation",url:"https://glitchtip.com/documentation"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{enableUserRegistration:{type:"boolean",title:"Enable User Registration",default:!1},enableOrganizationCreation:{type:"boolean",title:"Enable Organization Creation",default:!1}
1,appServiceName:{type:"string",title:"App Service Name",default:"glitchtip"},appServiceImage:{type:"string",title:"App Service Image",default:"glitchtip/glitchtip:v6.0.3"},databaseServiceName:{type:"string",title:"Redis Service Name",default:"glitchtip-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"glitchtip-redis"}}},benefits:[{title:"Real-Time Error Tracking",description:"GlitchTip collects every error from your project in real time, helping you to organize and make them useful. You can receive alerts when and where you want, ensuring you're always on top of any issues that arise."},{title:"Affordable and Simple",description:"GlitchTip is designed with simplicity and affordability in mind. It's an open-source solution that you can modify and use as you see fit, without breaking your budget."},{title:"Performance Monitoring",description:"With GlitchTip, you can monitor your application's performance and find out where your app is slow. It takes a simple, out of the box approach, helping you to identify your slowest web requests, database calls, and other transactions."},{title:"Uptime Monitoring",description:"GlitchTip can ping your site and warn you when it's not responding. It can also send you an alert via email or webhook if it doesn't receive your scheduled ping."}],features:[{title:"Error Tracking",description:"GlitchTip allows you to report your website or application's exceptions, log messages, Content Security Policy violations, and more to one place for triage and resolution."},{title:"Application Performance Monitoring",description:"GlitchTip provides a simple, out of the box approach to application performance monitoring. It helps you to identify your slowest web requests, database calls, and other transactions."},{title:"Uptime Monitoring",description:"GlitchTip can ping your site and warn you when it's not responding. It can also reverse this process and send GlitchTip a request on schedule. If GlitchTip doesn't receive your ping, it will send you an alert."}],tags:["Monitoring","Developer Tools","Logging"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=["SECRET_KEY=".concat(y(32)),"DATABASE_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"REDIS_URL=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"ENABLE_USER_REGISTRATION=".concat(e.enableUserRegistration),"ENABLE_ORGANIZATION_CREATION=".concat(e.enableOrganizationCreation),"GLITCHTIP_DOMAIN=https://$(PRIMARY_DOMAIN)"];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:o.join("\n"),mounts:[{type:"volume",name:"uploads",mountPath:"/code/uploads"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName+"-worker",source:{type:"image",image:e.appServiceImage},env:o.join("\n"),deploy:{command:"./manage.py migrate && ./bin/run-celery-with-beat.sh"},mounts:[{type:"bind",mountPath:"/code/uploads",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/uploads/")}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:a}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"glpi",meta:{name:"GLPI",description:"GLPI (Gestionnaire Libre de Parc Informatique) is a powerful IT asset management and help desk software designed to streamline IT operations. It offers features like inventory management, ticketing, and reporting, making it an ideal solution for IT teams. With its robust plugin support and user-friendly interface, GLPI provides extensive customization options to adapt to various organizational needs. This containerized version is based on Docker Baseimage KasmVNC, ensuring smooth multi-platform support and flexible deployment.",instructions:"Default login is; glpi/glpi, and other credentials can be found on the Github repository or during the installation wizard.",changeLog:[{date:"2024-12-31",description:"Template Release"},{date:"2025-07-21",description:"Version bumped to 9.1.4"}],links:[{label:"Documentation",url:"https://glpi-project.org/documentation/"},{label:"Github",url:"https://github.com/glpi-project/glpi"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"glpi"},appServiceImage:{type:"string",title:"App Service Image",default:"diouxx/glpi:9.1.4"}}},benefits:[{title:"Comprehensive IT Asset Management",description:"GLPI enables organizations to efficiently manage IT assets, track hardware, and maintain an up-to-date inventory."},{title:"Integrated Help Desk System",description:"Includes a robust ticketing system to streamline issue tracking and resolution for IT teams."},{title:"Extensive Customization",description:"Offers a variety of plugins and configuration options to adapt the software to specific organizational requirements."},{title:"Web-Based Interface",description:"Accessible from any device, making IT operations manageable from anywhere."}],features:[{title:"Asset Inventory Management",description:"Track and manage hardware, software, and other IT assets effectively."},{title:"Ticketing System",description:"Manage user requests, incidents, and changes through an intuitive help desk interface."},{title:"Reporting and Statistics",description:"Generate detailed reports to analyze IT performance and identify improvement areas."},{title:"Plugin Support",description:"Enhance GLPI with a variety of plugins developed by the community."},{title:"User and Group Management",description:"Manage roles and permissions to ensure secure access control."},{title:"Multi-Language Support",description:"Available in multiple languages to cater to global organizations."},{title:"Custom Workflows",description:"Define workflows and automate repetitive IT tasks for improved efficiency."},{title:"Integration Capabilities",description:"Integrates with various third-party tools and APIs for extended functionality."},{title:"Centralized IT Management",description:"Centralize IT asset and help desk management for better visibility and coordination."}],tags:["IT Asset Management","Help Desk","Ticketing","Customization","Reporting","Plugins","IT Operations"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"glpi_data",mountPath:"/var/www/html/glpi"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"gmail-cleaner",meta:{name:"Gmail Cleaner",description:"Gmail Cleaner is a privacy-focused self-hosted tool to bulk unsubscribe, delete, archive, and mark Gmail messages as read by sender. It runs locally with your own Google OAuth credentials and keeps auth tokens in persistent storage.",instructions:"Paste your downloaded Google OAuth client JSON into Credentials JSON before deploying. In Google Cloud Console, add an Authorized redirect URI that uses your OAuth host and external OAuth port (for example, https://your-domain/). After deploy, open the app domain, click Sign In, and complete the OAuth flow.",changeLog:[{date:"2026-04-09",description:"Initial template release"}],links:[{label:"Documentation",url:"https://github.com/Gururagavendra/gmail-cleaner#readme"},{label:"GitHub",url:"https://github.com/gururagavendra/gmail-cleaner"},{label:"Setup video",url:"https://youtu.be/CmOWn8Tm5ZE"},{label:"Container registry",url:"https://github.com/gururagavendra/gmail-cleaner/pkgs/container/gmail-cleaner"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","credentialsJson"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gmail-cleaner"},appServiceImage:{type:"string",title:"Gmail Cleaner Image",default:"ghcr.io/gururagavendra/gmail-cleaner:v1.3.0"},credentialsJson:{type:"string",title:"Credentials JSON",description:"Paste the full Google OAuth client JSON content"},oauthInternalPort:{type:"number",title:"OAuth Callback Internal Port",default:8767},oauthExternalPort:{type:"number",title:"OAuth Callback External Port",default:8767},oauthHost:{type:"string",title:"OAuth Host",default:"$(PRIMARY_DOMAIN)",description:"Hostname used when building OAuth redirect URI"},webAuth:{type:"boolean",title:"Enable Web Authentication",default:!0}}},benefits:[{title:"Inbox cleanup at scale",description:"Process large amounts of email by sender with bulk actions and filters."},{title:"Privacy-first deployment",description:"Runs on your infrastructure with your own Google credentials."},{title:"Persistent auth and data",description:"Stores OAuth token and app data in a mounted volume."}],features:[{title:"Bulk unsubscribe and delete",description:"Remove unwanted newsletters and sender groups with progress tracking."},{title:"Mark read, archive, and labels",description:"Apply common Gmail mailbox actions in bulk."},{title:"OAuth callback support",description:"Exposes the callback listener port for Google OAuth login flow."}],tags:["Gmail","Email","Cleanup","Privacy","Automation"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t,a,i,o,n=[],r=null!==(a=e.oauthInternalPort)&&void 0!==a?a:8767,s=null!==(i=e.oauthExternalPort)&&void 0!==i?i:8767,c=(null===(t=e.oauthHost)||void 0===t?void 0:t.trim())||"$(PRIMARY_DOMAIN)",l=null===(o=e.webAuth)||void 0===o||o;return n.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["WEB_AUTH=".concat(l?"true":"false"),"OAUTH_HOST=".concat(c),"OAUTH_EXTERNAL_PORT=".concat(s)].join("\n"),mounts:[{type:"file",content:e.credentialsJson,mountPath:"/app/credentials.json"},{type:"volume",name:"data",mountPath:"/app/data"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8766}],ports:[{published:s,target:r}]}}),{services:n}}},{slug:"goaway",meta:{name:"Goaway",description:"Goaway is a DNS service that provides filtering and blocking capabilities for unwanted content. It acts as a DNS server that can block malicious domains, advertisements, and other unwanted traffic while providing a clean web interface for management.",instructions:"The login credentials are user = admin and password is generated on the startup logs of GoAway inside overview section. In order to mount the DNS port, you have to make sure your host machine has the port 53 not being used by any other service.",changeLog:[{date:"2025-07-09",description:"Initial release"},{date:"2026-04-19",description:"Square logo; website and documentation links"}],links:[{label:"Website",url:"https://pommee.github.io/goaway/"},{label:"Documentation",url:"https://pommee.github.io/goaway/getting-started/"},{label:"GitHub",url:"https://github.com/pommee/goaway"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"goaway"},appServiceImage:{type:"string",title:"App Service Image",default:"pommee/goaway:0.57.0"},dnsPort:{type:"string",title:"DNS Port",default:"53",description:"The port to use for DNS queries."}}},benefits:[{title:"DNS Filtering",description:"Block unwanted domains and malicious content at the DNS level"},{title:"Web Interface",description:"Easy-to-use web interface for configuration and monitoring"},{title:"Lightweight",description:"Minimal resource usage while providing comprehensive DNS filtering"},{title:"Network Protection",description:"Protect your entire network by filtering DNS requests"}],features:[{title:"DNS Server",description:"Full-featured DNS server with filtering capabilities"},{title:"Domain Blocking",description:"Block access to unwanted or malicious domains"},{title:"Web Management",description:"Comprehensive web interface for easy management"},{title:"Real-time Monitoring",description:"Monitor DNS queries and blocked requests in real-time"},{title:"Custom Configuration",description:"Customize blocking rules and DNS settings"},{title:"Network-wide Protection",description:"Protect all devices on your network with centralized DNS filtering"}],tags:["DNS","Network Security","Ad Blocking","Content Filtering","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],ports:[{published:Number(e.dnsPort),target:53,protocol:"tcp"}],mounts:[{type:"volume",name:"goaway-data",mountPath:"/home/appuser"}],deploy:{capAdd:["NET_BIND_SERVICE","NET_RAW"]}}}),{services:t}}},{slug:"gocd",meta:{name:"GoCD",description:"GoCD is a continuous delivery and release automation server. It helps you automate and streamline your build-test-release cycle, making it easy to manage complex deployment pipelines. GoCD provides end-to-end visibility and traceability from commit to deployment, with the ability to model complex workflows and dependencies with ease. It supports parallel and sequential execution, and provides powerful value stream visualization to help you optimize your delivery process.",instructions:"Open GoCD from your domain, complete the first-time admin login flow, then create your initial pipeline and connect your source repository and build agents.",changeLog:[{date:"2024-03-04",description:"First Release"},{date:"2026-04-29",description:"Version bumped to v25.4.0"}],links:[{label:"Website",url:"https://www.gocd.org/"},{label:"Documentation",url:"https://docs.gocd.org/"},{label:"Github",url:"https://github.com/gocd/gocd"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gocd-server"},appServiceImage:{type:"string",title:"App Service Image",default:"gocd/gocd-server:v25.4.0"}}},benefits:[{title:"Continuous Delivery",description:"Model and visualize complex workflows with ease, from commit to deployment."},{title:"Value Stream Map",description:"Trace a commit from check-in to deployment and understand dependencies."},{title:"Pipeline Organization",description:"Group pipelines into pipeline groups for better organization and management."},{title:"Advanced Workflows",description:"Support for parallel and sequential execution, fan-in/fan-out, and dependencies."},{title:"Security & Access Control",description:"Role-based access control and authentication integration with LDAP/AD."}],features:[{title:"Pipeline Management",description:"Create and manage complex deployment pipelines with ease."},{title:"Environment Management",description:"Define and manage different environments for testing and deployment."},{title:"Agent Management",description:"Manage build agents and their resources efficiently."},{title:"Artifact Management",description:"Store and version artifacts with built-in artifact repository."},{title:"Plugin System",description:"Extend functionality with a wide range of plugins."}],tags:["CI/CD","Continuous Delivery","DevOps","Automation","Pipeline Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8153}],mounts:[{type:"volume",name:"data",mountPath:"/godata"},{type:"volume",name:"homedir",mountPath:"/home/go"}]}}),{services:t}}},{slug:"goclaw",meta:{name:"GoClaw",description:"Enterprise AI agent platform with teams, delegation & orchestration. Single Go binary, 13+ LLM providers, 10+ channels, browser automation, and memory system.",instructions:"After installation, access the web dashboard via your configured domain.\nTo add more LLM API keys (e.g., Anthropic, Groq), edit the environment variables of the GoClaw App Service.\nSecure tokens like the Gateway Token and Encryption Key are auto-generated.\n",changeLog:[{date:"2026-04-16",description:"Updated to GoClaw v3.8.5, moved all Docker images to meta.yaml inputs"},{date:"2026-03-25",description:"Applied review feedback \u2014 pinned images, simplified service naming, added proxy headers"},{date:"2026-03-24",description:"Redesigned with Chrome CDP sidecar, removed permission-fixer hack"},{date:"2026-03-19",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to v3.11.3-full"}],links:[{label:"Website",url:"https://goclaw.sh"},{label:"Documentation",url:"https://docs.goclaw.sh"},{label:"Github",url:"https://github.com/nextlevelbuilder/goclaw"}],contributors:[{name:"Alan Mosko",url:"https://github.com/moskoweb"}],schema:{type:"object",required:["appServiceName","appServiceImage","uiServiceName","databaseServiceImage","chromeServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"goclaw"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/nextlevelbuilder/goclaw:v3.11.3-full",description:'Use a "-full" tag for Python/Node included, or a base version tag for minimal.'},uiServiceName:{type:"string",title:"Web Service Image",default:"ghcr.io/nextlevelbuilder/goclaw-web:v3.11.3"},databaseServiceImage:{type:"string",title:"Database Service Image",default:"pgvector/pgvector:pg17"},chromeServiceImage:{type:"string",title:"Chrome CDP Service Image",default:"zenika/alpine-chrome:124",description:"Headless Chrome sidecar for browser automation via CDP."},gatewayToken:{type:"string",title:"Gateway Token (GOCLAW_GATEWAY_TOKEN)",description:"Leave blank to auto-generate"},encryptionKey:{type:"string",title:"Encryption Key (GOCLAW_ENCRYPTION_KEY)",description:"Leave blank to auto-generate"},provider:{type:"string",title:"Default LLM Provider",default:"openrouter",oneOf:[{enum:["openrouter"],title:"OpenRouter"},{enum:["anthropic"],title:"Anthropic Claude"},{enum:["openai"],title:"OpenAI"},{enum:["groq"],title:"Groq"},{enum:["deepseek"],title:"DeepSeek"},{enum:["gemini"],title:"Gemini"},{enum:["mistral"],title:"Mistral"},{enum:["xai"],title:"XAI Grok"},{enum:["minimax"],title:"MiniMax"},{enum:["cohere"],title:"Cohere"},{enum:["perplexity"],title:"Perplexity"},{enum:["dashscope"],title:"DashScope (Qwen)"},{enum:["bailian"],title:"Bailian Coding"}]},providerApiKey:{type:"string",title:"Provider API Key",description:"Optional - API Key for the selected provider",default:""}}},benefits:[{title:"Multi-Agent AI Gateway",description:"Teams, delegation and orchestration managed through a single Go binary."},{title:"13+ LLM Providers",description:"Supports multiple models easily swappable (OpenAI, Anthropic, Gemini, Groq, DeepSeek, local models...)."},{title:"Secure and Fast",description:"Built in Go for high performance and minimal memory footprint."}],features:[{title:"Team Collaboration",description:"Multiple agents working together."},{title:"Database Vector",description:"Integrated semantic search memory via PostgreSQL with pgvector."}],tags:["AI","Gateway","Multi-Agent","LLM"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=e.gatewayToken||v(),o=e.encryptionKey||y(32);t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,image:e.databaseServiceImage,env:"PGDATA=/var/lib/postgresql/data"}});var n=e.providerApiKey&&e.provider?"GOCLAW_".concat(e.provider.toUpperCase(),"_API_KEY=").concat(e.providerApiKey):"";return t.push({type:"app",data:{serviceName:e.appServiceName,env:["GOCLAW_HOST=0.0.0.0","GOCLAW_PORT=18790","GOCLAW_CONFIG=/app/data/config.json","GOCLAW_DATA_DIR=/app/data","GOCLAW_WORKSPACE=/app/workspace","GOCLAW_SKILLS_DIR=/app/skills","GOCLAW_GATEWAY_TOKEN=".concat(i),"GOCLAW_ENCRYPTION_KEY=".concat(o),"GOCLAW_BROWSER_REMOTE_URL=ws://$(PROJECT_NAME)_".concat(e.appServiceName,"-chrome:9222"),"GOCLAW_POSTGRES_DSN=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?sslmode=disable"),n].filter(Boolean).join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"workspace",mountPath:"/app/workspace"},{type:"volume",name:"skills",mountPath:"/app/skills"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-chrome"),source:{type:"image",image:e.chromeServiceImage},deploy:{command:"chromium-browser --no-sandbox --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --remote-allow-origins=* --disable-gpu --disable-dev-shm-usage --headless"},ports:[{published:9222,target:9222}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-ui"),source:{type:"image",image:e.uiServiceName},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"file",mountPath:"/etc/nginx/conf.d/default.conf",content:'server {\n    listen 80;\n    server_name _;\n    root /usr/share/nginx/html;\n    index index.html;\n    \n    gzip on;\n    gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript image/svg+xml;\n    gzip_min_length 256;\n    \n    location /assets/ {\n        expires 1y;\n        add_header Cache-Control "public, immutable";\n    }\n    \n    location /ws {\n        proxy_pass http://'.concat(e.appServiceName,':18790;
1\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection "upgrade";\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header X-Forwarded-Host $host;\n        proxy_read_timeout 86400s;\n    }\n    \n    location /v1/ {\n        proxy_pass http://').concat(e.appServiceName,":18790;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header X-Forwarded-Host $host;\n    }\n    \n    location /health {\n        proxy_pass http://").concat(e.appServiceName,":18790;\n    }\n    \n    location / {\n        try_files $uri $uri/ /index.html;\n    }\n}\n")}]}}),{services:t}}},{slug:"gogs",meta:{name:"Gogs",description:"Gogs is a self-hosted Git service designed to be simple, stable, and extensible. It allows you to set up your own Git service in the most painless way possible. The app is built with Go, enabling it to run on all platforms that Go supports, including Linux, macOS, Windows, and ARM-based systems. Gogs is lightweight and has low minimal requirements, making it possible to run even on an inexpensive Raspberry Pi. It offers a range of features including user dashboard, access to repositories via SSH, HTTP and HTTPS protocols, repository and organization management, and more. Gogs is 100% open source and free of charge, with all source code available under the MIT License.",instructions:null,changeLog:[{date:"2023-3-16",description:"first release"},{date:"2025-01-14",description:"Version bumped to 0.13"},{date:"2026-02-21",description:"Version bumped to 0.14"},{date:"2026-04-29",description:"Version bumped to 0.14.2"}],links:[{label:"Website",url:"https://gogs.io/"},{label:"Documentation",url:"https://gogs.io/docs"},{label:"Github",url:"https://github.com/gogs/gogs"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","sshPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gogs"},appServiceImage:{type:"string",title:"App Service Image",default:"gogs/gogs:0.14.2"},sshPort:{type:"number",title:"SSH Port",default:2222}}},benefits:[{title:"Self-Hosted Git Service",description:"Gogs is a painless self-hosted Git service. It is designed to be simple, stable, and extensible, and can be set up in the most straightforward way possible."},{title:"Cross-Platform",description:"Gogs is a cross-platform application. It runs anywhere Go can compile for, including Windows, Mac, Linux, ARM, and more."},{title:"Lightweight",description:"Gogs is lightweight and has low minimal requirements. It can run on an inexpensive Raspberry Pi, making it accessible to a wide range of users."},{title:"Open Source",description:"Gogs is 100% open source and free of charge. All of its source code is available under the MIT License on GitHub."}],features:[{title:"User Dashboard",description:"Gogs provides a user dashboard, user profile, and activity timeline. This allows users to manage their projects and track their progress effectively."},{title:"Access Repositories",description:"With Gogs, users can access repositories via SSH, HTTP, and HTTPS protocols. This provides flexibility and convenience for users."},{title:"Repository Management",description:"Gogs offers comprehensive repository management. It includes features like repository and organization webhooks, Git hooks, deploy keys, Git LFS, and more."},{title:"Authentication",description:"Gogs supports authentication via SMTP, LDAP, reverse proxy, GitHub.com, and GitHub Enterprise with 2FA. This ensures the security and integrity of your projects."},{title:"Customization",description:"Gogs allows users to customize HTML templates, static files, and many others. This gives users the freedom to tailor the application to their specific needs."}],tags:["Code Hosting"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=e.sshPort;return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"backup",mountPath:"/backup"}],ports:[{published:a,target:22}]}}),{services:t}}},{slug:"gokapi",meta:{name:"Gokapi",description:"Gokapi is a lightweight file-sharing server that allows you to easily upload and share files with others. It provides a simple web interface for file uploads, generates shareable links, and supports features like password protection, automatic file expiration, and customizable download limits.",instructions:null,changeLog:[{date:"2024-05-09",description:"first release"},{date:"2026-04-29",description:"Version bumped to v2.2.4"}],links:[{label:"Github",url:"https://github.com/Forceu/Gokapi"},{label:"Documentation",url:"https://gokapi.readthedocs.io/en/latest/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gokapi"},appServiceImage:{type:"string",title:"App Service Image",default:"f0rc3/gokapi:v2.2.4"}}},benefits:[{title:"Simple File Sharing",description:"Easily share files with others through a clean and intuitive web interface."},{title:"Enhanced Privacy Controls",description:"Set passwords, expiration dates, and download limits for each shared file."},{title:"Self-Hosted Solution",description:"Keep control of your data by hosting the file sharing service on your own infrastructure."}],features:[{title:"Upload Management",description:"Upload files through a web interface and generate shareable links instantly."},{title:"Access Controls",description:"Protect shared files with passwords and set automatic expiration dates."},{title:"Download Limits",description:"Limit the number of times a file can be downloaded before it expires."}],tags:["File Sharing","Upload Server","File Transfer","Temporary Storage"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/setup",port:53842}],mounts:[{type:"volume",name:"config",mountPath:"/app/config"},{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"gomft",meta:{name:"GoMFT",description:"GoMFT is an open-source Go-based Managed File Transfer platform with a built-in web UI. It lets you define transfer configurations, schedule jobs with cron expressions, monitor transfer history, and manage users and roles \u2014 all from the browser. It uses rclone under the hood, giving it support for dozens of storage backends including S3, SFTP, Google Drive, Azure Blob, local paths, and more.",instructions:"After deployment, open your service URL and log in with the default credentials, [email protected]/admin. Change this password immediately after your first login in the admin settings.",changeLog:[{date:"2026-06-23",description:"Initial release (0.2.11)"}],links:[{label:"Website",url:"https://starfleetcptn.github.io/GoMFT/"},{label:"GitHub",url:"https://github.com/StarFleetCPTN/GoMFT"},{label:"Documentation",url:"https://starfleetcptn.github.io/GoMFT/docs/introduction/overview"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gomft"},appServiceImage:{type:"string",title:"App Service Image",default:"starfleetcptn/gomft:0.2.11"}}},benefits:[{title:"Multi-Backend File Transfer",description:"Powered by rclone, GoMFT connects to S3, SFTP, Google Drive, Azure Blob, Dropbox, local paths, and dozens more \u2014 all configured from the web UI."},{title:"Scheduled Automation",description:"Define cron-based schedules for any transfer job so files move automatically without manual intervention."},{title:"Full Audit Trail",description:"Every transfer run is logged with status, duration, and file counts so you can investigate failures and prove compliance."}],features:[{title:"Transfer Configurations",description:"Create reusable named configs that pair a source and destination backend with authentication credentials and transfer options."},{title:"Job Scheduler",description:"Attach one or more cron schedules to a transfer config and GoMFT will run the job automatically on the defined cadence."},{title:"Transfer History",description:"Browse a paginated log of every past job run with per-file detail, duration, byte counts, and error messages."},{title:"User and Role Management",description:"Create multiple user accounts with role-based access control so operators can view history without being able to change configs."},{title:"Notification Services",description:"Configure email or webhook notifications to alert you when a job succeeds, fails, or is skipped."},{title:"Database Tools",description:"Built-in database viewer and backup utilities let you inspect the embedded SQLite state and export snapshots."}],tags:["File Transfer","Automation","MFT","Storage","Self-hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["TZ=UTC","DATA_DIR=/app/data","BACKUP_DIR=/app/backups","LOGS_DIR=/app/data/logs"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"backups",mountPath:"/app/backups"}]}}),{services:t}}},{slug:"gonic",meta:{name:"Gonic",description:"Gonic is a music streaming server / subsonic server API implementation, written in Go. It provides a simple and efficient way to stream your music collection through a web interface or compatible clients. Gonic supports various audio formats and offers features like transcoding, cover art, and playlist management.",instructions:"Login credentials are admin/admin",changeLog:[{date:"2025-09-23",description:"Initial template release (v0.18.0)"},{date:"2026-04-29",description:"Version bumped to 4b3721b"}],links:[{label:"Documentation",url:"https://github.com/sentriz/gonic/wiki"},{label:"Github",url:"https://github.com/sentriz/gonic"},{label:"DockerHub",url:"https://hub.docker.com/r/sentriz/gonic"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gonic"},appServiceImage:{type:"string",title:"App Service Image",default:"sentriz/gonic:4b3721b"}}},benefits:[{title:"Self-Hosted Music Streaming",description:"Host your own music streaming server with full control over your music collection and privacy."},{title:"Subsonic API Compatible",description:"Compatible with a wide range of Subsonic clients, allowing you to use your preferred music player."},{title:"Efficient and Fast",description:"Built in Go for high performance and low resource usage, making it perfect for home servers."},{title:"Transcoding Support",description:"Automatically transcodes audio files to different formats based on client requirements and bandwidth."}],features:[{title:"Music Streaming",description:"Stream your music collection through a web interface or compatible Subsonic clients."},{title:"Podcast Support",description:"Manage and stream your podcast collection alongside your music."},{title:"Playlist Management",description:"Create, manage, and share playlists with support for various playlist formats."},{title:"Cover Art",description:"Automatic cover art detection and display for albums and tracks."},{title:"Transcoding",description:"On-the-fly audio transcoding to optimize streaming for different devices and bandwidth."},{title:"Jukebox Mode",description:"Optional jukebox mode for direct audio output on the server."},{title:"Web Interface",description:"Clean and responsive web interface for browsing and playing your music collection."}],tags:["Media","Music","Streaming","Subsonic","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"gonic-data",mountPath:"/data"},{type:"volume",name:"gonic-cache",mountPath:"/cache"},{type:"volume",name:"music",mountPath:"/music"},{type:"volume",name:"podcasts",mountPath:"/podcasts"},{type:"volume",name:"playlists",mountPath:"/playlists"}]}}),{services:t}}},{slug:"gopeed",meta:{name:"GoPeed",description:"GoPeed is a high-performance download manager that supports HTTP, HTTPS, FTP, BitTorrent, and other protocols. It features a modern web interface and supports multiple download task.",instructions:null,changeLog:[{date:"2025-05-02",description:"Initial release"},{date:"2026-04-29",description:"Version bumped to v1.9.3"}],links:[{label:"Website",url:"https://gopeed.com/"},{label:"GitHub",url:"https://github.com/GopeedLab/gopeed"},{label:"Docker Hub",url:"https://hub.docker.com/r/liwei2633/gopeed"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gopeed"},appServiceImage:{type:"string",title:"App Service Image",default:"liwei2633/gopeed:v1.9.3"}}},benefits:[{title:"High Performance",description:"Fast and efficient download management with support for multiple protocols"},{title:"Modern Interface",description:"Clean and intuitive web-based user interface"},{title:"Multi-protocol Support",description:"Download from HTTP, HTTPS, FTP, BitTorrent, and more"},{title:"Open Source",description:"Free and open-source platform with active development"}],features:[{title:"Web Interface",description:"Access and manage downloads through a modern web UI"},{title:"Multiple Protocols",description:"Support for various download protocols"},{title:"Download Management",description:"Pause, resume, and manage multiple download tasks"},{title:"Progress Tracking",description:"Real-time download progress monitoring"},{title:"Custom Storage",description:"Configurable download storage location"}],tags:["Download Manager","File Transfer","Self-hosted","Open Source"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9999}],mounts:[{type:"volume",name:"gopeed-downloads",mountPath:"/root/Downloads"}]}}),{services:t}}},{slug:"gotenberg",meta:{name:"Gotenberg",description:"Gotenberg is a Docker-powered stateless API designed to handle PDF files. It offers a developer-friendly interface to interact with robust tools like Chromium and LibreOffice, enabling the conversion of various document formats such as HTML, Markdown, Word, Excel, and more into PDF files. The app also supports an asynchronous workflow with a webhook feature, allowing you to upload the output file to your preferred destination. Gotenberg is a modular platform, meaning you can customize each module according to your needs. Additionally, it provides the option to build your own Docker image by adding new tools and creating modules that offer new routes to the API.",instructions:null,changeLog:[{date:"2023-02-21",description:"first release"},{date:"2025-01-14",description:"Version bumped to 8.15.3"},{date:"2025-02-25",description:"Version bumped to 8.17.1"},{date:"2025-07-21",description:"Version bumped to 8.21"},{date:"2025-12-25",description:"Version bumped to 8.25.1"},{date:"2026-02-21",description:"Version bumped to 8.26.0"},{date:"2026-04-29",description:"Version bumped to 8.32.0"}],links:[{label:"Website",url:"https://gotenberg.dev/"},{label:"Documentation",url:"https://gotenberg.dev/docs/get-started/live-demo"},{label:"Github",url:"https://github.com/gotenberg/gotenberg"}],contributors:[{name:"TheoCouss",url:"https://github.com/TheoCouss"},{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gotenberg"},appServiceImage:{type:"string",title:"App Service Image",default:"gotenberg/gotenberg:8.32.0"}}},benefits:[{title:"Efficient Document Conversion",description:"Gotenberg is a Docker-powered stateless API that efficiently converts various document formats into PDF files. It works with HTML, Markdown, Word, Excel, and more, making it a versatile tool for all your document conversion needs."},{title:"Asynchronous Workflow",description:"Gotenberg's webhook feature allows for an asynchronous workflow. You can upload the output file to the destination of your choice, with many options to fit your requirements, from the custom HTTP headers sent to your webhook to the HTTP method used to call it."},{title:"Modular Platform",description:"Gotenberg is a modular platform composed of modules, each with properties you may customize to your liking. This flexibility allows you to tailor the platform to your specific needs."}],features:[{title:"Document Conversion",description:"Gotenberg provides a developer-friendly API to interact with powerful tools like Chromium and LibreOffice for converting various document formats into PDF files."},{title:"Webhook Feature",description:"The webhook feature allows you to upload the output file to the destination of your choice. You can customize the HTTP headers and the HTTP method used to call your webhook."},{title:"Modular Design",description:"Gotenberg is composed of modules, each with properties you can customize. This modular design allows for a high degree of flexibility and adaptability."}],tags:["Developer Tools","Documents","Productivity"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[]}}),{services:t}}},{slug:"gotify",meta:{name:"Gotify",description:"Gotify is a simple, self-hosted server for sending and receiving messages. It is designed with a user-friendly interface and a straightforward API, making it easy to use across different platforms. The core of Gotify is the server, which features a WebUI and functionality for sending messages via a REST-API, subscribing/receiving messages via a web socket connection, and managing users, clients, and applications. Gotify also includes an Android client for subscribing to the message stream of the server, creating push notifications for newly received messages. Additionally, there is a command line client for pushing messages to the server. All these features make Gotify a versatile tool for managing and exchanging messages while maintaining control over your data.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2023-2-24",description:"Update to v2.2.4"},{date:"2025-01-14",description:"Version bumped to 2.6"},{date:"2025-07-21",description:"Version bumped to 2.6.3"},{date:"2025-12-25",description:"Version bumped to 2.7.3"},{date:"2026-02-21",description:"Version bumped to 2.9.0"},{date:"2026-04-29",description:"Version bumped to 2.9.1"}],links:[{label:"Website",url:"https://gotify.net/"},{label:"Documentation",url:"https://gotify.net/docs/"},{label:"Github",url:"https://github.com/gotify/server"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gotify"},appServiceImage:{type:"string",title:"App Service Image",default:"gotify/server:2.9.1"},password:{type:"string",title:"Password"},serviceTimezone:{type:"string",title:"Timezone",default:"Europe/London"}}},benefits:[{title:"Control Your Data",description:"Gotify is a self-hosted app, meaning you have complete control over your data. It is free and open source, licensed under the MIT license."},{title:"Cross Platform",description:"Written in Go, Gotify can be easily compiled for different platforms, making it a versatile choice for sending and receiving messages."},{title:"Simple to Use",description:"Both Gotify's API and user interface are designed to be as simple as possible, making it easy to send and receive messages."}],features:[{title:"Message Sending and Receiving",description:"Gotify serves as a simple server for sending messages via a REST-API and subscribing/receiving messages via a web socket connection."},{title:"User, Client, and Application Management",description:"Gotify provides functionality for managing users, clients, and applications."},{title:"Android Client",description:"Gotify offers an Android client for subscribing to the message stream of the Gotify server. The app creates push notifications for newly received messages."},{title:"Command Line Client",description:"Gotify also features a command line client for pushing messages to the Gotify server."}],tags:["Communication","Push Notifications","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["GOTIFY_DEFAULTUSER_PASS=".concat(e.password),"TZ=".concat(e.serviceTimezone)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"gotosocial",meta:{name:"GoToSocial",description:"GoToSocial is a lightweight, customizable, and safety-focused social network server that provides a fun and fast entryway into the Fediverse. It is written in Golang and allows you to keep in touch with friends, post, read, and share images and articles without being tracked or advertised to. If you've used platforms like Twitter or Tumblr, GoToSocial will feel familiar. You can follow people, have followers, make posts that others can favorite, reply to, and share, and scroll through posts from people you follow using a timeline. You can write long or short posts, post images, and even block people or limit unwanted interactions by posting just to your friends. GoToSocial is not designed for influencers with tens of thousands of followers, nor is it designed to be addictive. Your timeline and experience are shaped by who you follow and how you interact with people, not by engagement metrics. GoToSocial is ideal for small or single-user instances running on low-powered devices, like single-board computers or old laptops repurposed as home servers. It is simple to install and maintain, and prioritizes good security and sensible defaults.",instructions:null,changeLog:[{date:"2023-5-26",description:"First release"},{date:"2025-01-14",description:"Version bumped to 0.17.3"},{date:"2025-02-25",description:"Version bumped to 0.18.1"},{date:"2025-07-21",description:"Version bumped to 0.19.1"},{date:"2025-12-25",description:"Version bumped to 0.20.2"},{date:"2026-02-21",description:"Version bumped to 0.20.3"},{date:"2026-04-29",description:"Version bumped to 0.21.2"}],links:[{label:"Website",url:"https://gotosocial.org/"},{label:"Documentation",url:"https://docs.gotosocial.org/en/latest/"},{label:"Codeberg",url:"https://codeberg.org/superseriousbusiness/gotosocial"}],contributors:[{name:"Michael Kinder",url:"https://github.com/ressonix"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"gotosocial"},appServiceImage:{type:"string",title:"App Service Image",default:"superseriousbusiness/gotosocial:0.21.2"}}},benefits:[{title:"Privacy-Focused",description:"GoToSocial is a privacy-focused social network server. It allows you to keep in touch with your friends, post, read, and share images and articles without being tracked or advertised to."},{title:"Customizable Experience",description:"GoToSocial offers a customizable experience. You can follow people, make posts which people can favourite, reply to and share, and scroll through posts from people you follow using a timeline. You can write long or short posts, or just post images. You can also block people or limit interactions that you don't want by posting just to your friends."},{title:"Non-Addictive",description:"GoToSocial is not designed to be addictive. Your timeline and your experience are shaped by who you follow and how you interact with people, not by metrics of engagement."},{title:"Lightweight and Efficient",description:"GoToSocial is designed for small or single-user instances running on low-powered devices. It provides lightweight software which is simple to install and maintain, and has good security and sensible defaults."}],features:[{title:"Social Networking",description:"GoToSocial is an ActivityPub social network server that allows you to keep in touch with your friends, post, read, and share images and articles."},{title:"Privacy and Safety",description:"GoToSocial provides a safety-focused entryway into the Fediverse. It does not track or advertise to its users, and allows you to block people or limit interactions that you don't want."},{title:"Customizable Experience",description:"With GoToSocial, you can follow people, make posts, and scroll through posts from people you follow using a timeline. You can write long or short posts, or just post images."},{title:"Non-Addictive Design",description:"GoToSocial is not designed to be addictive. Your timeline and your experience are shaped by who you follow and how you interact with people, not by metrics of engagement."},{title:"Lightweight Software",description:"GoToSocial is designed for small or single-user instances running on low-powered devices. It provides lightweight software which is simple to install and maintain."}],tags:["Social Networking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["GTS_HOST=$(PRIMARY_DOMAIN)","GTS_DB_TYPE=sqlite","GTS_DB_ADDRESS=/gotosocial/storage/sqlite.db","GTS_LETSENCRYPT_ENABLED=false","GTS_ACCOUNTS_REGISTRATION_OPEN=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"storage",mountPath:"/gotosocial/storage"}]}}),{services:t}}},{slug:"grafana-otel-lgtm",meta:{name:"Grafana OTEL LGTM",description:"Grafana OTEL LGTM is an all-in-one OpenTelemetry backend bundled into a single Docker image. It includes the OpenTelemetry Collector, Prometheus for metrics, Grafana Loki for logs, Grafana Tempo for traces, Grafana Pyroscope for application profiles, and Grafana for unified visualization. The collector automatically routes telemetry signals to the correct backend \u2014 metrics to Prometheus, logs to Loki, traces to Tempo, and profiles to Pyroscope. It works out of the box with OpenTelemetry's default settings, so applications instrumented with any OpenTelemetry SDK can send data immediately. Optional eBPF auto-instrumentation (OBI) can generate traces and RED metrics for HTTP/gRPC services with zero code changes.",instructions:'After deployment, access the Grafana dashboard via the service domain. \nLog in with the default credentials: username "admin", password\n"admin". All data sources (Prometheus, Loki, Tempo, Pyroscope) are\npre-configured. Point your OpenTelemetry-instrumented applications to the\nOTLP endpoints \u2014 port 4317 for gRPC and port 4318 for HTTP. No additional\nconfiguration is needed; the image works with OpenTelemetry defaults.\n',changeLog:[{date:"2026-02-20",description:"Template Release"},{date:"2026-04-29",description:"Version bumped to 0.27.0"}],links:[{label:"Website",url:"https://grafana.com/"},{label:"GitHub",url:"https://github.com/grafana/docker-otel-lgtm"},{label:"Documentation",url:"https://grafana.com/docs/opentelemetry/docker-lgtm"},{label:"Docker Hub",url:"https://hub.docker.com/r/grafana/otel-lgtm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"grafana-otel-lgtm"},appServiceImage:{type:"string",title:"Grafana OTEL LGTM Image",default:"grafana/otel-lgtm:0.27.0"},otlpPort:{type:"number",title:"OTLP Port",default:4317},otlpHttpPort:{type:"number",title:"OTLP HTTP Port",default:4318}}},benefits:[{title:"Complete Observability in One Container",description:"Bundles OpenTelemetry Collector, Prometheus, Loki, Tempo, Pyroscope, and Grafana into a single image. Deploy a full observability stack in seconds with zero configuration."},{title:"Zero-Config OpenTelemetry Backend",description:"Works with OpenTelemetry's default settings out of the box. Any application instrumented with an OpenTelemetry SDK can send data immediately without endpoint configuration."},{title:"Unified Visualization",description:"Grafana comes pre-configured with all data sources connected. Explore metrics, logs, traces, and profiles from a single dashboard with built-in correlation between signals."},{title:"Multi-Language Support",description:"Compatible with OpenTelemetry SDKs for Java, Go, Python, .NET, Node.js, Ruby, and any language with OTLP support."}],features:[{title:"Automatic Signal Routing",description:"The OpenTelemetry Collector automatically routes metrics to Prometheus, logs to Loki, traces to Tempo, and profiles to Pyroscope without manual pipeline configuration."},{title:"OTLP gRPC & HTTP Endpoints",description:"Accepts telemetry data on port 4317 (gRPC) and port 4318 (HTTP) using the standard OpenTelemetry Protocol for maximum SDK compatibility."},{title:"Application Profiling",description:"Grafana Pyroscope captures continuous application profiles for CPU, memory, and other runtime metrics to identify performance bottlenecks."},{title:"eBPF Auto-Instrumentation",description:"Optional OBI support uses eBPF to automatically generate traces and RED metrics for HTTP/gRPC services with zero code changes (Linux kernel 5.8+ required)."},{title:"Persistent Data Storage",description:"All components write to a single /data directory. Mount a volume to persist metrics, logs, traces, and profiles across container restarts."},{title:"Configurable Logging",description:"Enable debug logging for individual components (Grafana, Loki, Prometheus, Tempo, Pyroscope, OTel Collector) or all at once via environment variables."}],tags:["Observability","OpenTelemetry","Grafana","Prometheus","Monitoring","Logging","Tracing"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["GF_AUTH_ANONYMOUS_ENABLED=false"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}],ports:[{published:e.otlpPort||4317,target:4317},{published:e.otlpHttpPort||4318,target:4318}]}}),{services:t}}},{slug:"grafana",meta:{name:"Grafana",description:"Grafana is a powerful, open-source platform designed to provide comprehensive metrics, logs, and trace data visualization. It allows users to query, visualize, and alert on their data, offering high-scale distributed tracing and scalable, performant metrics. The app also includes features for incident response and management, performance testing, and on-call management. Grafana can connect to various data sources and applications, providing operational dashboards for your data anywhere. It also offers a free forever plan, allowing users to monitor their data with 10,000 series metrics, 50 GB of logs, 50 GB of traces, and 500 VUh of k6 testing. Grafana is a versatile tool for anyone looking to gain insights from their data.",instructions:"Login with admin:admin",changeLog:[{date:"2023-3-15",description:"first release"},{date:"2024-10-09",description:"Version changed to 11.2.2"},{date:"2025-01-14",description:"Version bumped to 11.4.0"},{date:"2025-07-21",description:"Version bumped to 12.0.2"},{date:"2025-12-29",description:"Version bumped to 12.3.1"},{date:"2026-02-21",description:"Version bumped to 12.3.3"},{date:"2026-04-29",description:"Version bumped to 13.0.1"}],links:[{label:"Website",url:"https://grafana.com"},{label:"Documentation",url:"https://grafana.com/docs"},{label:"Github",url:"https://github.com/grafana/grafana"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"grafana"},appServiceImage:{type:"string",title:"App Service Image",default:"grafana/grafana-oss:13.0.1"}}},benefits:[{title:"Comprehensive Data Visualization",description:"Grafana provides a powerful platform for visualizing your data, making it easy to understand and analyze. It supports a wide range of data sources, allowing you to bring together all your data in one place."},{title:"Effective Incident Response & Management",description:"With Grafana Alerting, Grafana Incident, and Grafana OnCall, you can effectively manage incidents and respond quickly to issues. This ensures that your systems remain up and running, minimizing downtime and disruption."},{title:"Performance Testing",description:"Grafana k6 allows you to conduct performance testing, ensuring that your systems are capable of handling the demands placed on them. This helps to prevent issues before they occur, improving the reliability of your systems."}],features:[{title:"Grafana Loki",description:"A multi-tenant log aggregation system that allows you to easily manage and analyze your logs."},{title:"Grafana Tempo",description:"A high-scale distributed tracing backend that provides detailed insights into your systems."},{title:"Grafana Mimir",description:"A scalable and performant metrics backend that allows you to effectively monitor your systems."},{title:"Grafana OnCall",description:"An on-call management feature that ensures you can quickly respond to incidents and issues."}
1,{title:"Grafana k6",description:"A load testing tool for engineering teams that helps ensure your systems can handle the demands placed on them."},{title:"Prometheus",description:"A powerful tool for monitoring Kubernetes and cloud native systems, providing detailed insights and metrics."}],tags:["Monitoring","Logs","Metrics","Traces"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["GF_CHECK_FOR_UPDATES=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"storage",mountPath:"/var/lib/grafana"}]}}),{services:t}}},{slug:"grav",meta:{name:"Grav",description:"Grav is an award-winning, open-source, flat-file content management system (CMS) designed to help you build faster websites. It's been voted 'Best Open Source CMS' in 2016 and 'Best Flat File CMS' in 2017, 2019, 2020, and 2021. Grav is known for its fast performance, extensibility, and user-friendly interface. With Grav, you can easily modify flexible configuration settings, edit content with a powerful markdown editor, and install a wide range of modern themes with one click. It also offers a built-in package manager for easy plugin installation. Grav is packed with features and tools that make content creation enjoyable. It supports one-click installs, powerful content filtering, dynamic content types, multi-language support, simple backups and restores, image media processing, and easy theme customization. Whether you're creating landing pages, portfolios, product sites, personal resumes, e-commerce sites, blogs, business sites, or documentation, Grav provides the flexibility and power you need.",instructions:null,changeLog:[{date:"2023-03-19",description:"Template created (v1.7.39)"},{date:"2025-01-14",description:"Version bumped to 1.7.48"},{date:"2025-12-25",description:"Version bumped to 1.7.49"},{date:"2026-04-29",description:"Version bumped to 1.7.52"}],links:[{label:"Website",url:"https://getgrav.org"},{label:"Documentation",url:"https://learn.getgrav.org"},{label:"Github",url:"https://github.com/getgrav/grav"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"}],schema:{type:"object",required:["appServiceName","appServiceImage","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"grav"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/grav:1.7.52"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC"}}},benefits:[{title:"Fast Performance",description:"Grav is not just fast, it's blazing fast. Performance is not an afterthought, it's baked in from the start. This ensures your websites load quickly, providing a superior user experience."},{title:"Extensible",description:"Grav is designed to be flexible and extensible, with a powerful API and sophisticated Package Manager. This means you can easily customize and extend your websites to meet your specific needs."},{title:"Open Source",description:"Grav is an open source project, which means you have complete access to the source code and can modify it to suit your needs. It also means you benefit from the collective knowledge and expertise of a global community of developers."},{title:"Easy to Use",description:"The Grav admin plugin provides a simple and intuitive interface, making configuration and content creation easy and enjoyable. Whether you're a novice or a seasoned developer, you'll find Grav a pleasure to use."}],features:[{title:"One-Click Installs",description:"Grav's built-in Package Manager allows you to find, install, and easily update extensions and themes with just one click. This makes it easy to add new functionality and change the look and feel of your websites."},{title:"Powerful Content Filtering",description:"Grav allows you to create unlimited taxonomies such as tags, categories, and authors to filter and manage your content. This makes it easy to organize your content and make it accessible to your users."},{title:"Dynamic Content Types",description:"The flat-file nature of Grav lets you define custom fields for any of your pages, including modular content. This gives you the flexibility to create a wide variety of content types."},{title:"Multi-Language Support",description:"Grav includes a simple mechanism for presenting sites in multiple languages. This makes it easy to create multilingual websites that cater to a global audience."},{title:"Simple Backups and Restores",description:"Being file based means backing up and restoring your data is super easy, and changing hosts or servers is a breeze. This gives you peace of mind knowing your data is safe and easily recoverable."},{title:"Easy Theme Customization",description:"With Grav, there's no need to start from scratch when customizing your theme. Use Theme Inheritance and then modify the bits you need, allowing for easier updates and maintenance."}],tags:["CMS"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["PUID=1000","PGID=1000","TZ=".concat(e.timezone)].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"grayduckmail",meta:{name:"Gray Duck Mail",description:"Gray Duck Mail is a user-friendly email discussion list application that offers an alternative to traditional email discussion group software. It is designed to be simple to set up and manage, making the process of running an email discussion list effortless. Gray Duck Mail is perfect for managing mailing lists between small to medium size groups, such as neighborhoods, schools, workplaces, and families. With Gray Duck Mail, you can send one email and automatically keep everyone in the loop. The application monitors a remote mail server for messages and processes them by relaying the message to all list members. It also automatically handles user subscriptions, unsubscription requests, and email bounces. Gray Duck Mail works with any external email host that allows for POP3/SMTP connections and message forwarding or aliasing. It relies totally on an external mail provider, allowing you to use an existing web host or email account.",instructions:null,changeLog:[{date:"2023-3-3",description:"First Release"}],links:[{label:"Website",url:"https://grayduckmail.com"},{label:"Github",url:"https://github.com/wagesj45/gray-duck-mail"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"grayduckmail"},appServiceImage:{type:"string",title:"App Service Image",default:"wagesj45/gray-duck-mail"}}},benefits:[{title:"Effortless Email Discussion Lists",description:"Gray Duck Mail is an easy-to-use tool that makes running an email discussion list effortless. It is perfect for managing mailing lists between small to medium size groups. Send one email, and everyone is automatically kept in the loop."},{title:"Easy to Set Up and Manage",description:"Gray Duck Mail is designed to be easy to set up and manage, making it a great alternative to other email discussion group software. It monitors a remote mail server for messages and processes them by relaying the message to all list members."},{title:"Automated Handling",description:"Gray Duck Mail automatically handles user subscriptions, unsubscription requests, and email bounces, saving you time and effort. It works with any external email host that allows for POP3/SMTP connections and message forwarding or aliasing."}],features:[{title:"Email Discussion Lists",description:"Gray Duck Mail allows you to create and manage email discussion lists with ease. It connects you to your group through the one platform that everyone is on: email."},{title:"Automatic Handling of Subscriptions and Bounces",description:"Gray Duck Mail automatically handles user subscriptions and unsubscription requests, as well as email bounces. This means you can focus on your discussion, not on managing your list."}
1,{title:"Works with Any External Email Host",description:"Gray Duck Mail works with any external email host that allows for POP3/SMTP connections and message forwarding or aliasing. This means you can use it with your existing web host or email account."}],tags:["Email"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["RATE_LIMIT_PER_ROUND_COUNT=20","RATE_LIMIT_ROUND_WAIT_TIME=00:05:00","FETCH_TIME=00:05:00","LOG_LEVEL=info","MIN_SEARCH_SCORE=0.2","WEB_ONLY=0","WEB_UNSUBSCRIBE=1","WEB_USE_HTTPS=1","WEB_EXTERNAL_URL=$(PRIMARY_DOMAIN)"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/database"}]}}),{services:t}}},{slug:"grimmory",meta:{name:"Grimmory",description:"Grimmory is a self-hosted digital library for serious readers and a community fork of Booklore. It lets you organize, read, and manage books across multiple formats including EPUB, MOBI, AZW3, PDF, CBZ, and audiobook formats. Features include metadata enrichment, a built-in browser reader, Kobo and KOReader device sync, OPDS catalog, multi-user support, and a BookDrop watched folder for automatic imports.",instructions:"After deployment navigate to the provided domain. A setup wizard will guide you through creating the initial admin account. Add your book library by placing files in the /books volume or using the BookDrop auto-import folder at /bookdrop.",changeLog:[{date:"2026-06-12",description:"First release"}],links:[{label:"Website",url:"https://grimmory.org"},{label:"Docs",url:"https://grimmory.org/docs"},{label:"GitHub",url:"https://github.com/grimmory-tools/grimmory"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"grimmory"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/grimmory-tools/grimmory:v3.2.0"}}},benefits:[{title:"Multi-Format Library",description:"Manage EPUB, MOBI, AZW3, PDF, CBZ, and audiobook files in one place."},{title:"Device Synchronization",description:"Sync reading progress with Kobo, KOReader, and OPDS-compatible readers."},{title:"Multi-User Support",description:"Create separate accounts with individual reading progress and shelves."}],features:[{title:"Built-In Browser Reader",description:"Read EPUB and other formats directly in the browser without plugins."},{title:"Metadata Enrichment",description:"Automatically fetch and edit book metadata, covers, and descriptions."},{title:"BookDrop Auto-Import",description:"Drop files into a watched folder and Grimmory imports them automatically."},{title:"Magic Shelves",description:"Smart shelves that auto-populate based on tags, genres, or reading status."},{title:"OPDS Catalog",description:"Expose your library as an OPDS feed for compatible e-reader applications."}],tags:["Books","Library","Reading","Self-Hosted","Media"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TZ=Etc/UTC","DATABASE_URL=jdbc:mariadb://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:3306/$(PROJECT_NAME)"),"DATABASE_USERNAME=mariadb","DATABASE_PASSWORD=".concat(a),"SWAGGER_ENABLED=false"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:6060}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"books",mountPath:"/books"},{type:"volume",name:"bookdrop",mountPath:"/bookdrop"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"grist",meta:{name:"Grist",description:"Grist is an open-source, customizable data management platform that combines the power of a spreadsheet with the structure of a database. Designed for teams and individuals who need to organize, analyze, and share information, Grist offers a flexible and collaborative environment for data management. It supports relational data linking, allowing users to create complex, connected data tables, and provides tools for custom views, formulas, and dashboards. Grist\u2019s user-friendly interface empowers users to build powerful applications without requiring extensive coding knowledge.",instructions:null,changeLog:[{date:"2023-3-16",description:"Initial release of Grist"},{date:"2025-01-14",description:"Version bumped to 1.3"},{date:"2025-07-21",description:"Version bumped to 1.6"},{date:"2025-12-25",description:"Version bumped to 1.7.8"},{date:"2026-02-21",description:"Version bumped to 1.7.10"},{date:"2026-04-29",description:"Version bumped to 1.7.13"}],links:[{label:"Website",url:"https://www.getgrist.com"},{label:"Documentation",url:"https://support.getgrist.com"},{label:"GitHub",url:"https://github.com/gristlabs/grist-core"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"grist"},appServiceImage:{type:"string",title:"App Service Image",default:"gristlabs/grist:1.7.13"}}},benefits:[{title:"Powerful Data Management",description:"Grist enables users to create data structures that link tables with relational data, bringing database-like functionality into a spreadsheet interface."},{title:"Customizable Views and Dashboards",description:"With Grist, users can create personalized dashboards and views tailored to their needs, allowing for efficient data analysis and reporting."},{title:"Collaborative Data Handling",description:"Grist\u2019s collaborative environment allows teams to work together on shared data tables, making it easy to track updates, comments, and real-time changes."},{title:"No-Code and Low-Code Flexibility",description:"Grist\u2019s intuitive platform is designed to empower users without coding experience to build applications. For advanced users, it offers support for custom formulas and scripts."},{title:"Data Security and Privacy",description:"Grist provides robust data control options, allowing organizations to manage data access and security settings, making it suitable for sensitive information."}],features:[{title:"Custom Formulas and Scripts",description:"Grist supports custom formulas and scripting, enabling users to create complex calculations and automate data processing."},{title:"Multi-User Collaboration",description:"Grist is designed for collaboration, allowing multiple users to interact with and edit shared data tables simultaneously."},{title:"API Integration",description:"Grist provides API support, allowing integration with external tools and services to streamline data workflows."},{title:"Templates and Pre-Built Examples",description:"Grist offers a variety of templates and pre-built examples to help users quickly set up data structures suited for different business needs."},{title:"Customizable Permissions",description:"Grist allows for fine-grained permission control, enabling administrators to set specific access levels for individual users."},{title:"Data Import and Export",description:"Users can easily import and export data in various formats, making it simple to move data between Grist and other platforms."}],tags:["Data Management","Spreadsheet","Database","Collaboration","No-Code","Customizable Dashboards","Data Security","API Integration","Templates","Data Import/Export"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_HOME_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8484}],mounts:[{type:"volume",name:"data",mountPath:"/persist"}]}}),{services:t}}},{slug:"grocy",meta:{name:"Grocy",description:"Grocy is a self-hosted groceries and household management solution. It helps you streamline your daily chores, track inventory, manage shopping lists, plan meals, and keep tabs on household tasks. With Grocy, you can efficiently manage your pantry, reduce waste, and optimize your shopping experience. Grocy provides a user-friendly interface to organize your household activities and track consumables with expiration dates, giving you better control over your time and resources.",instructions:"default credentials; username; admin, password; admin",changeLog:[{date:"2024-12-24",description:"First release"},{date:"2025-07-21",description:"Version bumped to 4.5.0"},{date:"2026-04-29",description:"Version bumped to 4.6.0"}],links:[{label:"Website",url:"https://grocy.info/"},{label:"Documentation",url:"https://github.com/grocy/docs"},{label:"Github",url:"https://github.com/grocy/grocy"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"grocy"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/grocy:4.6.0"}}},benefits:[{title:"Efficient Inventory Management",description:"Keep track of your pantry and household inventory, ensuring you never run out of essentials or waste expired items."},{title:"Meal Planning and Shopping Lists",description:"Plan meals and automatically generate shopping lists based on your recipes, saving you time and reducing waste."},{title:"Task and Chore Management",description:"Stay organized by assigning and tracking household chores, ensuring nothing gets overlooked."},{title:"Reduce Food Waste",description:"Monitor expiration dates for perishable items, helping you reduce food waste and save money."}],features:[{title:"Comprehensive Inventory Tracking",description:"Grocy lets you track all your household consumables with detailed information, including expiration dates, quantity, and usage."},{title:"Recipe Management",description:"Store and organize your favorite recipes, linking them with inventory items for seamless meal planning."},{title:"Barcode Scanning",description:"Use barcode scanning to quickly add or remove items from your inventory."},{title:"Task and Chore Scheduler",description:"Assign tasks and manage recurring chores with a built-in scheduler."},{title:"Mobile Access",description:"Access Grocy on the go using mobile apps or a responsive web interface."}],tags:["ERP","Groceries","Household Management","Inventory","Meal Planning","Tasks"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"habittrove",meta:{name:"HabitTrove",description:"HabitTrove is a self-hosted habit and chore tracker that pays out virtual coins for completed habits, which can then be redeemed against a wishlist you define. It supports multiple household members with their own PINs, tracks streaks and completion history, and stores everything in flat JSON files rather than a database, so there is nothing extra to provision.",instructions:'Open the app URL and pick the "admin" user from the first-run user picker (no password is required until you set one). From Settings you can add more household members, set up habits and the coin wishlist, and secure each profile with its own password.',changeLog:[{date:"2026-07-13",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/dohsimpson/HabitTrove"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"habittrove"},appServiceImage:{type:"string",title:"App Service Image",default:"dohsimpson/habittrove:v0.2.31"}}},benefits:[{title:"Coin-Based Rewards",description:"Completing a habit pays out coins that can be redeemed against a wishlist, turning habit-building into a small game instead of a bare checklist."},{title:"No Database to Manage",description:"All data is stored in flat JSON files inside a single data volume, so there is no separate database service to provision or back up."},{title:"Built for Households",description:"Multiple family members can each have their own PIN-protected profile, habits, and wishlist under one shared instance."}],features:[{title:"Streaks and History",description:"Every habit tracks its completion history and current streak, so progress is visible at a glance."},{title:"Wishlist Redemption",description:"Define rewards with a coin cost and redeem earned coins against them directly from the app."},{title:"Automatic Backups",description:"A daily backup of the JSON data store is written to a separate backups volume automatically."},{title:"Multi-Language UI",description:"The interface is available in multiple languages, selectable per user."}],tags:["Habit Tracker","Productivity","Self-Hosted","Household"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["AUTH_SECRET=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"backups",mountPath:"/app/backups"}]}}),{services:t}}},{slug:"habridge",meta:{name:"Habridge",description:"Habridge is an open-source software solution that emulates Philips Hue bridges, enabling the integration of various smart devices with home automation systems. It provides a simple yet powerful interface for controlling and managing smart lights, switches, and other IoT devices. Habridge supports a wide range of integrations, including Amazon Alexa, Google Home, and custom APIs, allowing users to create a seamless smart home experience. With its focus on flexibility and ease of use, Habridge empowers users to control their home automation setup with precision and efficiency.",instructions:null,changeLog:[{date:"2024-12-27",description:"First Release"}],links:[{label:"Website",url:"https://github.com/bwssytems/ha-bridge"},{label:"Github",url:"https://github.com/bwssytems/ha-bridge"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"habridge"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/habridge:5.4.1"}}},benefits:[{title:"Seamless Smart Home Integration",description:"Habridge acts as a virtual bridge, enabling seamless integration of smart devices with popular home automation platforms."},{title:"Open-Source and Customizable",description:"As an open-source tool, Habridge is free to use and customize, making it accessible and adaptable to unique user needs."},{title:"Broad Compatibility",description:"Supports integrations with Amazon Alexa, Google Home, and custom APIs for controlling a wide range of smart devices."},{title:"User-Friendly Interface",description:"Provides an intuitive interface for managing devices, commands, and automation rules without requiring advanced technical knowledge."},{title:"Community-Driven Development",description:"Habridge benefits from a passionate community of developers and users who contribute to its growth and provide valuable support."}],features:[{title:"Device Emulation",description:"Habridge emulates a Philips Hue bridge, enabling control of non-Hue devices via Hue-compatible platforms."},{title:"Voice Assistant Integration",description:"Works seamlessly with Amazon Alexa and Google Home for voice-controlled automation."},{title:"Custom Command Support",description:"Allows users to create custom commands and scripts for advanced automation scenarios."},{title:"Broad Device Support",description:"Supports a wide range of smart devices, including lights, switches, and other IoT products."},{title:"API Integration",description:"Provides API support for connecting with custom applications and third-party services."},{title:"Configurable Scenes and Groups",description:"Users can create and manage scenes and groups for dynamic control of multiple devices simultaneously."},{title:"Community Support",description:"An active community offers extensive documentation, tutorials, and forums for troubleshooting and enhancements."}],tags:["Smart Home","Home Automation","IoT","Device Integration","Open-Source","Alexa Integration","Google Home Integration","Custom Commands","Philips Hue Emulation","Voice-Controlled Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC","SEC_KEY="].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"hackmdio",meta:{name:"HackMD",description:"HackMD is a simple and powerful note-taking app that allows you to create notes, write and organize your thoughts, and collaborate with others in real time. It's a great tool for anyone who wants to stay organized and productive while working remotely or on the go.",instructions:null,changeLog:[{date:"2024-11-27",description:"first release"},{date:"2025-07-21",description:"Version bumped to 2.6.0"},{date:"2025-12-25",description:"Version bumped to 2.6.1"}],links:[{label:"Website",url:"https://hackmd.io/"},{label:"Github",url:"https://github.com/hackmdio/codimd"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hackmd"},appServiceImage:{type:"string",title:"App Service Image",default:"hackmdio/hackmd:2.6.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"hackmd-db"}}},benefits:[{title:"No-Code Collaboration",description:"The app provides a no-code collaboration experience, allowing you to collaborate on documents in real time. This eliminates the need for manual sharing and ensures that all changes are tracked and saved."},{title:"No-Code Note Taking",description:"The app provides a no-code note taking experience, allowing you to create notes, write and organize your thoughts, and collaborate with others in real time. This eliminates the need for manual note taking and ensures that all notes are saved and accessible."},{title:"No-Code Organization",description:"The app provides a no-code organization experience, allowing you to organize your notes, tasks, and other content in a structured and intuitive way. This eliminates the need for manual organization and ensures that all content is easily accessible and searchable."}],tags:["No-Code","Collaboration","Note Taking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["CMD_DB_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"CMD_USECDN=false","CMD_ALLOW_EMAIL_REGISTER=true","CMD_EMAIL=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"upload-data",mountPath:"/home/hackmd/app/public/uploads"},{type:"volume",name:"database-data",mountPath:"/var/lib/postgresql/data"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"hammond",meta:{name:"Hammond",description:"Hammond is a self-hosted vehicle management system designed to track fuel and other expenses related to your vehicles. It supports multiple users sharing multiple vehicles, making it an ideal solution for families, businesses, or any group with shared vehicles. With Hammond, you can manage multiple vehicles, track fuel and other expenses, and even save attachments against vehicles. The app also features quick entries, allowing you to take a photo of a receipt or pump screen for later entry. It provides vehicle-level and overall reporting, helping you keep a close eye on your vehicle expenses. Furthermore, Hammond allows you to import data from Clarkson or Fuelly, making the transition to this system seamless and straightforward.",instructions:null,changeLog:[{date:"2023-2-21",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/akhilrex/hammond/tree/master/docs"},{label:"Github",url:"https://github.com/akhilrex/hammond"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hammond"},appServiceImage:{type:"string",title:"App Service Image",default:"akhilrex/hammond:1.0.0"}}},benefits:[{title:"Self-Hosted Vehicle Expense Tracking",description:"Hammond is a self-hosted vehicle expense tracking system. It allows you to keep track of fuel and other expenses related to all of your vehicles in one place."},{title:"Support for Multiple Users",description:"The app supports multiple users sharing multiple vehicles. This makes it ideal for families or businesses with a fleet of vehicles."},{title:"Data Migration",description:"Hammond allows you to migrate data from Clarkson, making it easy to switch over without losing any of your previous data."}],features:[{title:"Vehicle Management",description:"Add and manage multiple vehicles, tracking fuel and other expenses for each one."},{title:"User Management",description:"Add and manage multiple users, allowing them to share vehicles and track expenses."},{title:"Expense Tracking",description:"Keep track of fuel and other expenses related to your vehicles. You can even save attachments against vehicles for easy reference."},{title:"Quick Entries",description:"Take a photo of a receipt or pump screen to make an entry later, ensuring you never forget to log an expense."},{title:"Reporting",description:"Get vehicle level and overall reporting on your expenses, helping you to better understand your spending."},{title:"Import from Fuelly",description:"Easily import your data from Fuelly, with more apps coming soon."}],tags:["Finance","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["JWT_SECRET=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"assets",mountPath:"/assets"},{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"handbrake-web",meta:{name:"Handbrake Web",description:"Handbrake Web is a self-hosted video transcoding solution that provides a web-based interface for managing and processing video encoding jobs using the powerful HandBrake video transcoder. The application features a distributed architecture with a central server for job management and dedicated workers for processing, allowing you to scale encoding capacity by adding more workers. The web interface enables you to upload videos, configure encoding presets, monitor job progress, and manage your transcoding queue from any browser. Handbrake Web supports all the encoding formats and options available in HandBrake, including H.264, H.265/HEVC, VP9, and AV1 codecs, as well as various container formats like MP4, MKV, and WebM. The worker-based architecture allows for parallel processing of multiple videos and can leverage hardware acceleration when available. Perfect for media enthusiasts who need to convert video collections to different formats, content creators preparing videos for multiple platforms, home server administrators managing media libraries, or anyone who needs a reliable self-hosted solution for batch video transcoding without installing desktop applications.",instructions:null,changeLog:[{date:"2025-12-11",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/TheNickOfTime/handbrake-web"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"handbrake-web"},appServiceImage:{type:"string",title:"Server Image",default:"ghcr.io/thenickoftime/handbrake-web-server:latest"},workerImage:{type:"string",title:"Worker Image",default:"ghcr.io/thenickoftime/handbrake-web-worker:latest"},workerId:{type:"string",title:"Worker ID",default:"worker-1"}}},benefits:[{title:"Web-Based Transcoding",description:"Manage all your video encoding jobs through an intuitive web interface accessible from any browser without installing desktop software."},{title:"Distributed Processing",description:"Scale your encoding capacity by deploying multiple workers that process jobs in parallel from a central queue."},{title:"HandBrake Power",description:"Access all HandBrake encoding options including modern codecs like H.265, VP9, and AV1 with full preset customization."},{title:"Self-Hosted Control",description:"Keep your video files private on your own infrastructure without uploading to third-party cloud transcoding services."}],features:[{title:"Job Queue Management",description:"Submit, prioritize, pause, and monitor video encoding jobs through the centralized web interface."},{title:"Multiple Workers",description:"Deploy multiple worker containers to process encoding jobs in parallel and speed up large batch operations."},{title:"Encoding Presets",description:"Use built-in presets or create custom encoding profiles for consistent output across all your videos."},{title:"Format Support",description:"Support for modern video codecs including H.264, H.265/HEVC, VP9, AV1 and containers like MP4, MKV, WebM."},{title:"Progress Monitoring",description:"Real-time progress tracking for all encoding jobs with estimated time remaining and detailed status information."},{title:"Hardware Acceleration",description:"Leverage GPU hardware encoding when available for significantly faster transcoding performance."},{title:"Batch Processing",description:"Queue multiple videos for encoding and let workers process them automatically without manual intervention."},{title:"Shared Storage",description:"Workers and server share the same media volume ensuring seamless access to input files and encoded outputs."}],tags:["Video","Transcoding","Media","HandBrake","Encoding","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9999}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"video",mountPath:"/video"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),source:{type:"image",image:e.workerImage||"ghcr.io/thenickoftime/handbrake-web-worker:latest"},env:["WORKER_ID=".concat(e.workerId||"worker-1"),"SERVER_URL=$(PROJECT_NAME)_".concat(e.appServiceName),"SERVER_PORT=9999"].join("\n"),mounts:[{type:"volume",name:"video",mountPath:"/video"}]}}),{services:t}}},{slug:"haptic",meta:{name:"Haptic",description:"Haptic is a local-first, privacy-focused, open-source markdown note-taking app built with Svelte and PGlite. All notes are stored directly in your browser's IndexedDB \u2014 no account, no cloud sync, and no server-side database required. It features an inline Markdown editor with live preview, a file-tree sidebar, daily notes, a task tracker, and full-text search with regex support. The Docker image is a tiny (~72 MB) nginx container that serves the static web app; data lives entirely in the client.",instructions:"Open the app at your domain after deployment. No login or setup is required \u2014 Haptic runs entirely in your browser using PGlite (WebAssembly SQLite via IndexedDB). Create your first note using the sidebar and start writing Markdown immediately. Notes persist in your browser's local storage, so clearing browser data will erase them.",changeLog:[{date:"2026-06-26",description:"First Release"}],links:[{label:"Website",url:"https://www.haptic.md/"},{label:"GitHub",url:"https://github.com/chroxify/haptic"},{label:"Docker Hub",url:"https://hub.docker.com/r/chroxify/haptic-web"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"haptic"},appServiceImage:{type:"string",title:"App Service Image",default:"chroxify/haptic-web:v0.1.4"}}},benefits:[{title:"Truly Local-First",description:"Notes are stored in your browser's IndexedDB using PGlite (a WebAssembly port of SQLite). No data ever leaves your device or hits a server \u2014 Haptic is as private as a local desktop app, accessible from any browser."},{title:"Minimal and Fast",description:"The entire Docker image is under 72 MB and is a simple nginx static server. There is no database container, no backend process, and no environment variables to configure \u2014 deploy and start writing in under a minute."},{title:"Distraction-Free Markdown Editing",description:"Haptic provides everything you need and nothing you don't \u2014 inline Markdown editing with live preview, keyboard-driven navigation, and a clean three-column layout that stays out of your way."}],features:[{title:"Inline Markdown Editor",description:"Write and preview Markdown without switching modes. The editor renders headings, bold, italic, code blocks, and lists inline as you type."},{title:"Daily Notes",description:"A dedicated daily-notes section creates a dated entry for each day, making it easy to keep a running journal or capture quick thoughts."},{title:"Task Tracker",description:"A built-in tasks view lets you create and check off to-do items across all your notes without leaving the app."},{title:"Full-Text Search",description:"Search across all notes instantly with optional regular-expression support via the command menu (Ctrl/Cmd+K)."},{title:"Appearance Customisation",description:"Switch between light and dark themes and adjust editor font settings from the Settings panel."}],tags:["Note Taking","Productivity","Markdown","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"hastebin",meta:{name:"Hastebin",description:"Haste is an open-source software that allows you to quickly and easily share text snippets. It's designed to be simple, pretty, and easy to use. With Haste, you can create a 'paste' of your text and it will generate a unique URL that you can share. This is particularly useful for sharing code snippets or other information that you want to quickly share with others. Haste is written in node.js and can be backed by either a file system or redis, providing flexibility in how it's set up. It also includes a utility called haste-client that allows you to create pastes directly from your command line. Haste is designed to work well with a variety of browsers, including Firefox, Chrome, and Safari.",instructions:null,changeLog:[{date:"2022-11-22",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/toptal/haste-server/wiki"},{label:"Github",url:"https://github.com/toptal/haste-server"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hastebin"},appServiceImage:{type:"string",title:"App Service Image",default:"rlister/hastebin:latest"}}},benefits:[{title:"Efficient Data Sharing",description:"Haste allows users to share data quickly and efficiently. By simply inputting data into the app, users can generate a URL that can be shared with others. This eliminates the need for cumbersome email attachments or other more traditional methods of data sharing."},{title:"Versatile Data Storage",description:"Haste supports a variety of data storage options. Whether you prefer file storage, Redis, PostgreSQL, MongoDB, Memcached, RethinkDB, Google Datastore, or Amazon S3, Haste has you covered. This flexibility allows users to choose the storage option that best suits their needs."},{title:"Simple and Elegant Design",description:"Haste is designed to be simple and elegant. Its user-friendly interface makes it easy for anyone to use, regardless of their technical expertise. Plus, its sleek design makes it a pleasure to work with."}],features:[{title:"Data Sharing",description:"Haste makes it easy to share data. Simply input your data into the app, and Haste will generate a URL that you can share with others. This feature is perfect for those who need to share large amounts of data quickly and efficiently."},{title:"Multiple Storage Options",description:"Haste supports a variety of data storage options. You can choose to store your data in files, Redis, PostgreSQL, MongoDB, Memcached, RethinkDB, Google Datastore, or Amazon S3. This feature gives you the flexibility to choose the storage option that best suits your needs."},{title:"Rate Limiting",description:"Haste includes built-in rate limiting courtesy of connect-ratelimit. This feature helps to prevent abuse and ensure fair usage by limiting the number of requests a user can make within a certain timeframe."},{title:"Key Generation",description:"Haste includes a key generation feature that generates unique keys for each piece of data you input into the app. You can choose to generate phonetic keys, similar to pwgen, or random keys. This feature ensures that each piece of data you share has a unique identifier."}],tags:["Code Hosting","Documents"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"hastypaste",meta:{name:"Hasty Paste",description:"Hasty Paste is a fast and minimalistic app designed for quickly pasting and sharing text. It is primarily used for sharing debug logs and similar content to aid developers in providing tech support. The app is publicly accessible with no authentication required. It generates random IDs for each paste, with an optional 'long' ID to reduce the chances of brute force attacks. Users can also add expiring pastes. The app features a dark theme and optional syntax highlighting. It is designed to use minimal resources and does not require JavaScript. Hasty Paste also allows users to choose their file system and offers a custom flat-file system. The app is named 'Hasty Paste' to reflect its speed and ease of use.",instructions:"Hasty Paste takes a minute or two on first launch.",changeLog:[{date:"2022-10-30",description:"first release"},{date:"2023-2-24",description:"Update to v1.9.0"},{date:"2025-07-22",description:"Version bumped to 2.1.0"},{date:"2025-12-25",description:"Version bumped to 2.3.0"},{date:"2026-04-29",description:"Version bumped to 2.3.1"}],links:[{label:"Documentation",url:"https://enchantedcode.co.uk/hasty-paste/"},{label:"Github",url:"https://github.com/enchant97/hasty-paste"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hastypaste"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/enchant97/hasty-paste:2.3.1"},redisServiceName:{type:"string",title:"Redis Service Name",default:"hastypaste-redis"}}},benefits:[{title:"Quick and Efficient",description:"Hasty Paste is designed for speed and efficiency. It allows you to quickly paste and save text, making it perfect for those who need to share information swiftly."},{title:"Accessible",description:"The app is publicly accessible with no authentication needed. This makes it easy for anyone to use and share text."},{title:"Secure",description:"Hasty Paste uses randomly generated IDs to reduce the risk of brute force attacks. It also offers the option to add expiring pastes for added security."}],features:[{title:"Fast Pasting",description:"Hasty Paste allows you to quickly paste and save text. This is ideal for sharing debug logs or any other text-based information."},{title:"Public Access",description:"The app is publicly accessible, meaning anyone can use it to share text. No authentication is needed."},{title:"Random ID Generation",description:"Hasty Paste generates random IDs for each paste, reducing the risk of brute force attacks."},{title:"Expiring Pastes",description:"The app allows you to add expiring pastes, providing an extra layer of security for your shared text."},{title:"Dark Theme and Syntax Highlighting",description:"Hasty Paste offers a dark theme for comfortable viewing in low-light environments. It also provides optional syntax highlighting to make code easier to read."},{title:"Minimal Resource Usage",description:"The app uses minimal resources, making it a lightweight solution for sharing text."}],tags:["Documents"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["CACHE__REDIS_URI=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"PUBLIC_URL=https://$(PRIMARY_DOMAIN)","AUTH_TOKEN_SECRET=".concat(y(32)),"SESSION_SECRET=".concat(y(32))].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:a}}),{services:t}}},{slug:"hasura",meta:{name:"Hasura",description:"Hasura is a powerful Data API Platform that automates the process of building, securing, optimizing, and deploying GraphQL and REST APIs. It eliminates the need for manual API creation, enabling developers to generate APIs effortlessly by connecting to existing databases. This results in rapid, scalable application development. Hasura is compatible with a variety of popular databases, including PostgreSQL, MySQL, and MongoDB, allowing you to build GraphQL APIs on top of your existing databases. It also provides comprehensive tools to secure APIs beyond authentication and authorization. With Hasura, you can accelerate the development of new applications or add new features to an existing application in days instead of weeks. It also helps in fast-tracking cloud migration, frontend and backend modernization, and application re-architecture projects by automating 80% of your API development work.",instructions:null,changeLog:[{date:"2023-03-16",description:"first release"},{date:"2025-02-25",description:"Version bumped to v2.8.4"},{date:"2025-07-22",description:"Version bumped to v2.36.10-2"},{date:"2025-12-25",description:"Version bumped to v2.48.9"},{date:"2026-04-29",description:"Version bumped to v2.48.16.ubi"}],links:[{label:"Website",url:"https://hasura.io/"},{label:"Documentation",url:"https://hasura.io/docs/latest/deployment/deployment-guides/kubernetes"},{label:"Github",url:"https://github.com/hasura/graphql-engine"}],contributors:[{name:"Amit Gadhia",url:"https://github.com/amitoo7"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","enableConsole","devMode","hasuraAdminSecret"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hasura"},appServiceImage:{type:"string",title:"App Service Image",default:"hasura/graphql-engine:v2.48.16.ubi"},databaseServiceName:{type:"string",title:"Database Service Name",default:"hasura-db"},hasuraAdminSecret:{type:"string",title:"Hasura Admin Secret Key",default:"mysecretkey"},enableConsole:{type:"string",title:"Console Enable",default:"true",oneOf:[{enum:["true"],title:"true"},{enum:["false"],title:"false"}]},devMode:{type:"string",title:"Dev mode Enable",default:"true",oneOf:[{enum:["true"],title:"true"},{enum:["false"],title:"false"}]}}},benefits:[{title:"Rapid API Development",description:"Hasura allows for faster API development, reducing cost, complexity, and time to market. It enables you to build new applications or add new features to an existing application in days instead of weeks."},{title:"Accelerated Modernization",description:"Hasura fast tracks cloud migration, frontend and backend modernization, and application re-architecture projects by automating 80% of your API development work."},{title:"Standardized Data Access",description:"Hasura replaces direct database access with a scalable, performant, and secure data API to create a unified and federated core data service."}],features:[{title:"Instant API",description:"Hasura provides an instant API from your data to a unified GraphQL or REST API in minutes."},{title:"Authorization",description:"Hasura allows you to define granular, role-based permissions down to the row and column level."},{title:"Performance",description:"Hasura ensures faster API response times and scalability that\u2019s automatically optimized."},{title:"Observability",description:"Hasura offers precision insights for optimal availability and performance of your APIs."},{title:"API Security",description:"Hasura provides comprehensive tools to secure APIs beyond authentication and authorization."},{title:"Federation",description:"Hasura allows you to connect, manage, and iterate siloed, disparate data on a supergraph."}],tags:["Developer Tools","Databases","API Development"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["HASURA_GRAPHQL_DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"HASURA_GRAPHQL_ENABLE_CONSOLE=".concat(e.enableConsole),"HASURA_GRAPHQL_DEV_MODE=".concat(e.devMode),"HASURA_GRAPHQL_ADMIN_SECRET=".concat(e.hasuraAdminSecret)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{image:"postgres:13",serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"headphones",meta:{name:"Headphones",description:"Headphones is an open-source application designed to manage and organize your music library with precision and efficiency. It provides a powerful interface for searching, downloading, and managing albums and tracks, ensuring your music collection is always up-to-date. Headphones integrates seamlessly with popular media servers and download clients, offering an automated solution for music enthusiasts. With its focus on flexibility and ease of use, Headphones empowers users to curate their music library effortlessly.",instructions:null,changeLog:[{date:"2024-12-27",description:"First Release"}],links:[{label:"Website",url:"https://github.com/rembo10/headphones"},{label:"Github",url:"https://github.com/rembo10/headphones"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"headphones"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/headphones:version-a78f38c1"}}},benefits:[{title:"Automated Music Management",description:"Headphones automates the process of finding, downloading, and organizing music, saving users valuable time."},{title:"Open-Source and Customizable",description:"As an open-source tool, Headphones is free to use and customize, making it accessible and adaptable to unique user needs."},{title:"Media Server Integration",description:"Integrates with popular media servers like Plex and Emby, enhancing the overall music streaming experience."},{title:"User-Friendly Interface",description:"Provides an intuitive interface for managing music libraries without requiring advanced technical knowledge."},{title:"Community-Driven Development",description:"Headphones benefits from a passionate community of developers and users who contribute to its growth and provide valuable support."}],features:[{title:"Music Library Management",description:"Organize and curate your music library with powerful tools for tagging and metadata management."},{title:"Automated Downloads",description:"Search for and download music automatically using your preferred download client."},{title:"Integration with Media Servers",description:"Seamlessly integrates with Plex, Emby, and other media servers for a complete music experience."},{title:"Metadata Fetching",description:"Fetches accurate metadata and album art to keep your library polished and organized."},{title:"Community Support",description:"An active community offers extensive documentation, tutorials, and forums for troubleshooting and enhancements."},{title:"Cross-Platform Compatibility",description:"Runs on various platforms, ensuring accessibility across different operating systems."}],tags:["Music Management","Open-Source","Automated Downloads","Media Servers","Plex Integration","Emby Integration","Metadata Management","Music Library","Music Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8181}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"downloads",mountPath:"/downloads"},{type:"volume",name:"music",mountPath:"/music"}]}}),{services:t}}},{slug:"healthchecks",meta:{name:"Healthchecks.io",description:"Healthchecks.io is an open-source application designed for monitoring cron jobs, periodic tasks, and application endpoints. It provides a lightweight and efficient way to ensure critical processes are running as expected. Healthchecks.io integrates with a wide range of notification methods, allowing users to be alerted when tasks fail to execute within their expected intervals. With its user-friendly interface and robust feature set, Healthchecks.io empowers users to maintain reliable task execution and system monitoring.",instructions:null,changeLog:[{date:"2024-12-27",description:"First Release"},{date:"2025-02-25",description:"Version bumped to 3.9.20250224"},{date:"2025-07-22",description:"Version bumped to 3.10.20250721"},{date:"2025-12-25",description:"Version bumped to 3.13.20251222"},{date:"2026-02-21",description:"Version bumped to 4.0.20260216"},{date:"2026-04-29",description:"Version bumped to 4.2.20260428"}],links:[{label:"Website",url:"https://healthchecks.io"},{label:"Github",url:"https://github.com/healthchecks/healthchecks"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","superUsername","superPassword","smtpHost","smtpPort","smtpHostUser","smtpHostPassword","enableTLS"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"healthchecks"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/healthchecks:4.2.20260428"},superUsername:{type:"string",title:"Superuser Username",default:"[email protected]"},superPassword:{type:"string",title:"Superuser Password",default:"password"},smtpHost:{type:"string",title:"SMTP Host",default:"smtp.example.com"},smtpPort:{type:"integer",title:"SMTP Port",default:587},smtpHostUser:{type:"string",title:"SMTP Host Username",default:"smtpUser"},smtpHostPassword:{type:"string",title:"SMTP Host Password",default:"smtpPassword"},enableTLS:{type:"boolean",title:"Enable TLS",default:!0}}},benefits:[{title:"Cron Job and Task Monitoring",description:"Healthchecks.io monitors cron jobs and periodic tasks, ensuring critical operations run smoothly."},{title:"Open-Source and Lightweight",description:"A free and open-source solution that is easy to deploy and customize for your specific monitoring needs."},{title:"Flexible Notifications",description:"Supports notifications via email, Slack, Telegram, and other integrations for timely alerts."},{title:"User-Friendly Interface",description:"Provides a clean and simple web dashboard for setting up and managing checks."},{title:"Self-Hosted Option",description:"Can be self-hosted for complete control over your monitoring data."}],features:[{title:"Task Monitoring",description:"Tracks periodic tasks, ensuring they execute within expected timeframes."},{title:"Notification Integrations",description:"Connects with popular notification channels for instant alerts when checks fail."},{title:"Grace Periods",description:"Configurable grace periods to account for minor delays in task execution."},{title:"Multi-Check Management",description:"Monitor multiple tasks with unique checks and organize them into projects."},{title:"Open-Source Community",description:"A thriving open-source community provides updates, support, and enhancements."},{title:"Easy Deployment",description:"Deployable with Docker and compatible with various hosting environments."}],tags:["Task Monitoring","Open-Source","Cron Jobs","System Monitoring","Notifications","Self-Hosted","Alerting","Health Monitoring"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a="False";return e.enableTLS&&(a="True"),t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC","SITE_ROOT=https://$(PRIMARY_DOMAIN)","SITE_NAME=","SUPERUSER_EMAIL=".concat(e.superUsername),"SUPERUSER_PASSWORD=".concat(e.superPassword),"ALLOWED_HOSTS=$(PRIMARY_DOMAIN)","APPRISE_ENABLED=False","CSRF_TRUSTED_ORIGINS=","DEBUG=True","DEFAULT_FROM_EMAIL=","EMAIL_HOST=".concat(e.smtpHost),"EMAIL_PORT=".concat(e.smtpPort),"EMAIL_HOST_USER=".concat(e.smtpHostUser),"EMAIL_HOST_PASSWORD=".concat(e.smtpHostPassword),"EMAIL_USE_TLS=".concat(a),"INTEGRATIONS_ALLOW_PRIVATE_IPS=","PING_EMAIL_DOMAIN=","RP_ID=","SECRET_KEY=","SITE_LOGO_URL="].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"hedgedoc",meta:{name:"HedgeDoc",description:"HedgeDoc, previously known as CodiMD, is an open-source, web-based, self-hosted, collaborative markdown editor. It allows you to collaborate on notes, graphs, and presentations in real-time. Simply share your note-link with your co-workers and they can join in the collaboration. The editor runs directly in your browser, allowing you to stay in control of your data by keeping it on your server. HedgeDoc also offers a presentation mode for building and presenting slides in markdown, and supports a variety of graphs, diagrams, and embedded content. It features an easy-to-use permission system for managing note permissions, and keeps track of changes to your notes through revisions, even allowing you to revert to older versions. Despite its extensive features, HedgeDoc has low system requirements and can run smoothly even on a Raspberry Pi.",instructions:null,changeLog:[{date:"2022-10-28",description:"first release"},{date:"2023-2-24",description:"Update to v1.9.7"},{date:"2023-07-11",description:"Update to v1.9.8 and return to main image"},{date:"2025-07-22",description:"Version bumped to v1.10.3"},{date:"2025-12-25",description:"Version bumped to v1.10.5"},{date:"2026-02-21",description:"Version bumped to v1.10.6"},{date:"2026-04-29",description:"Version bumped to v1.10.8"}],links:[{label:"Website",url:"https://hedgedoc.org/"},{label:"Documentation",url:"https://docs.hedgedoc.org/"},{label:"Github",url:"https://github.com/hedgedoc/hedgedoc"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hedgedoc"},appServiceImage:{type:"string",title:"App Service Image",default:"quay.io/hedgedoc/hedgedoc:1.10.8"},databaseServiceName:{type:"string",title:"Database Service Name",default:"hedgedoc-db"}}},benefits:[{title:"Real-time Collaboration",description:"HedgeDoc allows you to collaborate on notes, graphs, and presentations in real-time. Simply share your note-link with your co-workers and they\u2019re ready to go."},{title:"Data Control",description:"Being a self-hosted solution, HedgeDoc gives you complete control over your data. Your notes and documents stay on your server, ensuring privacy and security."},{title:"Web-based Solution",description:"HedgeDoc is a web-based application, meaning you don\u2019t need to install extra software. The editor runs smoothly in your browser, making it accessible from anywhere."}],features:[{title:"Presentation Mode",description:"HedgeDoc comes with a presentation mode that allows you to build and present slides in markdown. It's powered by reveal.js, providing a seamless presentation experience."},{title:"Graphs & Diagrams",description:"HedgeDoc supports many types of graphs, diagrams, and embedded content. This makes it a versatile tool for visualizing data and ideas."},{title:"Easy Permission System",description:"HedgeDoc features an easy-to-use permission system. You can manage the permissions of your notes with a simple dropdown selection."},{title:"Revisions",description:"HedgeDoc keeps track of changes to your notes and allows you to revert to any older version. This feature ensures you never lose important information."},{title:"Low System Requirements",description:"HedgeDoc doesn\u2019t require much resources. It runs smoothly even on low-powered devices like a Raspberry Pi."}],tags:["Documents","Collaboration","Note-taking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"uploads",mountPath:"/hedgedoc/public/uploads"}],env:["CMD_DOMAIN=$(PRIMARY_DOMAIN)","CMD_PROTOCOL_USESSL=true","CMD_DB_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)")].join("\n")}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"heimdall",meta:{name:"Heimdall",description:"Heimdall Application Dashboard is a versatile and visually pleasing dashboard for all your web applications. It provides a simple and elegant interface where you can add links to any web application or site you frequently use. The app is designed with simplicity in mind, avoiding the trap of over-complication that many projects fall into. With Heimdall, you can add a link to anything, whether it's intrinsically supported or not, by simply filling in the name, background color, and the link URL. The app also supports Foundation and Enhanced apps. Foundation apps are those supported by Heimdall, and Enhanced apps are like Foundation apps but with the added feature of displaying extra information automatically by entering API credentials. Heimdall is all about making your web application experience smooth, simple, and enjoyable.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2023-2-24",description:"Update to v2.5.5"},{date:"2025-02-25",description:"Version bumped to 2.6.3"},{date:"2025-07-22",description:"Version bumped to 2.7.1"},{date:"2025-12-25",description:"Version bumped to 2.7.6"}],links:[{label:"Website",url:"https://heimdall.site/"},{label:"Documentation",url:"https://heimdall.site/"},{label:"Github",url:"https://github.com/linuxserver/Heimdall"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"heimdall"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/heimdall:2.7.6"},serviceTimezone:{type:"string",title:"Timezone",default:"Europe/London"}}},benefits:[{title:"Simplicity",description:"Heimdall Application Dashboard is designed to avoid the trap of over-complication. It offers a straightforward interface that users can fine-tune to match their needs without getting overwhelmed by a multitude of options."},{title:"Elegance",description:"The design of Heimdall Application Dashboard is visually pleasing, encouraging users to explore and utilize its features. The goal is to make users want to use the app, not just need to use it."}],features:[{title:"Versatile Dashboard",description:"Heimdall Application Dashboard serves as a comprehensive dashboard for all your web applications. It's not limited to applications; you can add links to anything you like, making it a versatile tool for managing your digital resources."},{title:"Generic, Foundation, and Enhanced Apps",description:"Heimdall supports three types of items: Generic, Foundation, and Enhanced apps. Generic items allow you to add a link to anything, while Foundation and Enhanced apps offer more features, such as default icons and background colors, and the ability to display extra information through an app's API."}],tags:["Dashboard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=".concat(e.serviceTimezone)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"hemmelig",meta:{name:"Hemmelig",description:"Hemmelig is a secure, self-hosted secret sharing platform that allows you to share sensitive information like passwords, API keys, and confidential documents safely. Built with security in mind, Hemmelig provides end-to-end encryption, expiration dates, and access controls to ensure your secrets remain protected. Perfect for teams, developers, and organizations who need to share sensitive information securely without relying on external services.",instructions:"v7 uses BetterAuth and SQLite \u2014 no initial admin credentials are needed in the config. Register your first account via the web UI after deployment.",changeLog:[{date:"2026-05-19",description:"Updated to v7.4.8"},{date:"2025-07-16",description:"First Release"}],links:[{label:"Website",url:"https://hemmelig.app"},{label:"GitHub",url:"https://github.com/HemmeligOrg/Hemmelig.app"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hemmelig"},appServiceImage:{type:"string",title:"App Service Image",default:"hemmeligapp/hemmelig:v7.4.8"}}},benefits:[{title:"Secure Secret Sharing",description:"Share sensitive information like passwords, API keys, and confidential documents with end-to-end encryption and security controls."},{title:"Self-Hosted Security",description:"Maintain complete control over your sensitive data by hosting Hemmelig on your own infrastructure instead of relying on external services."},{title:"End-to-End Encryption",description:"Your secrets are encrypted at rest and in transit, ensuring maximum security for your sensitive information."},{title:"Access Controls",description:"Control who can access your shared secrets with configurable permissions, expiration dates, and access logs."},{title:"File and Text Support",description:"Share both text-based secrets and file uploads with configurable size limits and security settings."},{title:"Audit Trail",description:"Track access to your shared secrets with comprehensive logging and audit capabilities."}],features:[{title:"Secret Management",description:"Create, share, and manage secrets with secure encryption and access controls for sensitive information."},{title:"File Uploads",description:"Upload and share confidential files with configurable size limits and security settings."},{title:"Text Sharing",description:"Share text-based secrets like passwords, API keys, and configuration data with encryption."},{title:"Expiration Dates",description:"Set automatic expiration dates for your shared secrets to ensure they don't remain accessible indefinitely."},{title:"Access Controls",description:"Configure who can access your shared secrets with password protection and access permissions."},{title:"Admin Dashboard",description:"Manage your Hemmelig instance through a comprehensive admin dashboard with user and secret management."},{title:"Multi-Language Support",description:"Support for multiple languages with configurable default language settings."},{title:"Data Persistence",description:"Your secrets, files, and configuration are stored securely and persist across container restarts and updates."}],tags:["Security","Secret Sharing","Encryption","Self-Hosted","Password Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["NODE_ENV=production","DATABASE_URL=file:/app/database/hemmelig.db","BETTER_AUTH_SECRET=".concat(a),"BETTER_AUTH_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),mounts:[{type:"volume",name:"hemmelig-database",mountPath:"/app/database"},{type:"volume",name:"hemmelig-uploads",mountPath:"/app/uploads"}]}}),{services:t}}},{slug:"hermes-agent",meta:{name:"Hermes Agent",description:"Hermes Agent is an autonomous AI agent by Nous Research that runs persistently on your server, remembers what it learns, executes shell commands, manages files, browses the web, schedules cron tasks, and integrates with Telegram, Discord, Slack, and WhatsApp. It supports 200+ models through OpenRouter and direct integrations with Anthropic, OpenAI, Google, and DeepSeek. The built-in web dashboard provides a browser-based UI for managing configurations, API keys, MCP servers, and chat sessions. All sessions, memory, skills, and configuration are stored in a persistent volume so the agent grows more capable over time.",instructions:"The Hermes Agent web dashboard is accessible at your assigned domain. Log in with the dashboard username and password you configured during deployment. The OpenAI-compatible gateway API runs on port 8642 and the dashboard backend runs on port 9119 \u2014 both are published for direct access. To get a model working, set up a model provider (OpenRouter, Anthropic, OpenAI, Google, or DeepSeek) from the dashboard or via the CLI. For messaging platforms like Telegram, Discord, Slack and WhatsApp, and especially setting up strict allowlists so only you (or your team) can message the agent \u2014 SSH into the service console and run hermes setup (or hermes gateway setup specifically for the messaging gateways).",changeLog:[{date:"2026-06-17",description:"First Release"}],links:[{label:"Website",url:"https://hermes-agent.nousresearch.com/"},{label:"Documentation",url:"https://hermes-agent.nousresearch.com/docs"},{label:"Github",url:"https://github.com/NousResearch/hermes-agent"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dashboardUsername"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hermes-agent"},appServiceImage:{type:"string",title:"App Service Image",default:"nousresearch/hermes-agent:v2026.6.5"},dashboardUsername:{type:"string",title:"Dashboard Username",default:"admin"},dashboardPassword:{type:"string",title:"Dashboard Password",description:"Basic-auth password for the web dashboard. Auto-generated if left blank \u2014 find it in the service environment variables after deployment."}}},benefits:[{title:"Web Dashboard Included",description:"A built-in browser-based dashboard lets you manage API keys, MCP servers, messaging channels, memory, and chat sessions without touching the CLI. Protected by basic-auth and available at your domain immediately after deployment."},{title:"Persistent Memory & Skills",description:"The agent remembers your conversations, builds skills from experience, and retains context across sessions \u2014 all stored in a persistent volume on your own server."},{title:"Multi-Provider Model Support",description:"Works with 200+ models via OpenRouter plus direct integrations with Anthropic, OpenAI, Google, DeepSeek, and more. Switch models at any time with hermes model or through the dashboard."},{title:"Messaging Gateway",description:"Connect the agent to Telegram, Discord, Slack, or WhatsApp so it responds to messages, runs scheduled tasks, and delivers results to your phone \u2014 no open ports required."}],features:[{title:"Browser-Based Admin Dashboard",description:"Configure settings, manage credentials, browse the MCP catalog, and chat with the agent directly from a React-based web UI served at port 6432."},{title:"OpenAI-Compatible API Server",description:"Port 8642 exposes an OpenAI-compatible gateway so Claude Code, Open WebUI, Cursor, or any OpenAI SDK client can connect to Hermes as their LLM backend."},{title:"Autonomous Tool Use",description:"Built-in tools for shell execution, file operations, web search, and code running \u2014 the agent decides which tools to use and chains them to complete tasks."},{title:"Cron Scheduling",description:"Schedule recurring tasks with natural-language prompts and have results delivered to your messaging platform of choice."},{title:"MCP Server Support",description:"Connect any MCP-compatible server for additional tool integrations, or expose Hermes itself as an MCP server to Claude Code, Cursor, or other editors."}],tags:["AI","Automation","Self-Hosted","Developer Tools","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.dashboardPassword||v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},deploy:{command:"hermes gateway run"},env:["HERMES_DASHBOARD=1","HERMES_DASHBOARD_BASIC_AUTH_USERNAME=".concat(e.dashboardUsername),"HERMES_DASHBOARD_BASIC_AUTH_PASSWORD=".concat(a),"GATEWAY_ALLOW_ALL_USERS=false"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:6432}],ports:[{protocol:"tcp",published:9119,target:9119},{protocol:"tcp",published:8642,target:8642}],mounts:[{type:"volume",name:"data",mountPath:"/opt/data"}]}}),{services:t}}},{slug:"heyform",meta:{name:"HeyForm",description:"HeyForm is an open-source form builder platform designed to create, manage, and share forms with ease. It simplifies form creation workflows for businesses, developers, and individuals by offering intuitive UI components and backend management. HeyForm provides robust support for form encryption, session management, and integrations with third-party services like MongoDB and Redis. Its flexible API allows developers to customize and extend functionalities while ensuring data security. HeyForm's clean design and modular architecture make it scalable and adaptable for growing business needs, enabling effective form creation, storage, and analysis.",instructions:null,changeLog:[{date:"2024-12-12",description:"First release"},{date:"2025-07-22",description:"Version bumped to v0.1.0"}],links:[{label:"Website",url:"https://heyform.net/"},{label:"Documentation",url:"https://docs.heyform.net"},{label:"GitHub",url:"https://github.com/heyform/heyform"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceImage","redisServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"heyform"},appServiceImage:{type:"string",title:"HeyForm Service Image",default:"heyform/community-edition:v0.1.0"},databaseServiceImage:{type:"string",title:"Database Service Image",default:"percona/percona-server-mongodb:6.0"},redisServiceImage:{type:"string",title:"Redis Service Image",default:"eqalpha/keydb:x86_64_v6.3.4"},googleRecaptchaKey:{type:"string",title:"Google Recaptcha Key"},googleRecaptchaSecret:{type:"string",title:"Google Recaptcha Secret"}}},benefits:[{title:"Simplified Form Creation",description:"HeyForm makes it easy to create and manage forms using a user-friendly interface and backend support."},{title:"Data Security",description:"HeyForm supports robust form encryption, ensuring your collected data remains secure."},{title:"Flexible API-Driven Architecture",description:"HeyForm\u2019s API-first design enables developers to extend and customize the platform as needed."},{title:"Seamless Integrations",description:"Integrate with MongoDB for storage and Redis for session management and performance enhancements."},{title:"Scalable Platform",description:"HeyForm\u2019s modular architecture makes it highly scalable, adapting to the growing needs of any business."}],features:[{title:"Drag-and-Drop Form Builder",description:"Use an intuitive drag-and-drop interface to create forms quickly without coding."},{title:"Form Encryption",description:"Ensure form data is encrypted to maintain privacy and compliance."},{title:"MongoDB Backend",description:"Leverage MongoDB to store and manage form submissions efficiently."},{title:"Redis Integration",description:"Use Redis for caching and session management to improve form response performance."},{title:"Customizable Templates",description:"Choose from pre-built templates or create custom forms tailored to your needs."},{title:"API-Driven Design",description:"Automate and programmatically manage forms, submissions, and configurations using HeyForm's RESTful API."},{title:"Multi-Tenancy Support",description:"Manage multiple projects or teams under a single instance of HeyForm."},{title:"Notifications and Integrations",description:"Configure email notifications and integrate with third-party tools to automate workflows."}],tags:["Form Builder","Form Encryption","MongoDB Integration","Redis Integration","API-Driven","Scalable Architecture","Multi-Tenancy","Notifications","Data Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_HOMEPAGE_URL=https://$(PRIMARY_DOMAIN)","SESSION_KEY=".concat(a),"FORM_ENCRYPTION_KEY=".concat(i),"MONGO_URI=mongodb://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:27017/heyform"),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","GOOGLE_RECAPTCHA_KEY=".concat(e.googleRecaptchaKey),"GOOGLE_RECAPTCHA_SECRET=".concat(e.googleRecaptchaSecret)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-db"),source:{type:"image",image:e.databaseServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/data/db"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-redis"),source:{type:"image",image:e.redisServiceImage}}}),{services:t}}},{slug:"hiccup",meta:{name:"Hiccup",description:"Hiccup is a static start page application designed to help you access your most important links quickly and efficiently. It allows you to categorize your links, add them via drag and drop, and even search for them using various search providers. The app also supports multiple profiles, enabling you to switch between different sets of links based on your needs. Hiccup also features a built-in config manager for easy management of your link configurations. The app is designed to be used anywhere you can serve a static webpage from, such as your home server or a new browser tab. It also supports full keyboard navigation for quick and easy access to your links.",instructions:null,changeLog:[{date:"2023-3-21",description:"first release"},{date:"2024-10-11",description:"Version Changed to v0.5.0"}],links:[{label:"Github",url:"https://github.com/ashwin-pc/hiccup"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hiccup"},appServiceImage:{type:"string",title:"App Service Image",default:"bleckbeard/hiccup:v0.5.0"}}},benefits:[{title:"Quick Access",description:"Hiccup provides a static start page for your most important links, allowing you to access them quickly and efficiently."},{title:"Customizable",description:"You can customize the start page to suit your needs, adding, editing, and deleting links as necessary."},{title:"Search Functionality",description:"The app supports various search providers, making it easy to find the information you need."},{title:"Multiple Profiles",description:"Hiccup supports multiple profiles, allowing you to switch between different sets of links depending on your needs."},{title:"Local Management",description:"All edits are made locally, ensuring your data remains private and secure."}],features:[{title:"Static Webpage",description:"Hiccup is a static webpage that can be served from anywhere, making it highly versatile and easy to use."},{title:"Featured Links",description:"You can add your most important links to the featured section for quick and easy access."},{title:"Categories",description:"Links can be organized into categories, making it easy to find what you're looking for."},{title:"Drag and Drop",description:"You can add links and images to the start page by simply dragging and dropping them onto the page."},{title:"Search",description:"Hiccup supports various search providers and custom ones too, allowing you to quickly find the information you need."},{title:"Keyboard Shortcuts",description:"The app supports a range of keyboard shortcuts, making it easy to navigate and use."},{title:"Read Only Mode",description:"Hiccup has a read-only mode, allowing you to view your links without the risk of accidentally editing them."},{title:"Full Keyboard Navigation",description:"The app supports full keyboard navigation, making it accessible and easy to use."}],tags:["Productivity","Bookmarks"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"base",mountPath:"/usr/share/nginx/html"}]}}),{services:t}}},{slug:"homarr",meta:{name:"Homarr",description:"Homarr is a powerful dashboard designed to simplify the management of your server. It provides a sleek, modern interface that brings all your apps and services together in one place, allowing you to access and control everything with ease. Homarr seamlessly integrates with the apps you've added, offering valuable insights and complete control. You can add your self-hosted applications or favorite websites to your dashboard and organize them as you like. Homarr supports integration with many popular applications to enhance your user experience. It is customizable, accessible, and supports 23 languages. With Homarr, you can control and monitor your network directly, use integrations to display data and control apps, and even create your own dashboard using a comprehensible and easy-to-use visual editor. Homarr is open-source and allows commercial usage. It features a quick search function to easily navigate through your apps and supported integrations.",instructions:"On first launch, Homarr will display an onboarding wizard. Create your admin account to get started.",changeLog:[{date:"2025-10-07",description:"First Release"},{date:"2024-10-11",description:"Version jumped to 0.15.4"},{date:"2025-02-25",description:"Version bumped to 0.15.10"},{date:"2025-12-25",description:"Version bumped to 0.16.0"},{date:"2026-02-24",description:"Version bumped to 1.53.2"},{date:"2026-05-08",description:"Version bumped to 1.59.3"}],links:[{label:"Website",url:"https://homarr.dev"},{label:"GitHub",url:"https://github.com/homarr-labs/homarr"},{label:"Documentation",url:"https://homarr.dev/docs/getting-started/"},{label:"Easypanel Documentation",url:"https://homarr.dev/docs/getting-started/installation/easy-panel"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","t
1imezone"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"homarr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/homarr-labs/homarr:v1.59.3"},timezone:{type:"string",title:"Timezone",description:"Timezone for the application",default:"Australia/Melbourne"}}},benefits:[{title:"Centralized Dashboard",description:"Create a single, unified dashboard that serves as the starting point for all your self-hosted services and applications, eliminating the need to remember multiple URLs and bookmarks."},{title:"Customizable Interface",description:"Highly customizable interface with drag-and-drop widgets, customizable themes, and flexible layout options to match your personal preferences and workflow."},{title:"Service Monitoring",description:"Built-in service monitoring capabilities with status indicators and health checks to quickly identify which services are running and accessible."},{title:"Responsive Design",description:"Fully responsive design that works seamlessly across desktop, tablet, and mobile devices, providing consistent access to your services from anywhere."}],features:[{title:"Widget System",description:"Comprehensive widget system with support for various widgets including weather, system information, service status, and custom integrations for enhanced functionality."},{title:"Bookmark Management",description:"Organize and categorize your bookmarks with support for custom icons, descriptions, and grouping to create a personalized navigation experience."},{title:"Theme Customization",description:"Multiple built-in themes with customizable colors, fonts, and layouts to create a personalized dashboard that matches your aesthetic preferences."},{title:"Service Integration",description:"Easy integration with popular self-hosted services including Plex, Sonarr, Radarr, and many others with automatic service discovery and status monitoring."},{title:"Search Functionality",description:"Built-in search functionality to quickly find and access your bookmarked services and applications across your entire dashboard."},{title:"Data Persistence",description:"All dashboard configurations, bookmarks, and customizations persist across container restarts and updates with encrypted local storage."},{title:"Multi-User Support",description:"Support for multiple user accounts with individual dashboard configurations and preferences for team or family use."},{title:"API Integration",description:"RESTful API support for programmatic access and integration with other applications and automation tools."}],tags:["Dashboard","Homepage","Self-hosted","Widgets","Bookmarks","Monitoring","Customizable","Web App"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=(0,Me.randomBytes)(32).toString("hex");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7574}],mounts:[{type:"volume",name:"app-data",mountPath:"/appdata"}],env:["SECRET_ENCRYPTION_KEY=".concat(a),"TZ=".concat(e.timezone),"PORT=7574"].join("\n")}}),{services:t}}},{slug:"homeassistant",meta:{name:"Home Assistant",description:"Home Assistant is an open-source home automation app that prioritizes local control and privacy. It allows you to manage and automate a wide range of devices and services in your home, from electricity grids and solar panels to voice-controlled devices. With its advanced configuration options, you can customize your home automation to suit your needs. It also offers features like multi-factor authentication for added security. Home Assistant is perfect to run on a Raspberry Pi or a local server, providing a comprehensive solution for your home automation needs.",instructions:null,changeLog:[{date:"2022-11-21",description:"first release"},{date:"2024-10-11",description:"Version Updated to 2024.10.1"},{date:"2025-02-25",description:"Version bumped to 2025.2.5"},{date:"2025-07-22",description:"Version bumped to 2025.7.3"},{date:"2025-12-25",description:"Version bumped to 2025.12.4"},{date:"2026-02-21",description:"Version bumped to 2026.2.3"},{date:"2026-04-29",description:"Version bumped to 2026.4.4"}],links:[{label:"Documentation",url:"https://www.home-assistant.io/docs/"},{label:"Github",url:"https://github.com/home-assistant"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"homeassistant"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/homeassistant:2026.4.4"}}},benefits:[{title:"Home Automation",description:"Home Assistant is an open-source home automation platform that focuses on privacy and local control. It allows you to control all your devices from a single, unified interface."},{title:"Local Control and Privacy",description:"With Home Assistant, your data is kept secure because it remains in your network and is not sent to any cloud-based servers. This ensures that your privacy is always protected."},{title:"Versatility",description:"Home Assistant can be run on various systems including Raspberry Pi and local servers, making it a versatile choice for different user preferences."}],features:[{title:"Wide Range of Integrations",description:"Home Assistant supports a wide range of devices and services, offering over 1000 integrations for you to choose from."},{title:"Customizable Dashboards",description:"Home Assistant provides customizable dashboards that allow you to control and monitor your devices in a way that suits your needs."},{title:"Voice Control",description:"Home Assistant supports voice control, enabling you to manage your devices through voice commands for a hands-free experience."},{title:"Automation",description:"With Home Assistant, you can automate your devices to perform certain tasks at specific times or under certain conditions. This includes turning lights on and off, adjusting the thermostat, and more."}],tags:["Home Automation","Open Source","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/config"},{type:"file",content:["default_config:","","frontend:","  themes: !include_dir_merge_named themes","","http:","  use_x_forwarded_for: true","  trusted_proxies:","    - 10.0.0.0/8",""].join("\n"),mountPath:"/config/configuration.yaml"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8123}]}}),{services:t}}},{slug:"homebox",meta:{name:"Homebox",description:"Homebox is an inventory management system that helps you keep track of your belongings, their location, and other details to simplify home organization.",instructions:null,changeLog:[{date:"2025-04-14",description:"First Release"},{date:"2026-04-29",description:"Version bumped to 0.25.0"}],links:[{label:"Website",url:"https://homebox.software/en/"},{label:"GitHub",url:"https://github.com/sysadminsmedia/homebox"},{label:"Documentation",url:"https://homebox.software/en/quick-start/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"homebox"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/sysadminsmedia/homebox:0.25.0"}}},benefits:[{title:"Home Inventory Management",description:"Keep track of all your belongings in one place"},{title:"Location Tracking",description:"Track where items are stored within your home"},{title:"Search & Filter",description:"Quickly find items when you need them"},{title:"Self-Hosted",description:"Keep your inventory data private on your own server"},{title:"Open Source",description:"Free and open-source inventory management system"}],features:[{title:"Item Catalog",description:"Catalog all your belongings with details and photos"},{title:"Location Management",description:"Organize items by location and sub-locations"},{title:"Labels & Tags",description:"Categorize items with custom labels and tags"},{title:"Item History",description:"Track maintenance, warranty, and purchase information"},{title:"Mobile Friendly",description:"Access your inventory from any device"}],tags:["Inventory","Organization","Home Management","Self-Hosted","Personal"],logo:"logo.png",screenshots:["screenshot.png","screenshot1.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7745}],env:["HBOX_LOG_LEVEL=info","HBOX_LOG_FORMAT=text","HBOX_WEB_MAX_UPLOAD_SIZE=10"].join("\n"),mounts:[{type:"volume",name:"homebox-data",mountPath:"/data/"}]}}),{services:t}}},{slug:"homepage",meta:{name:"Homepage",description:"Homepage is a self-hosted dashboard designed to provide a centralized hub for accessing and managing your server and web services. With an intuitive and customizable interface, Homepage makes it easy to organize links, monitor system health, and view important metrics in one place. It supports a wide range of integrations, including Docker, Kubernetes, and popular web services, making it an ideal tool for individuals and teams looking to streamline access and management of their infrastructure. Being open-source, Homepage offers transparency, flexibility, and control to users.",instructions:"Configure settings.yaml for customization.",changeLog:[{date:"2024-12-22",description:"First Release"},{date:"2025-02-25",description:"Version bumped to v0.10.9"},{date:"2025-07-22",description:"Version bumped to v1.4"},{date:"2025-12-25",description:"Version bumped to v1.8.0"},{date:"2026-02-21",description:"Version bumped to v1.10.1"},{date:"2026-05-08",description:"Version bumped to v1.12.3"}],links:[{label:"Website",url:"https://gethomepage.dev/"},{label:"Documentation",url:"https://gethomepage.dev/widgets/authoring/"},{label:"GitHub",url:"https://github.com/gethomepage/homepage"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"homepage"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/gethomepage/homepage:v1.12.3"}}},benefits:[{title:"Centralized Dashboard",description:"Homepage provides a centralized location to access links, services, and metrics, improving efficiency and organization."},{title:"Highly Customizable",description:"With a wide range of configuration options, Homepage allows users to tailor the dashboard to their specific needs."},{title:"Integrations with Popular Tools",description:"Homepage integrates with Docker, Kubernetes, and other tools, making it easy to manage containers and infrastructure."},{title:"Open Source and Transparent",description:"Homepage is fully open source, offering flexibility, security, and control over your data and setup."},{title:"Cross-Platform Compatibility",description:"Homepage runs seamlessly on any system that supports Docker, making it highly portable and versatile."}],features:[{title:"Link Management",description:"Organize and display quick access links to frequently used services and applications."},{title:"System Metrics",description:"View critical system information such as CPU, memory usage, and disk status directly on your dashboard."},{title:"User-Friendly Interface",description:"Enjoy an intuitive and visually appealing interface for managing services and links."},{title:"API and Remote Configuration",description:"Configure and manage Homepage remotely via its robust API support."},{title:"Lightweight and Easy to Deploy",description:"Deploy Homepage effortlessly with minimal resources, ensuring a smooth setup experience."}],tags:["Dashboard","Self-Hosted","Open Source","Customizable","Infrastructure Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"config",mountPath:"/app/config"}]}}),{services:t}}},{slug:"homer",meta:{name:"Homer",description:"Homer is a straightforward, static homepage for your server, designed to keep all your services easily accessible. It operates based on a simple yaml configuration file. This app serves as a full static HTML/JS dashboard, providing a centralized platform where you can manage and access all your services. It features a search function, grouping, theme customization, and offline health checks. It also supports keyboard shortcuts for quick navigation. Homer is designed to be served by an HTTP server and is perfect for those who want to keep their services organized and within reach.",instructions:'The config files can be found under "/etc/easypanel/projects/PROJECT_NAME/homer/volumes/assets"',changeLog:[{date:"2023-03-17",description:"Template created (v23.02.2)"},{date:"2025-02-25",description:"Version bumped to v25.02.1"},{date:"2025-07-22",description:"Version bumped to v25.05.2"},{date:"2025-12-25",description:"Version bumped to v25.11.1"},{date:"2026-05-01",description:"Version bumped to v26.4.2"}],links:[{label:"Github",url:"https://github.com/bastienwirtz/homer"},{label:"Demo",url:"https://homer-demo.netlify.app"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"homer"},appServiceImage:{type:"string",title:"App Service Image",default:"b4bz/homer:v26.4.2"}}},benefits:[{title:"Convenience",description:"Homer is a static homepage for your server, providing a convenient way to keep all your services at your fingertips. It's based on a simple yaml configuration file, making it easy to set up and use."},{title:"Customization",description:"Homer allows for theme customization, enabling you to personalize your homepage to suit your preferences. It also supports grouping of services for better organization."},{title:"Accessibility",description:"With Homer, you can easily search for your services and access them with keyboard shortcuts. It also offers offline health checks, ensuring you're always up-to-date with the status of your services."}],features:[{title:"yaml file configuration",description:"Homer uses a simple yaml configuration file, making it easy to set up and manage your homepage."},{title:"Search and Grouping",description:"Homer supports search and grouping of services, making it easy to find and organize your services."},{title:"Theme customization",description:"Homer allows for theme customization, enabling you to personalize your homepage to suit your preferences."},{title:"Offline health check",description:"Homer offers offline health checks, ensuring you're always up-to-date with the status of your services."},{title:"Keyboard shortcuts",description:"Homer supports keyboard shortcuts for quick and easy access to your services."}],tags:["Dashboard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["INIT_ASSETS=1"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"assets",mountPath:"/www/assets"}]}}),{services:t}}},{slug:"honey",meta:{name:"Honey",description:"Honey is a lightweight web application developed by dani3l0. It provides a clean and intuitive interface for accessing and managing your data. The application is containerized for easy deployment and configuration, making it ideal for self-hosted environments. Honey uses a file-based configuration system, allowing for simple customization and persistence across container restarts. With its efficie
1nt design and minimal resource requirements, Honey is a great addition to any self-hosted service collection.",instructions:null,changeLog:[{date:"2025-04-17",description:"first release"}],links:[{label:"Demo",url:"https://honeyy.vercel.app"},{label:"GitHub",url:"https://github.com/dani3l0/honey"},{label:"Container",url:"https://github.com/dani3l0/honey/pkgs/container/honey"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"honey"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/dani3l0/honey:v2.4.1"}}},benefits:[{title:"Easy Deployment",description:"Honey is packaged as a Docker container for simple deployment in any environment that supports Docker, making it easy to set up and run."},{title:"Persistent Configuration",description:"Store your configuration files externally to maintain settings between container restarts and updates, ensuring a consistent experience."},{title:"Resource Efficient",description:"With a lightweight design and minimal resource requirements, Honey operates efficiently even on modest hardware setups."}],features:[{title:"Web Interface",description:"Access Honey through a clean, modern web interface that works across different devices and screen sizes."},{title:"File-based Configuration",description:"Configure Honey using simple configuration files, giving you complete control over your instance's behavior and settings."},{title:"Containerized Application",description:"Run Honey in an isolated container environment for improved security and simplified dependency management."},{title:"Fast Startup",description:"Honey's lightweight nature allows for quick startup times, getting you up and running with minimal delay."},{title:"Easy Updates",description:"Update to the latest version simply by pulling the newest container image and restarting the service while maintaining your configuration."}],tags:["Web Application","Self-hosted","Docker","Lightweight"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4173}],mounts:[{type:"volume",name:"config",mountPath:"/app/dist/config"}]}}),{services:t}}},{slug:"hortusfox",meta:{name:"HortusFox",description:"HortusFox is a free, open-source, self-hosted, collaborative plant management system designed for individuals and groups to easily manage their plants, tasks, calendar, inventory, and more, all within a user-friendly web application.",instructions:null,changeLog:[{date:"2025-03-14",description:"Template Release (v4.4)"},{date:"2025-07-22",description:"Version bumped to v5.1"},{date:"2025-12-25",description:"Version bumped to v5.7"}],links:[{label:"Documentation",url:"https://hortusfox.github.io/"},{label:"Github",url:"https://github.com/danielbrendel/hortusfox-web?tab=readme-ov-file#docker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminEmail","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hortusfox"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/danielbrendel/hortusfox-web:v5.7"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]"},adminPassword:{type:"string",title:"Admin Password",default:"password"}}},benefits:[{title:"Collaborative Plant Management",description:"Easily manage and share plant care responsibilities among individuals and groups."},{title:"Comprehensive Task & Calendar Integration",description:"Organize tasks and schedule plant care with integrated calendar features."},{title:"Self-Hosted & Open Source",description:"Enjoy full control over your data with a free, open-source solution."}],features:[{title:"Plant Inventory Management",description:"Track and manage your plant collection with detailed records."},{title:"Task Scheduling",description:"Create, assign, and track tasks related to plant care and maintenance."},{title:"Calendar Integration",description:"Plan and view plant care schedules seamlessly with an integrated calendar."},{title:"Collaborative Tools",description:"Share responsibilities and collaborate with group members effectively."}],tags:["Plant Management","Collaboration","Self-Hosted","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_ADMIN_EMAIL=".concat(e.adminEmail),"APP_ADMIN_PASSWORD=".concat(e.adminPassword),"APP_TIMEZONE=UTC","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=3306","DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mariadb","DB_PASSWORD=".concat(a),"DB_CHARSET=utf8mb4"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"app_images",mountPath:"/var/www/html/public/img"},{type:"volume",name:"app_logs",mountPath:"/var/www/html/app/logs"},{type:"volume",name:"app_backup",mountPath:"/var/www/html/public/backup"},{type:"volume",name:"app_themes",mountPath:"/var/www/html/public/themes"},{type:"volume",name:"app_migrate",mountPath:"/var/www/html/app/migrations"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"httplaceholder",meta:{name:"HTTP Placeholder",description:"HTTP Placeholder is a powerful API mocking tool that allows you to create mock HTTP endpoints for testing and development purposes. It provides a simple way to simulate API responses and test your applications without relying on real backend services.",instructions:"After installation, access the web interface through the provided domain to start creating and managing your mock endpoints.",changeLog:[{date:"2025-04-16",description:"First Release"}],links:[{label:"Github",url:"https://github.com/dukeofharen/httplaceholder"},{label:"Documentation",url:"https://github.com/dukeofharen/httplaceholder/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"httplaceholder"},appServiceImage:{type:"string",title:"App Service Image",default:"dukeofharen/httplaceholder:2024.12.27.10"}}},benefits:[{title:"API Mocking",description:"Create and manage mock HTTP endpoints for testing and development."},{title:"Development Testing",description:"Test your applications without relying on real backend services."},{title:"Response Customization",description:"Customize mock responses with different status codes, headers, and body content."},{title:"Database Integration",description:"Store and manage mock data in a PostgreSQL database."},{title:"Easy Setup",description:"Quick and simple setup process for creating mock endpoints."}],features:[{title:"Mock Endpoints",description:"Create and manage custom mock HTTP endpoints."},{title:"Response Customization",description:"Configure custom responses with different status codes and content."},{title:"Database Storage",description:"Store mock data in a PostgreSQL database for persistence."},{title:"REST API",description:"Manage mock endpoints through a RESTful API."},{title:"Web Interface",description:"User-friendly web interface for managing mock endpoints."}],tags:["API","Testing","Development","Mocking","HTTP"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],env:["postgresConnectionString=Host=$(PROJECT_NAME)_".concat(e.appServiceName,"-db,5432;Username=postgres;Password=").concat(a,";Database=$(PROJECT_NAME);SearchPath=public"),"verbose=true"].join("\n")}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"huginn",meta:{name:"Huginn",description:"Huginn is a system for building agents that perform automated tasks for you online. They can read the web, watch for events, and take actions on your behalf.",instructions:"Open Huginn from your domain, complete the initial account setup, then create or import agents and configure credentials for the external services they use.",changeLog:[{date:"2024-04-08",description:"First Release"},{date:"2026-05-01",description:"Version bumped to 5dbeee394a982bd29ba63c06013cd9cb58191cc6"}],links:[{label:"Website",url:"https://huginn.io/"},{label:"Documentation",url:"https://github.com/huginn/huginn/wiki"},{label:"GitHub",url:"https://github.com/huginn/huginn"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"huginn"},appServiceImage:{type:"string",title:"App Service Image",default:"huginn/huginn:5dbeee394a982bd29ba63c06013cd9cb58191cc6"}}},benefits:[{title:"Automation",description:"Automate repetitive tasks and workflows"},{title:"Customizable",description:"Create custom agents for specific needs"},{title:"Data Integration",description:"Connect and process data from multiple sources"},{title:"Self-Hosted",description:"Keep your data private and secure"}],features:[{title:"Agent Creation",description:"Build custom agents with a visual interface"},{title:"Web Scraping",description:"Extract and process data from websites"},{title:"API Integration",description:"Connect with various APIs and services"},{title:"Event Monitoring",description:"Watch for and respond to events"},{title:"Data Processing",description:"Transform and analyze data"}],tags:["Automation","Web Scraping","API","Data Processing","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"mysql_data",mountPath:"/var/lib/mysql"}]}}),{services:t}}},{slug:"huly",meta:{name:"Huly",description:"Huly is an all-in-one project management platform and self-hosted alternative to Linear, Jira, Slack, Notion, and Motion. It combines issue tracking, CRM, HRM, ATS (Applicant Tracking), chat, documents, and team collaboration in a single platform. Built on a robust framework for business applications, Huly offers real-time document collaboration with Y.js CRDT, full-text search via Elasticsearch, S3-compatible file storage with MinIO, and event-driven architecture with Redpanda (Kafka). Requires 2+ vCPUs and 8+ GB RAM minimum.",instructions:'After deployment, access Huly via the main service domain. On first visit, click "Sign up" to create your account, then create a workspace. Email notifications (password recovery, etc.) are disabled by default\u2014add the mail service and SMTP config for production. Allow ~60 seconds for all services to initialize on first startup.',changeLog:[{date:"2026-03-02",description:"v0.7.382 - Latest release"},{date:"2026-02-09",description:"Optional Love service (audio/video calls) with LiveKit"}],links:[{label:"Website",url:"https://huly.io"},{label:"GitHub",url:"https://github.com/hcengineering/platform"},{label:"Documentation",url:"https://docs.huly.io"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","cockroachImage","minioImage"],if:{properties:{enableLove:{const:!0}},required:["enableLove"]},then:{required:["livekitHost","livekitApiKey","livekitApiSecret"]}
1,properties:{appServiceName:{type:"string",title:"App Service Name",default:"huly"},appServiceImage:{type:"string",title:"Huly Version",default:"v0.7.382",description:"Use production tags (v*) from GitHub Releases"},cockroachImage:{type:"string",title:"CockroachDB Image",default:"cockroachdb/cockroach:v24.2.10"},minioImage:{type:"string",title:"MinIO Image",default:"minio/minio:RELEASE.2025-09-07T16-13-09Z"},enableLove:{type:"boolean",title:"Enable Love (Audio & Video Calls)",default:!1,description:"Requires LiveKit Cloud or self-hosted LiveKit"},livekitHost:{type:"string",title:"LiveKit Host",description:"e.g. wss://your-project.livekit.cloud (required when Love enabled)"},livekitApiKey:{type:"string",title:"LiveKit API Key",description:"From LiveKit Cloud or your LiveKit server (required when Love enabled)"},livekitApiSecret:{type:"string",title:"LiveKit API Secret",description:"From LiveKit Cloud or your LiveKit server (required when Love enabled)"}}},benefits:[{title:"All-in-One Platform",description:"Combined issue tracking, CRM, HRM, ATS, chat, documents, and team collaboration\u2014replacing Linear, Jira, Slack, Notion, and Motion."},{title:"Real-Time Collaboration",description:"Y.js CRDT-based document editing with presence awareness. Multiple users edit simultaneously with automatic conflict resolution."},{title:"Self-Hosted & Open Source",description:"Full control over your data. EPL-2.0 licensed. Deploy on your own infrastructure with no vendor lock-in."},{title:"Enterprise-Ready Architecture",description:"CockroachDB for distributed SQL, Redpanda for event streaming, Elasticsearch for full-text search, MinIO for object storage."}],features:[{title:"Issue Tracking",description:"Kanban boards, sprints, custom fields, and workflows for project management. Jira and Linear alternative."},{title:"CRM & Contacts",description:"Customer relationship management with contacts, deals, and pipelines."},{title:"HRM & ATS",description:"Human resources and applicant tracking for recruitment workflows."},{title:"Chat & Documents",description:"Real-time chat and collaborative document editing with rich formatting."},{title:"Full-Text Search",description:"Instant search across projects, issues, documents, and chat via Elasticsearch."},{title:"API & Integrations",description:"Typed API client for programmatic access. Built-in integrations for Gmail, Calendar, Telegram."}],tags:["Project Management","CRM","Self-Hosted","Collaboration","Issue Tracking"],logo:"logo.png",screenshots:["screenshot.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=y(64),i=v(),o=e.appServiceImage||"v0.7.382",n="$(PROJECT_NAME)_".concat(e.appServiceName),r="".concat(n,"-front"),s="".concat(n,"-account"),c="".concat(n,"-transactor"),l="".concat(n,"-collaborator"),p="".concat(n,"-rekoni"),d="".concat(n,"-stats"),u="".concat(n,"-minio"),m="".concat(n,"-love"),g="".concat(n,"-cockroach"),h="".concat(n,"-elastic"),f="".concat(n,"-fulltext"),b="".concat(n,"-redpanda"),S="https://$(PROJECT_NAME)-".concat(e.appServiceName,".$(EASYPANEL_HOST)"),w=e.enableLove&&e.livekitHost&&e.livekitApiKey&&e.livekitApiSecret;t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:"nginx:1.21.3-alpine"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"file",content:xe(r,s,c,l,p,d,u,w?m:void 0),mountPath:"/etc/nginx/conf.d/default.conf"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-cockroach"),source:{type:"image",image:"cockroachdb/cockroach:v24.2.10"},deploy:{command:"/cockroach/cockroach start-single-node --accept-sql-without-tls --insecure"},env:["COCKROACH_DATABASE=defaultdb"].join("\n"),mounts:[{type:"volume",name:"cr-data",mountPath:"/cockroach/cockroach-data"},{type:"volume",name:"cr-certs",mountPath:"/cockroach/certs"}]}});var A="postgres://root@".concat(g,":26257/defaultdb?sslmode=disable");t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-redpanda"),source:{type:"image",image:"docker.redpanda.com/redpandadata/redpanda:v25.3.9"},deploy:{command:["rpk","redpanda","start","--kafka-addr","internal://0.0.0.0:9092,external://0.0.0.0:19092","--advertise-kafka-addr","internal://".concat(b,":9092,external://localhost:19092"),"--pandaproxy-addr","internal://0.0.0.0:8082,external://0.0.0.0:18082","--advertise-pandaproxy-addr","internal://".concat(b,":8082,external://localhost:18082"),"--schema-registry-addr","internal://0.0.0.0:8081,external://0.0.0.0:18081","--rpc-addr","0.0.0.0:33145","--advertise-rpc-addr","".concat(b,":33145"),"
1--mode","dev-container","--smp","1"].join(" ")},env:["REDPANDA_SUPERUSER_USERNAME=superadmin","REDPANDA_SUPERUSER_PASSWORD=".concat(i)].join("\n"),mounts:[{type:"volume",name:"redpanda-data",mountPath:"/var/lib/redpanda/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),source:{type:"image",image:"minio/minio:RELEASE.2025-09-07T16-13-09Z"},deploy:{command:" minio server /data --address :9000 --console-address :9001"},mounts:[{type:"volume",name:"files",mountPath:"/data"}]}});var I="s3|http://".concat(u,":9000?accessKey=minioadmin&secretKey=minioadmin");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-elastic"),source:{type:"image",image:"elasticsearch:7.14.2"},deploy:{command:"./bin/elasticsearch-plugin list | grep -q ingest-attachment || yes | ./bin/elasticsearch-plugin install --silent ingest-attachment; /usr/local/bin/docker-entrypoint.sh eswrapper"},env:["ELASTICSEARCH_PORT_NUMBER=9200","discovery.type=single-node","ES_JAVA_OPTS=-Xms1024m -Xmx1024m","http.cors.enabled=true","http.cors.allow-origin=*"].join("\n"),mounts:[{type:"volume",name:"elastic-data",mountPath:"/usr/share/elasticsearch/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-rekoni"),source:{type:"image",image:"hardcoreeng/rekoni-service:".concat(o)},env:["SECRET=".concat(a)].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-transactor"),source:{type:"image",image:"hardcoreeng/transactor:".concat(o)},env:["SERVER_PORT=3333","SERVER_SECRET=".concat(a),"DB_URL=".concat(A),"STORAGE_CONFIG=".concat(I),"FRONT_URL=".concat(S),"ACCOUNTS_URL=http://".concat(s,":3000"),"FULLTEXT_URL=http://".concat(f,":4700"),"STATS_URL=http://".concat(d,":4900"),"LAST_NAME_FIRST=true","QUEUE_CONFIG=".concat(b,":9092")].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-collaborator"),source:{type:"image",image:"hardcoreeng/collaborator:".concat(o)},env:["COLLABORATOR_PORT=3078","SECRET=".concat(a),"ACCOUNTS_URL=http://".concat(s,":3000"),"STATS_URL=http://".concat(d,":4900"),"STORAGE_CONFIG=".concat(I)].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-account"),source:{type:"image",image:"hardcoreeng/account:".concat(o)},env:["SERVER_PORT=3000","SERVER_SECRET=".concat(a),"DB_URL=".concat(A),"TRANSACTOR_URL=ws://".concat(c,":3333;wss://$(PROJECT_NAME)-").concat(e.appServiceName,".$(EASYPANEL_HOST)/_transactor"),"STORAGE_CONFIG=".concat(I),"FRONT_URL=".concat(S),"STATS_URL=http://".concat(d,":4900"),"MODEL_ENABLED=*","ACCOUNTS_URL=".concat(S,"/_accounts"),"ACCOUNT_PORT=3000","QUEUE_CONFIG=".concat(b,":9092")].join("\n")}}),w&&t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-love"),source:{type:"image",image:"hardcoreeng/love:".concat(o)},env:["PORT=8096","SECRET=".concat(a),"ACCOUNTS_URL=http://".concat(s,":3000"),"DB_URL=".concat(A),"STORAGE_CONFIG=".concat(I),"LIVEKIT_HOST=".concat(e.livekitHost),"LIVEKIT_API_KEY=".concat(e.livekitApiKey),"LIVEKIT_API_SECRET=".concat(e.livekitApiSecret)].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-workspace"),source:{type:"image",image:"hardcoreeng/workspace:".concat(o)},env:["SERVER_SECRET=".concat(a),"DB_URL=".concat(A),"TRANSACTOR_URL=ws://".concat(c,":3333;wss://$(PROJECT_NAME)-").concat(e.appServiceName,".$(EASYPANEL_HOST)/_transactor"),"STORAGE_CONFIG=".concat(I),"MODEL_ENABLED=*","ACCOUNTS_URL=http://".concat(s,":3000"),"STATS_URL=http://".concat(d,":4900"),"QUEUE_CONFIG=".concat(b,":9092"),"ACCOUNTS_DB_URL=".concat(A)].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-front"),source:{type:"image",image:"hardcoreeng/front:".concat(o)},env:["SERVER_PORT=8080","SERVER_SECRET=".concat(a)].concat(Le(w?["LOVE_ENDPOINT=".concat(S,"/_love"),"LIVEKIT_WS=".concat(e.livekitHost)]:[]),["ACCOUNTS_URL=".concat(S,"/_accounts"),"ACCOUNTS_URL_INTERNAL=http://".concat(s,":3000"),"REKONI_URL=".concat(S,"/_rekoni"),"CALENDAR_URL=".concat(S,"/_calendar"),"GMAIL_URL=".concat(S,"/_gmail"),"TELEGRAM_URL=".concat(S,"/_telegram"),"STATS_URL=".concat(S,"/_stats"),"UPLOAD_URL=/files","ELASTIC_URL=http://".concat(h,":9200"),"COLLABORATOR_URL=wss://$(PROJECT_NAME)-".concat(e.appServiceName,".$(EASYPANEL_HOST)/_collaborator"),"STORAGE_CONFIG=".concat(I
1),"TITLE=Huly Self Host","DEFAULT_LANGUAGE=en","LAST_NAME_FIRST=true"]).join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-fulltext"),source:{type:"image",image:"hardcoreeng/fulltext:".concat(o)},env:["SERVER_SECRET=".concat(a),"DB_URL=".concat(A),"FULLTEXT_DB_URL=http://".concat(h,":9200"),"ELASTIC_INDEX_NAME=huly_storage_index","STORAGE_CONFIG=".concat(I),"REKONI_URL=http://".concat(p,":4004"),"ACCOUNTS_URL=http://".concat(s,":3000"),"STATS_URL=http://".concat(d,":4900"),"QUEUE_CONFIG=".concat(b,":9092")].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-stats"),source:{type:"image",image:"hardcoreeng/stats:".concat(o)},env:["PORT=4900","SERVER_SECRET=".concat(a)].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-kvs"),source:{type:"image",image:"hardcoreeng/hulykvs:".concat(o)},env:["HULY_DB_CONNECTION=postgresql://root@".concat(g,":26257/defaultdb?sslmode=disable"),"HULY_TOKEN_SECRET=".concat(a)].join("\n"),ports:[{published:8094,target:8094}]}}),{services:t}}},{slug:"humhub",meta:{name:"HumHub",description:"HumHub is a flexible open-source social network kit designed to facilitate communication and collaboration. It allows you to create your own customized social network, social intranet, or large social enterprise application tailored to your specific needs. Whether you're looking to boost your business, support your customers, educate your students, or organize your football club, HumHub provides the tools to make it happen. It features an intuitive user interface and a powerful module system that can be extended with third-party tools, your own creations, or existing software. With HumHub, you have full control over your server and data. The app also offers features like posts and updates, file sharing, liking and commenting, and 'Spaces' for group communication. You can extend your profile, create a portfolio, connect with others, and find people with specific skills. With its module system, you can modify anything on HumHub according to your requirements. The app also supports live updates, notifications, activity streams, dashboards, user profiles, groups, directories, file sharing, public access, search functionality, and mobile readiness.",instructions:null,changeLog:[{date:"2023-1-22",description:"first release"},{date:"2025-12-25",description:"Version bumped to 1.15.6"}],links:[{label:"Website",url:"https://www.humhub.com"},{label:"Documentation",url:"http://docs.humhub.org/"},{label:"Github",url:"https://github.com/humhub/humhub/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"humhub"},appServiceImage:{type:"string",title:"App Service Image",default:"mriedmann/humhub:1.15.6"},databaseServiceName:{type:"string",title:"Database Service Name",default:"humhub-db"}}},benefits:[{title:"Open Source",description:"HumHub is a completely open-source platform, allowing you to take advantage of the work already done and even improve upon it. It welcomes every suggestion or help."},{title:"Flexible",description:"HumHub is equipped with a powerful module system. You can extend its functionality by using third-party tools, writing your own, or connecting existing software."},{title:"Secure",description:"HumHub is a self-hosted solution that runs on almost every server. You are in full control of your data, ensuring your privacy and security."},{title:"Customizable",description:"With HumHub, you can create your own customized social network, social intranet, or large social enterprise application that truly fits your needs."}],features:[{title:"Social Communication",description:"Communicate like you already do in other social networks, just with your own rules. Write posts and updates, share files, like and comment just the way you want it."},{title:"Spaces",description:"The communication in HumHub works with spaces. A space can be anything, a project, a group or just a simple topic. For every space, you can invite multiple users and set up your own access rights and rules."},{title:"Digital V-Card",description:"Extend your profile, create your portfolio, connect with other people, find the right person with special skills, inform your followers with updates on your own wall."},{title:"Unlimited Possibilities",description:"With modules, you can modify anything on HumHub. Spaces, Profiles and other things according to your requirements. Anything you are missing on other social networks, you can build it."},{title:"Live Updates",description:"Stay informed about upcoming features and be amongst the first to know about them."},{title:"Mobile Ready",description:"HumHub is designed to work with all kinds of modern devices like smartphones and tablets, ensuring you can stay connected wherever you are."}],tags:["Social Networking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["HUMHUB_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"HUMHUB_DB_NAME=$(PROJECT_NAME)","HUMHUB_DB_USER=mariadb","HUMHUB_DB_PASSWORD=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/var/www/localhost/htdocs/protected/config"},{type:"volume",name:"uploads",mountPath:"/var/www/localhost/htdocs/uploads"},{type:"volume",name:"modules",mountPath:"/var/www/localhost/htdocs/protected/modules"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,image:"mariadb:10.2",password:a}}),{services:t}}},{slug:"huntarr",meta:{name:"Huntarr",description:"Huntarr is an automated media library enhancement tool that continuously monitors and improves your Radarr, Sonarr, and Lidarr collections. It works by periodically scanning your media libraries to identify missing items, failed downloads, and opportunities for quality upgrades, then automatically triggering searches to fill gaps and improve your collection. Huntarr acts as an intelligent automation layer on top of your existing *arr stack, ensuring your media library stays complete and up-to-date without manual intervention. The application features configurable scan intervals, customizable search triggers, support for multiple quality profiles, and detailed logging for tracking improvements. With its set-it-and-forget-it approach, Huntarr continuously works in the background to enhance your media collection by finding better quality versions, locating missing episodes or movies, and automatically requesting upgrades based on your configured quality preferences. The web interface provides visibility into scan history, search statistics, and library health metrics. Perfect for users who want their media libraries to automatically improve over time, home media server enthusiasts managing large collections, or anyone running Rad
1arr/Sonarr/Lidarr who wants to ensure their libraries are always complete and optimized without constant manual searching.",instructions:null,changeLog:[{date:"2025-11-27",description:"Template Release"}],links:[{label:"Website",url:"https://huntarr.io/"},{label:"GitHub",url:"https://github.com/plexguide/Huntarr.io"},{label:"Docker Hub",url:"https://hub.docker.com/r/huntarr/huntarr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"huntarr"},appServiceImage:{type:"string",title:"App Service Image",default:"huntarr/huntarr:9.2.1"},timezone:{type:"string",title:"Timezone",default:"UTC"}}},benefits:[{title:"Automated Library Enhancement",description:"Continuously improve your media collection without manual intervention by automatically triggering searches for missing items and quality upgrades."},{title:"Set-It-and-Forget-It Operation",description:"Configure once and let Huntarr work in the background, ensuring your media libraries stay complete and optimized 24/7."},{title:"Quality Optimization",description:"Automatically find and request better quality versions of your media based on your configured quality profiles and preferences."},{title:"Multi-Service Support",description:"Works seamlessly with Radarr, Sonarr, and Lidarr, providing comprehensive automation across your entire media stack."}],features:[{title:"Continuous Library Scanning",description:"Periodically scans your Radarr, Sonarr, and Lidarr libraries on a configurable schedule to identify improvement opportunities."},{title:"Missing Item Detection",description:"Automatically identifies missing movies, TV episodes, and music albums, then triggers searches to complete your collection."},{title:"Quality Upgrade Automation",description:"Monitors for higher quality versions of existing media and automatically requests upgrades based on your quality profiles."},{title:"Failed Download Recovery",description:"Detects failed or stalled downloads and automatically retriggers searches to ensure content acquisition completes successfully."},{title:"Configurable Scan Intervals",description:"Customize how frequently Huntarr scans your libraries to balance automation with system resource usage."},{title:"Detailed Logging & Statistics",description:"Track scan history, search triggers, and library improvements with comprehensive logs and statistics."}],tags:["Media Automation","Radarr","Sonarr","Lidarr","Library Management","Media Server"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9705}],env:["TZ=".concat(e.timezone||"UTC")].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"hyperdx",meta:{name:"HyperDX",description:"HyperDX is an open-source observability platform that unifies logs, metrics, traces, and session replays in one place. Built on ClickHouse for blazing-fast performance, it allows you to search terabytes of events in seconds without complex syntax. Perfect for debugging production issues, monitoring application performance, and correlating user sessions with backend traces. Recently acquired by ClickHouse to accelerate the future of open-source observability.",instructions:null,changeLog:[{date:"2025-07-01",description:"Initial release"}],links:[{label:"HyperDX Official Site",url:"https://www.hyperdx.io/"},{label:"Documentation",url:"https://www.hyperdx.io/docs"},{label:"GitHub Repository",url:"https://github.com/hyperdxio/hyperdx"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"hyperdx"},appServiceImage:{type:"string",title:"App Service Image",default:"docker.hyperdx.io/hyperdx/hyperdx-local:2-beta"},exposeClickHousePort:{type:"string",title:"Expose ClickHouse HTTP Port (8123)",default:"8123",description:"Expose ClickHouse HTTP interface for direct database access and queries"},exposeOtelPort:{type:"string",title:"Expose OpenTelemetry gRPC Port (4317)",default:"4317",description:"Expose OpenTelemetry gRPC endpoint for receiving telemetry data from applications"}}},benefits:[{title:"Unified Observability",description:"Correlate logs, metrics, traces, and session replays all in one platform without jumping between multiple tools."},{title:"Blazing Fast Performance",description:"Search terabytes of events in seconds, powered by ClickHouse database for exceptional query performance."},{title:"Cost-Effective",description:"Open-source solution that provides enterprise-grade observability without the high costs of proprietary tools like Datadog."}],features:[{title:"Full-Text Search",description:"Search across all your events without complex syntax. Find logs and spans with simple, intuitive queries."},{title:"Session Replay",description:"Automatically link user session replays with backend logs and traces for complete debugging context."},{title:"OpenTelemetry Native",description:"Built on OpenTelemetry standards for vendor-neutral instrumentation and easy migration from existing observability tools."},{title:"Real-Time Monitoring",description:"Live tail logs, create alerts, and visualize metrics in real-time with intuitive dashboards and chart builders."}],tags:["Observability","Monitoring","Logging","Tracing","APM","ClickHouse","OpenTelemetry","Session Replay"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],ports:[{published:Number(e.exposeClickHousePort),target:8123,protocol:"tcp"},{published:Number(e.exposeOtelPort),target:4317,protocol:"tcp"}]}}),{services:t}}},{slug:"icecoder",meta:{name:"ICEcoder",description:"ICEcoder is a revolutionary browser-based code editor designed to streamline and modernize the process of website development. It allows you to code directly within your web browser, either online or offline, eliminating the need for multiple programs. With ICEcoder, you can test your sites on actual web servers and maintain them with ease after development, making for a fast and intelligent development process. It's not just limited to online use - you can also use it as a desktop code editor, provided you have PHP 7.0+. It comes packed with a multitude of features and plugins to enhance your coding experience, including multiple cursors, 80+ highlighting themes, a find & replace builder, login security, coding assistance, visual code difference display, and database management with the Adminer plugin. The latest version, ICEcoder 8.1, introduces regex search on find and replace, double click tab to collapse file manager, active line number highlighting, and many more improvements and bug fixes.",instructions:null,armSupport:!0,changeLog:[{date:"2023-2-19",description:"first release"}],links:[{label:"Website",url:"https://icecoder.net"},{label:"Documentation",url:"https://icecoder.net/manual"},{label:"Github",url:"https://github.com/icecoder/ICEcoder"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"icecoder"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/easypanel-community/docker-icecoder:8.1"}}},benefits:[{title:"Modern Approach to Website Building",description:"ICEcoder provides a modern approach to building websites by allowing you to code directly within the web browser, online or offline. This means you only need one program (your browser) to develop sites, and you can test on actual web servers."},{title:"Easy Maintenance",description:"After development, maintaining the website is easy with ICEcoder. This makes for speedy and smart development."},{title:"Accessible Anywhere",description:"As ICEcoder is web-based, you can use it from any internet-enabled computer with a modern browser."},{title:"Customizable",description:"ICEcoder is built with common web languages, allowing you to customize it to your liking and integrate it with online services."},{title:"Desktop Code Editor",description:"If you'd like to use ICEcoder as a desktop code editor, no problem. You only need PHP 7.0+, so you can use it on Linux, PC via WAMP or XAMPP, and Mac via MAMP (or another PHP installation)."}],features:[{title:"Multiple Cursors",description:"Create multiple cursors and make text changes to affect all of them simultaneously."},{title:"Themes",description:"80+ highlighting themes come as standard but you can easily make your own with a CSS file."},{title:"Find & Replace Builder",description:"Find and replace can be applied to the current or all open documents, plus filenames & files."},{title:"Login Secured",description:"ICEcoder can be set up wherever you wish and is login secured to help keep your files safe. It's multi-user too!"},{title:"Type Boosters",description:"Plenty of coding assist is available such as Emmet, close tag completion, and tag wrappers."},{title:"Visual Code Diff",description:"Have code differences between 2 sets shown visually, including in-line highlighting of changes."},{title:"Code Hints",description:"Your JavaScript code is linted with JS Hint as you type to ensure good coding practices."},{title:"Database Management",description:"Database management is easy with the Adminer plugin. It's like phpMyAdmin, but better."}],tags:["Code Hosting","Developer Tools","Web Hosting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/icecoder"}]}}),{services:t}}},{slug:"ideon",meta:{name:"Ideon",description:"Ideon is a self-hosted visual workspace that lets teams organize repositories, notes, links, and files on an infinite collaborative canvas. It combines spatial organization with real-time sync so project context stays visible and connected.",instructions:"Deploy the template and wait for the database and app services to start, then open the app URL and create your account. Check the documentation for further configurations",changeLog:[{date:"2026-03-31",description:"Initial template release"},{date:"2026-09-24",description:"Fixed broken default image tag (v0.7.7 does not exist on GHCR; upstream tags without the v prefix), bumped to 0.9.6"}],links:[{label:"Website",url:"https://theideon.com/"},{label:"Documentation",url:"https://github.com/3xpyth0n/ideon#readme"},{label:"GitHub",url:"https://github.com/3xpyth0n/ideon"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ideon"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/3xpyth0n/ideon:0.9.6"}}},benefits:[{title:"Spatial Project Context",description:"Organize related work on an infinite canvas instead of splitting context across disconnected tabs and tools."},{title:"Collaborative by Default",description:"Share workspaces with teammates and collaborate in real time on project planning and documentation."},{title:"Self-Hosted Data Control",description:"Run the full stack in your own infrastructure with persistent storage and PostgreSQL-backed state."}],features:[{title:"Infinite Canvas Workspace",description:"Place notes, repositories, links, and files visually to mirror how your team thinks about projects."},{title:"Git Provider Integrations",description:"Connect to GitHub, GitLab, and other providers to bring repository context directly into your workspace."},{title:"Persistent Storage",description:"Preserve workspace data and uploads across updates through mounted persistent volumes."}],tags:["Workspace","Collaboration","Productivity","Knowledge Management","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}});var i=["APP_PORT=3000","APP_URL=https://$(PRIMARY_DOMAIN)","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=5432","DB_USER=postgres","DB_PASSWORD=".concat(a),"DB_NAME=$(PROJECT_NAME)","PUID=1000","PGID=1000"];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:i.join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"app-data",mountPath:"/app/storage"}]}}),{services:t}}},{slug:"illa",meta:{name:"Illa",description:"Illa Cloud is a revolutionary browser-based code editor designed to streamline and modernize the process of website development. It allows you to code directly within your web browser, either online or offline, eliminating the need for multiple programs. With Illa Cloud, you can test your sites on actual web servers and maintain them with ease after development, making for a fast and intelligent development process. It's not just limited to online use - you can also use it as a desktop code editor, provided you have PHP 7.0+. It comes packed with a multitude of features and plugins to enhance your coding experience, including multiple cursors, 80+ highlighting themes, a find & replace builder, login security, coding assistance, visual code difference display, and database management with the Adminer plugin. The latest version, Illa Cloud 8.1, introduces regex search on find and replace, double click tab to collapse file manager, active line number highlighting, and many more improvements and bug fixes.",instructions:"Defualt username; root and password; password",armSupport:!0,changeLog:[{date:"2025-01-21",description:"First Release"}],links:[{label:"Website",url:"https://illacloud.com/"},{label:"Documentation",url:"https://docs.illacloud.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"illa"},appServiceImage:{type:"string",title:"App Service Image",default:"illasoft/illa-builder:v4.8.5"}}},benefits:[{title:"Modern Approach to Website Building",description:"Illa Cloud provides a modern approach to building websites by allowing you to code directly within the web browser, online or offline. This means you only need one program (your browser) to develop sites, and you can test on actual web servers."},{title:"Easy Maintenance",description:"After development, maintaining the website is easy with Illa Cloud. This makes for speedy and smart development."},{title:"Accessible Anywhere",description:"As Illa Cloud is web-based, you can use it from any internet-enabled computer with a modern browser."},{title:"Customizable",description:"Illa Cloud is built with common web languages, allowing you to customize it to your liking and integrate it with online services."},{title:"Desktop Code Editor",description:"If you'd like to use Illa Cloud as a desktop code editor, no problem. You only need PHP 7.0+, so you can use it on Linux, PC via WAMP or XAMPP, and Mac via MAMP (or another PHP installation)."}],features:[{title:"Multiple Cursors",description:"Create multiple cursors and make text changes to affect all of them simultaneously."},{title:"Themes",description:"80+ highlighting themes come as standard but you can easily make your own with a CSS file."},{title:"Find & Replace Builder",description:"Find and replace can be applied to the current or all open documents, plus filenames & files."},{title:"Login Secured",description:"Illa Cloud can be set up wherever you wish and is login secured to help keep your files safe. It's multi-user too!"},{title:"Type Boosters",description:"Plenty of coding assist is available such as Emmet, close tag completion, and tag wrappers."},{title:"Visual Code Diff",description:"Have code differences between 2 sets shown visually, including in-line highlighting of changes."},{title:"Code Hints",description:"Your JavaScript code is linted with JS Hint as you type to ensure good coding practices."},{title:"Database Management",description:"Database management is easy with the Adminer plugin. It's like phpMyAdmin, but better."}],tags:["Cloud IDE","Developer Tools","Web Development"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:2022}]}}),{services:t}}},{slug:"imagor-studio",meta:{name:"Imagor Studio",description:"Imagor Studio is a self-hosted image gallery and live editing web application designed for photographers, content creators, and digital artists. It provides a modern web interface for browsing, organizing, and editing your image collections with real-time image transformation capabilities. Built on top of the Imagor image processing server, the studio interface offers intuitive tools for image manipulation including resizing, cropping, filtering, and format conversion without modifying original files. All edits are performed on-demand using URL-based parameters, ensuring your source images remain untouched while generating optimized versions for different use cases. The application features a responsive gallery view for browsing images, a built-in editor with live preview, support for various image formats, and SQLite database for managing metadata and user preferences. With its lightweight architecture and flexible storage options, Imagor Studio enables you to maintain a private image library with professional editing capabilities accessible from any web browser. Perfect for photographers managing personal portfolios, content creators organizing media assets, web developers optimizing images for websites, or anyone needing a self-hosted alternative to cloud-based image management services with built-in editing tools.",instructions:null,changeLog:[{date:"2025-11-27",description:"Template Release"},{date:"2026-02-21",description:"Version bumped to 0.12.1"},{date:"2026-05-01",description:"Version bumped to 1.2.2"}],links:[{label:"Website",url:"https://imagor.net/"},{label:"Documentation",url:"https://docs.studio.imagor.net/"},{label:"GitHub Repo",url:"https://github.com/cshum/imagor-studio"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"imagor-studio"},appServiceImage:{type:"string",title:"App Service Image",default:"shumc/imagor-studio:1.2.2"}}},benefits:[{title:"Non-Destructive Editing",description:"Edit images with real-time transformations using URL parameters without modifying original files, preserving your source images indefinitely."},{title:"Self-Hosted Privacy",description:"Keep your entire image library and editing workflow on your own infrastructure, ensuring complete privacy and control over your visual content."},{title:"On-Demand Processing",description:"Generate optimized image versions only when needed, saving storage space and processing resources while maintaining flexibility."},{title:"Web-Based Access",description:"Access your image gallery and editing tools from any device with a web browser, no software installation required."}],features:[{title:"Image Gallery",description:"Browse and organize your image collections through a responsive, modern web interface with thumbnail previews."},{title:"Live Image Editor",description:"Edit images in real-time with immediate visual feedback using built-in tools for resizing, cropping, filtering, and format conversion."},{title:"URL-Based Transformations",description:"Apply image transformations via URL parameters, enabling programmatic image processing and integration with other applications."},{title:"Format Support",description:"Work with various image formats including JPEG, PNG, WebP, and more, with automatic format conversion capabilities."},{title:"SQLite Database",description:"Lightweight SQLite database stores metadata, preferences, and organizational information without requiring external database servers."},{title:"Read-Only Gallery Mount",description:"Mount your existing image directories as read-only to safely browse and edit without risk of accidental modifications to originals."}],tags:["Image Gallery","Image Editor","Photography","Media Management","Image Processing"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["DATABASE_URL=sqlite:///app/data/imagor-studio.db","PORT=8080","PUID=0","PGID=0"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"gallery",mountPath:"/app/gallery"}]}}),{services:t}}},{slug:"imgproxy",meta:{name:"imgproxy",description:"imgproxy is a powerful app designed to optimize images for web use, making websites and apps run faster while saving storage and SaaS costs. It works by resizing and processing images on the fly, eliminating the need for disk space and reducing the cost of conforming all saved images to specific formats. imgproxy offers a wide range of features for editing images, including resizing, cropping, contrast adjustment, pixelization, saturation, rotating, and more. It also provides security features to protect against common attack vectors in image processing. With imgproxy, you can upload images directly to the cloud or your cluster and request images by specifying parameters in the request URL. The app uses the world\u2019s fastest image processing library, libvips, ensuring quick processing and a small memory footprint. imgproxy Pro plans offer advanced features and vary by capacity and types of support.",instructions:"To generate a image URL you can use the following link: https://progapandist.github.io/imgproxy-form/#. Your Salt and Key can be found in the environment variables once you create the service. You can also find more environment variables here: https://docs.imgproxy.net/configuration",changeLog:[{date:"2022-08-05",description:"first release"},{date:"2025-05-23",description:"update to v3.28.0"},{date:"2025-07-22",description:"Version bumped to v3.29.1"},{date:"2025-12-25",description:"Version bumped to v3.30.1"},{date:"2026-05-08",description:"Version bumped to v3.31.3"}],links:[{label:"Website",url:"https://imgproxy.net/"},{label:"Documentation",url:"https://docs.imgproxy.net/"},{label:"Github",url:"https://www.github.com/imgproxy/imgproxy"}],contributors:[{name:"Ivan Ryan",url:"https://github.com/ivanonpc-22"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"imgproxy"},appServiceImage:{type:"string",title:"App Service Image",default:"darthsim/imgproxy:v3.31.3"}}},benefits:[{title:"Optimized Image Processing",description:"imgproxy is designed to make websites and apps run faster by optimizing images for the web on the fly. It saves storage and SaaS costs by reducing the need for disk space and eliminating the requirement for all saved images to conform to specific formats."},{title:"Fast and Efficient",description:"Built on the world\u2019s fastest image processing library, libvips, imgproxy is incredibly fast and has a minimal memory footprint. It can handle a large amount of image resizing quickly and efficiently."},{title:"Secure Image Processing",description:"imgproxy provides robust security measures to protect against common attack vectors in image processing. It checks an image\u2019s real dimensions, cancels processing if it\u2019s too big or not a real image, and prevents denial-of-service attacks by requiring URL signing."}],features:[{title:"On-the-Fly Image Resizing",description:"imgproxy resizes and processes images on the fly, eliminating the need to repeatedly prepare images to fit your design every time it changes."},{title:"Advanced Image Editing",description:"With over 55+ features, imgproxy offers a comprehensive selection of image editing tools. These include resizing, cropping, contrast adjustment, pixelization, saturation, rotation, background addition, GIF to MP4 conversion, padding, blurring, brightness adjustment, PDF preview generation, and more."},{title:"Pro Version",description:"imgproxy Pro offers advanced features and varies by capacity and types of support. It includes concurrent image processing limits, basic and Pro features, priority support, and a 14-day free trial period."}],tags:["Image Processing","Optimization","Web Development"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["IMGPROXY_KEY=".concat(y(18)),"IMGPROXY_SALT=".concat(y(18))].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"immich",meta:{name:"Immich",description:"Immich is a self-hosted photo and video backup solution designed for individuals and families to store and manage their media files efficie
1ntly. It provides a modern interface with features like automatic uploads, deduplication, and powerful search capabilities. Immich ensures that you maintain full control over your media while offering a smooth and user-friendly experience.",instructions:"Wait for the migration to complete.",changeLog:[{date:"2025-01-17",description:"Initial Template Release"},{date:"2025-05-23",description:"update to v1.133.0"},{date:"2025-12-25",description:"Version bumped to v2.4.1"},{date:"2026-05-08",description:"Version bumped to v2.7.5"}],links:[{label:"Documentation",url:"https://immich.app/docs"},{label:"Github",url:"https://github.com/immich-app/immich"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","mlServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"immich"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/immich-app/immich-server:v2.7.5"},mlServiceImage:{type:"string",title:"ML Service Image",default:"ghcr.io/immich-app/immich-machine-learning:v2.7.5"}}},benefits:[{title:"Secure Media Backup",description:"Immich allows you to back up your photos and videos securely, ensuring privacy and accessibility at all times."},{title:"Self-Hosted Control",description:"Maintain full control over your media files with a self-hosted solution designed for flexibility and security."},{title:"Advanced Search and Categorization",description:"Leverage machine learning for smart categorization, facial recognition, and efficient searching of your media library."}],features:[{title:"Automatic Uploads",description:"Automatically back up photos and videos from your devices, keeping your media synchronized effortlessly."},{title:"Machine Learning Integration",description:"Use built-in machine learning capabilities for facial recognition and advanced media tagging."},{title:"Modern Web Interface",description:"Enjoy an intuitive and sleek web interface for managing your media files with ease."},{title:"Deduplication",description:"Save storage space with automatic detection and removal of duplicate files."}],tags:["Media Backup","Self-Hosted","Machine Learning","Photo Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=["DB_DATABASE_NAME=$(PROJECT_NAME)","DB_USERNAME=postgres","DB_PASSWORD=".concat(a),"DB_HOSTNAME=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"REDIS_HOSTNAME=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_USERNAME=default","REDIS_PASSWORD=".concat(i),"UPLOAD_LOCATION=./library","DB_DATA_LOCATION=./postgres"].join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,env:[o].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:2283}],mounts:[{type:"volume",name:"upload",mountPath:"/usr/src/app/upload"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-ml"),env:[o].join("\n"),source:{type:"image",image:e.mlServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,image:"docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0"}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"inbox-zero",meta:{name:"Inbox Zero",description:"Inbox Zero is an email management platform that helps you clean your inbox, manage subscriptions, and automate email workflows.",instructions:"The Google Client ID and Secret are required for the OAuth flow to work. Select the LLM provider and fill the API keys for the provider.",changeLog:[{date:"2025-04-15",description:"First Release"}],links:[{label:"GitHub",url:"https://github.com/elie222/inbox-zero"},{label:"Website",url:"https://www.getinboxzero.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","googleClientId","googleClientSecret","llmProvider"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"inbox-zero"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/elie222/inbox-zero:v1.10.2"},googleClientId:{type:"string",title:"Google Client ID",description:"The Google Client ID is required for the OAuth flow to work.",default:""},googleClientSecret:{type:"string",title:"Google Client Secret",description:"The Google Client Secret is required for the OAuth flow to work.",default:""},llmProvider:{type:"string",title:"LLM Provider",description:"Select the LLM provider and fill only the respective API key.",default:"openai",enum:["openai","anthropic","google","groq","bedrock","ollama","openrouter"],enumNames:["OpenAI","Anthropic (Claude)","Google (Gemini)","Groq","AWS Bedrock","Ollama","OpenRouter"]},openaiApiKey:{type:"string",title:"OpenAI API Key",default:"",showIf:{field:"llmProvider",is:"openai"}},anthropicApiKey:{type:"string",title:"Anthropic API Key",default:"",showIf:{field:"llmProvider",is:"anthropic"}},googleApiKey:{type:"string",title:"Google API Key",default:"",showIf:{field:"llmProvider",is:"google"}},groqApiKey:{type:"string",title:"Groq API Key",default:"",showIf:{field:"llmProvider",is:"groq"}},bedrockAccessKey:{type:"string",title:"AWS Bedrock Access Key",default:"",showIf:{field:"llmProvider",is:"bedrock"}},bedrockSecretKey:{type:"string",title:"AWS Bedrock Secret Key",default:"",showIf:{field:"llmProvider",is:"bedrock"}},bedrockRegion:{type:"string",title:"AWS Bedrock Region",default:"us-west-2",showIf:{field:"llmProvider",is:"bedrock"}},ollamaBaseUrl:{type:"string",title:"Ollama Base URL",default:"http://ollama:11434",showIf:{field:"llmProvider",is:"ollama"}},ollamaModel:{type:"string",title:"Ollama Model",default:"phi3",showIf:{field:"llmProvider",is:"ollama"}},openrouterApiKey:{type:"string",title:"OpenRouter API Key",default:"",showIf:{field:"llmProvider",is:"openrouter"}},economyLlmProvider:{type:"string",title:"Economy LLM Provider",default:"ollama",enum:["openai","anthropic","google","groq","bedrock","ollama","openrouter","none"],enumNames:["OpenAI","Anthropic (Claude)","Google (Gemini)","Groq","AWS Bedrock","Ollama","OpenRouter","None"]},economyLlmModel:{type:"string",title:"Economy LLM Model",default:"",showIf:{field:"economyLlmProvider",not:"none"}}}},benefits:[{title:"Email Management",description:"Take control of your inbox with powerful management tools"},{title:"Subscription Control",description:"Easily manage and unsubscribe from newsletters and subscriptions"},{title:"Email Automation",description:"Automate repetitive email tasks and workflows"},{title:"AI-Powered",description:"Leverage AI to handle email categorization and responses"},{title:"Self-Hosted",description:"Keep your email data private on your own server"}],features:[{title:"Email Cleanup",description:"Declutter your inbox by quickly processing and organizing emails"},{title:"Subscription Manager",description:"Track and manage all your email subscriptions"},{title:"Auto-Responder",description:"Set up automated responses for common email types"},{title:"Email Filters",description:"Create custom filters to sort and manage incoming emails"},{title:"Analytics",description:"Track email usage and behavior over time"}],tags:["Email","Productivity","AI","Self-Hosted","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(32),r=["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?schema=public"),"DIRECT_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?schema=public"),"NEXTAUTH_SECRET=".concat(n),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","GOOGLE_CLIENT_ID=".concat(e.googleClientId||""),"GOOGLE_CLIENT_SECRET=".concat(e.googleClientSecret||""),"GOOGLE_ENCRYPT_SECRET=".concat(y(32)),"GOOGLE_ENCRYPT_SALT=".concat(y(16)),'GOOGLE_PUBSUB_TOPIC_NAME="projects/abc/topics/xyz"',"GOOGLE_PUBSUB_VERIFICATION_TOKEN="].concat(Be(function(){var t=["DEFAULT_LLM_PROVIDER=".concat(e.llmProvider)];return t.push("openai"===e.llmProvider?"OPENAI_API_KEY=".concat(e.openaiApiKey||""):"# OPENAI_API_KEY="),t.push("anthropic"===e.llmProvider?"ANTHROPIC_API_KEY=".concat(e.anthropicApiKey||""):"# ANTHROPIC_API_KEY="),t.push("google"===e.llmProvider?"GOOGLE_API_KEY=".concat(e.googleApiKey||""):"# GOOGLE_API_KEY="),t.push("groq"===e.llmProvider?"GROQ_API_KEY=".concat(e.groqApiKey||""):"# GROQ_API_KEY="),"bedrock"===e.llmProvider?(t.push("BEDROCK_ACCESS_KEY=".concat(e.bedrockAccessKey||"")),t.push("BEDROCK_SECRET_KEY=".concat(e.bedrockSecretKey||"")),t.push("BEDROCK_REGION=".concat(e.bedrockRegion||"us-west-2"))):(t.push("# BEDROCK_ACCESS_KEY="),t.push("# BEDROCK_SECRET_KEY="),t.push("# BEDROCK_REGION=us-west-2")),"ollama"===e.llmProvider?(t.push("OLLAMA_BASE_URL=".concat(e.ollamaBaseUrl)),t.push("NEXT_PUBLIC_OLLAMA_MODEL=".concat(e.ollamaModel||"phi3"))):(t.push("# OLLAMA_BASE_URL=http://ollama:11434"),t.push("# NEXT_PUBLIC_OLLAMA_MODEL=phi3")),t.push("openrouter"===e.llmProvider?"OPENROUTER_API_KEY=".concat(e.openrouterApiKey||""):"# OPENROUTER_API_KEY="),e.economyLlmProvider&&"none"!==e.economyLlmProvider?(t.push("ECONOMY_LLM_PROVIDER=".concat(e.economyLlmProvider)),t.push("ECONOMY_LLM_MODEL=".concat(e.economyLlmModel||""))):(t.push("# ECONOMY_LLM_PROVIDER="),t.push("# ECONOMY_LLM_MODEL=")),t}()),["INTERNAL_API_KEY=","API_KEY_SALT=",'UPSTASH_REDIS_URL="http://$(PROJECT_NAME)_'.concat(e.appServiceName,'-redis-http:80"'),"UPSTASH_REDIS_TOKEN=".concat(o),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"QSTASH_TOKEN=","QSTASH_CURRENT_SIGN
1ING_KEY=","QSTASH_NEXT_SIGNING_KEY=","NEXT_PUBLIC_APP_HOME_PATH=/automation # If you want the product to default to email client, set this to /mail","LOG_ZOD_ERRORS=true","CRON_SECRET=","TINYBIRD_TOKEN=","TINYBIRD_BASE_URL=https://api.us-east.tinybird.co/","TINYBIRD_ENCRYPT_SECRET=","TINYBIRD_ENCRYPT_SALT=","SENTRY_AUTH_TOKEN=","SENTRY_ORGANIZATION=","SENTRY_PROJECT=","NEXT_PUBLIC_SENTRY_DSN=","NEXT_PUBLIC_AXIOM_DATASET=","NEXT_PUBLIC_AXIOM_TOKEN=","NEXT_PUBLIC_POSTHOG_KEY=","NEXT_PUBLIC_POSTHOG_HERO_AB=","NEXT_PUBLIC_POSTHOG_ONBOARDING_SURVEY_ID=","POSTHOG_API_SECRET=","POSTHOG_PROJECT_ID=","RESEND_API_KEY=","LOOPS_API_SECRET=","NEXT_PUBLIC_CRISP_WEBSITE_ID=","NEXT_PUBLIC_SANITY_PROJECT_ID=",'NEXT_PUBLIC_SANITY_DATASET="production"',"LEMON_SQUEEZY_SIGNING_SECRET=","LEMON_SQUEEZY_API_KEY=","NEXT_PUBLIC_BASIC_MONTHLY_PAYMENT_LINK=#","NEXT_PUBLIC_BASIC_ANNUALLY_PAYMENT_LINK=#","NEXT_PUBLIC_PRO_MONTHLY_PAYMENT_LINK=#","NEXT_PUBLIC_PRO_ANNUALLY_PAYMENT_LINK=#","NEXT_PUBLIC_PRO_MONTHLY_VARIANT_ID=123","NEXT_PUBLIC_PRO_ANNUALLY_VARIANT_ID=123","NEXT_PUBLIC_BUSINESS_MONTHLY_PAYMENT_LINK=#","NEXT_PUBLIC_BUSINESS_ANNUALLY_PAYMENT_LINK=#","NEXT_PUBLIC_BUSINESS_MONTHLY_VARIANT_ID=123","NEXT_PUBLIC_BUSINESS_ANNUALLY_VARIANT_ID=123","NEXT_PUBLIC_COPILOT_MONTHLY_PAYMENT_LINK=#","NEXT_PUBLIC_COPILOT_MONTHLY_VARIANT_ID=123","NEXT_PUBLIC_LIFETIME_PAYMENT_LINK=#","NEXT_PUBLIC_LIFETIME_VARIANT_ID=123","NEXT_PUBLIC_LIFETIME_EXTRA_SEATS_PAYMENT_LINK=#","NEXT_PUBLIC_LIFETIME_EXTRA_SEATS_VARIANT_ID=123"]);return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-redis-http"),source:{type:"image",image:"hiett/serverless-redis-http:latest"},env:["SRH_MODE=env","SRH_TOKEN=".concat(o),"SRH_CONNECTION_STRING=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379")].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:Be(r).concat(["DATABASE_URL=postgresql://postgres:".concat(a,"@").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?schema=public"),"DIRECT_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?schema=public"),"UPSTASH_REDIS_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-redis-http:80"),"UPSTASH_REDIS_TOKEN=".concat(o)]).join("\n")}}),{services:t}}},{slug:"infisical",meta:{name:"Infisical",description:"Infisical is a robust, self-hosted platform designed for securely managing and accessing secrets, environment variables, and API keys. It provides a user-friendly interface, seamless integration with popular development and CI
1/CD tools, and advanced encryption to ensure the safety of sensitive data. With Infisical, you maintain full control over your secrets infrastructure, providing enhanced security and flexibility for your workflows.",instructions:"You may delete the migration service once the migration is completed.",changeLog:[{date:"2025-01-08",description:"Template Release"},{date:"2025-02-25",description:"Version bumped to v0.112.0-postgres"},{date:"2025-05-23",description:"Version bumped to v0.130.1-postgres"},{date:"2025-12-25",description:"Version bumped to v0.154.6"},{date:"2026-02-21",description:"Version bumped to v0.158.5"},{date:"2026-05-08",description:"Version bumped to v0.159.27"}],links:[{label:"Documentation",url:"https://infisical.com/docs"},{label:"Github",url:"https://github.com/Infisical/infisical"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"infisical"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"infisical/infisical:v0.159.27"}}},benefits:[{title:"Secure Secret Management",description:"Infisical provides a centralized and secure way to manage environment variables and secrets across your applications."},{title:"Self-Hosted Privacy",description:"Retain full control and privacy over your secrets with a self-hosted solution."},{title:"Seamless Integration",description:"Easily integrate Infisical with your favorite CI/CD tools, frameworks, and development environments."}],features:[{title:"End-to-End Encryption",description:"Protect your secrets with advanced end-to-end encryption, ensuring they remain safe and inaccessible to unauthorized parties."},{title:"Role-Based Access Control",description:"Manage user and team access with granular role-based permissions for better security."},{title:"Real-Time Sync",description:"Automatically sync secrets and environment variables across your team in real time."},{title:"Version Control",description:"Track changes and roll back to previous versions of secrets for better manageability."}],tags:["Secret Management","Self-Hosted","Security","Environment Variables","Encryption"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(32),r=["ENCRYPTION_KEY=".concat(o),"AUTH_SECRET=".concat(n),"DB_CONNECTION_URI=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0"),"SITE_URL=http://localhost:8080","SMTP_HOST=","SMTP_PORT=","SMTP_NAME=","SMTP_USERNAME=","SMTP_PASSWORD=","CLIENT_ID_HEROKU=","CLIENT_ID_VERCEL=","CLIENT_ID_NETLIFY=","CLIENT_ID_GITHUB=","CLIENT_ID_GITHUB_APP=","CLIENT_SLUG_GITHUB_APP=","CLIENT_ID_GITLAB=","CLIENT_ID_BITBUCKET=","CLIENT_SECRET_HEROKU=","CLIENT_SECRET_VERCEL=","CLIENT_SECRET_NETLIFY=","CLIENT_SECRET_GITHUB=","CLIENT_SECRET_GITHUB_APP=","CLIENT_SECRET_GITLAB=","CLIENT_SECRET_BITBUCKET=","CLIENT_SLUG_VERCEL=","CLIENT_PRIVATE_KEY_GITHUB_APP=","CLIENT_APP_ID_GITHUB_APP=","SENTRY_DSN=","POSTHOG_HOST=","POSTHOG_PROJECT_API_KEY=","CLIENT_ID_GOOGLE_LOGIN=","CLIENT_SECRET_GOOGLE_LOGIN=","CLIENT_ID_GITHUB_LOGIN=","CLIENT_SECRET_GITHUB_LOGIN=","CLIENT_ID_GITLAB_LOGIN=","CLIENT_SECRET_GITLAB_LOGIN=","CAPTCHA_SECRET=","NEXT_PUBLIC_CAPTCHA_SITE_KEY=","OTEL_TELEMETRY_COLLECTION_ENABLED=false","OTEL_EXPORT_TYPE=prometheus","OTEL_EXPORT_OTLP_ENDPOINT=","OTEL_OTLP_PUSH_INTERVAL=","OTEL_COLLECTOR_BASIC_AUTH_USERNAME=","OTEL_COLLECTOR_BASIC_AUTH_PASSWORD=","PLAIN_API_KEY=","PLAIN_WISH_LABEL_IDS=","SSL_CLIENT_CERTIFICATE_HEADER_KEY=","ENABLE_MSSQL_SECRET_ROTATION_ENCRYPT=true","INF_APP_CONNECTION_AWS_ACCESS_KEY_ID=","INF_APP_CONNECTION_AWS_SECRET_ACCESS_KEY=","INF_APP_CONNECTION_GITHUB_OAUTH_CLIENT_ID=","INF_APP_CONNECTION_GITHUB_OAUTH_CLIENT_SECRET=","INF_APP_CONNECTION_GITHUB_APP_CLIENT_ID=","INF_APP_CONNECTION_GITHUB_APP_CLIENT_SECRET=","INF_APP_CONNECTION_GITHUB_APP_PRIVATE_KEY=","INF_APP_CONNECTION_GITHUB_APP_SLUG="].join("\n");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-migration"),env:[r].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"npm run migration:latest"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:["NODE_ENV=production",r].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"influxdb",meta:{name:"InfluxDB",description:"InfluxDB is a time-series database designed to handle high write and query loads commonly required for real-time analytics. It\u2019s optimized for storing timestamped data, making it ideal for monitoring metrics, tracking events, and handling sensor data. With its efficie
1nt storage engine, InfluxDB offers built-in support for data compression and compaction, allowing for efficient data retention and storage. This database supports SQL-like queries through InfluxQL, integrates seamlessly with popular data visualization tools like Grafana, and can handle data from IoT devices, DevOps monitoring, finance, and more.",instructions:null,changeLog:[{date:"2024-10-30",description:"Template Added"},{date:"2025-02-25",description:"Version bumped to 2.7.11"},{date:"2025-05-25",description:"Version bumped to 2.8.0"},{date:"2026-05-08",description:"Version bumped to 2.9.0"}],links:[{label:"Website",url:"https://www.influxdata.com/"},{label:"Documentation",url:"https://docs.influxdata.com/"},{label:"Github",url:"https://github.com/influxdata/influxdb"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"influxdb"},appServiceImage:{type:"string",title:"Ap
1p Service Image",default:"influxdb:2.9.0"}}},benefits:[{title:"Optimized Time-Series Data Handling",description:"InfluxDB is purpose-built for time-series data, providing fast and efficient storage and retrieval of timestamped data, ideal for monitoring, analytics, and IoT use cases."},{title:"High-Performance and Scalable",description:"InfluxDB handles high write and query loads with its efficient storage engine, allowing for real-time data ingestion and analysis. Its scalability makes it suitable for handling large volumes of data in production environments."},{title:"Flexible Data Retention Policies",description:"With InfluxDB, you can set customizable retention policies to automatically delete old data, optimizing storage costs while keeping recent data accessible."}],features:[{title:"Time-Series Data Storage",description:"InfluxDB is optimized to store, query, and analyze time-series data effectively, making it a top choice for real-time applications and time-stamped data."},{title:"Built-in SQL-like Query Language",description:"InfluxDB supports InfluxQL, a SQL-like language, as well as Flux, for powerful querying, transformation, and processing of data."},{title:"Advanced Data Compression",description:"InfluxDB\u2019s storage engine uses advanced compression techniques, reducing storage costs while maintaining high performance."},{title:"Integrations with Visualization Tools",description:"InfluxDB integrates seamlessly with tools like Grafana, enabling users to visualize and analyze data in real time."},{title:"Open-Source and Enterprise Options",description:"InfluxDB is available as an open-source database, with a more feature-rich Enterprise version for production-ready use cases, providing clustering, security, and support options."}],tags:["Time-Series","Monitoring","Analytics","IoT","Database"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8086}],mounts:[{type:"volume",name:"data",mountPath:"/var/lib/influxdb2"},{type:"volume",name:"config",mountPath:"/etc/influxdb2"}]}}),{services:t}}},{slug:"instatic",meta:{name:"Instatic",description:"Instatic is a self-hosted CMS with an integrated visual canvas editor. Design pages, reusable components, and content models in one Bun server backed by SQLite, then publish plain semantic HTML and compact CSS with no builder runtime shipped to visitors.",instructions:"Open the app URL and the first visit walks you through creating your site and owner account \u2014 there is no separate signup page, so do this before sharing the URL with anyone else. Everything (database, uploads, and published output) is stored on the persistent volume, so back it up if the site matters.",changeLog:[{date:"2026-07-20",description:"first release"}],links:[{label:"Website",url:"https://instatic.com"},{label:"GitHub",url:"https://github.com/corebunch/instatic"},{label:"Documentation",url:"https://github.com/corebunch/instatic/tree/main/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"instatic"},appServiceImage:{type:"string",title:"App Service Image",description:"The published image only targets linux/amd64. On an arm64 host you will need to build the image from source instead.",default:"ghcr.io/corebunch/instatic:0.0.11"}}},benefits:[{title:"One Server, No Stack to Assemble",description:"The editor, content engine, media, auth, forms, and publisher all run from a single Bun server, with no separate CMS, host, or CDN to wire together."},{title:"Clean Published Output",description:"Published pages are plain semantic HTML and compact CSS with no editor runtime, builder attributes, or hydration step left behind."},{title:"No External Database Required",description:"Runs on SQLite by default, so there is nothing extra to provision or manage for most sites."}],features:[{title:"Canvas Visual Editor",description:"Design pages visually with breakpoint editing and a built-in design token system for type, spacing, and color."},{title:"Reusable Components",description:"Build typed components with parameters and slots that stay consistent across every page that uses them."},{title:"Native Forms and Media",description:"Collect form submissions straight into your own CMS data tables and manage uploads in a dedicated media workspace."},{title:"Sandboxed Plugin System",description:"Extend the CMS with permissioned plugins that can add admin pages, routes, and frontend assets."}],tags:["CMS","Website Builder","Self-Hosted","No-Code"],logo:"logo.svg",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],i=a(2474).randomBytes(32).toString("base64");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PORT=3001","DATABASE_URL=sqlite:/app/storage/data/cms.db","UPLOADS_DIR=/app/storage/uploads","PUBLIC_ORIGIN=https://$(PRIMARY_DOMAIN)","INSTATIC_SECRET_KEY=".concat(i)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001}],mounts:[{type:"volume",name:"storage",mountPath:"/app/storage"}]}}),{services:t}}},{slug:"invidious",meta:{name:"Invidious",description:"Invidious is a privacy-respecting alternative frontend for YouTube, designed to offer a lightweight, ad-free, and tracking-free viewing experience. It allows users to watch YouTube videos without being tracked, bypasses regional restrictions, and provides advanced features like video downloads, subscription management, and audio-only mode. Invidious supports multiple languages and offers a minimal interface with various themes for enhanced user experience. Additionally, it integrates seamlessly with other platforms by providing RSS feeds for subscriptions and API support.",instructions:null,changeLog:[{date:"2024-01-03",description:"First release"},{date:"2025-12-25",description:"Version bumped to 2025.12.22-5f84a5b"},{date:"2026-02-21",description:"Version bumped to 2026.02.16-e7f8b15"}],links:[{label:"Website",url:"https://invidious.io/"},{label:"Documentation",url:"https://docs.invidious.io/"},{label:"GitHub",url:"https://github.com/iv-org/invidious"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"invidious"},appServiceImage:{type:"string",title:"App Service Image",default:"quay.io/invidious/invidious:2026.02.16-e7f8b15"}}},benefits:[{title:"Ad-Free and Privacy-Respecting",description:"Invidious allows users to watch YouTube videos without ads or tracking, ensuring a private and seamless experience."},{title:"Lightweight and Fast",description:"Designed for efficiency, Invidious consumes minimal resources, making it ideal for low-powered devices or self-hosting."},{title:"Enhanced Accessibility",description:"Offers features like video downloads, audio-only mode, and support for RSS feeds, enabling users to access content in flexible ways."}],features:[{title:"Ad-Free Video Playback",description:"Watch YouTube videos without interruptions from ads or intrusive tracking scripts."},{title:"Audio-Only Mode",description:"Save bandwidth by streaming only the audio of videos, perfect for music or podcasts."},{title:"Subscription Management",description:"Keep track of your favorite channels with subscription management, available via  RSS feeds for external readers."},{title:"Customizable Themes",description:"Personalize your experience with various themes and a clean, minimal interface."},{title:"Open Source and Community-Driven",description:"Invidious is free and open source, with active contributions from a vibrant community."}],tags:["Privacy","YouTube Alternative","Open Source","Video Streaming","Lightweight"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["INVIDIOUS_CONFIG =\n          'db:\r\n  dbname: $(PROJECT_NAME)\r\n  user: postgres\r\n  password: ".concat(a,"\r\n  host: $(PROJECT_NAME)_").concat(e.appServiceName,'-db\r\n  port: 5432\r\ncheck_tables: true\r\ndomain: "https://$(PRIMARY_DOMAIN)/"\r\nport: 3000\r\nhmac_key: "wV7Yb76K3kL8QnKZ1Z72n0gGx1F5F8a9V1J7X0Y3Y1M="\'')].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"invoiceninja",meta:{name:"InvoiceNinja",description:"Invoice Ninja is a powerful, open-source platform for managing invoices, quotes, and payments, specifically designed for freelancers and small businesses. It allows you to automate billing, track payments, and manage expenses effortlessly. With a user-friendly interface and robust feature set, Invoice Ninja supports multi-currency, recurring billing, and various payment gateways, providing a comprehensive invoicing solution.",instructions:"Open the nginx domain to access InvoiceNinja",changeLog:[{date:"2024-11-21",description:"First Release"},{date:"2025-05-23",description:"update to v5.11"},{date:"2025-07-22",description:"Version bumped to v5.12"},{date:"2025-12-25",description:"Version bumped to v5.12.40"},{date:"2026-02-21",description:"Version bumped to v5.12.65"},{date:"2026-05-01",description:"Version bumped to v5.13.19"}],links:[{label:"Github",url:"https://github.com/invoiceninja/invoiceninja"},{label:"Documentation",url:"https://invoiceninja.github.io/docs/self-host/self-host-installation"},{label:"Demo",url:"https://demo.invoiceninja.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","nginxImage","adminUsername","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"invoiceninja"},appServiceImage:{type:"string",title:"App Service Image",default:"invoiceninja/invoiceninja:5.13.19"},nginxImage:{type:"string",title:"Nginx Image",default:"nginx:1.27"},adminUsername:{type:"string",title:"Admin Email",default:"[email protected]"},adminPassword:{type:"string",title:"Admin Password"}}},benefits:[{title:"Streamlined Invoicing",description:"Invoice Ninja simplifies invoicing with customizable templates, recurring invoices, and the ability to track payments and expenses effortlessly."},{title:"Payment Integration",description:"Invoice Ninja supports multiple payment gateways, including Stripe and PayPal, enabling seamless and flexible payment processing for your clients."},{title:"Multi-Currency Support",description:"With support for multiple currencies and languages, Invoice Ninja is ideal for businesses operating internationally."}],features:[{title:"Recurring Invoices",description:"Automate billing with recurring invoices and subscriptions."},{title:"Payment Gateways",description:"Integrate with popular payment gateways like Stripe, PayPal, and others for easy payment processing."},{title:"Expense Tracking",description:"Manage your expenses and link them directly to invoices for better accounting."},{title:"Client Portal",description:"Provide your clients with a portal where they can view and pay invoices directly."},{title:"Customizable Templates",description:"Use professionally designed templates or customize them to reflect your brand."}],tags:["Invoicing","Payments","Billing","Expense Management","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_ENV=production","APP_DEBUG=0","APP_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-nginx.$(EASYPANEL_HOST)"),"ASSET_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-nginx.$(EASYPANEL_HOST)"),"APP_KEY=base64:VPtYClO6I4SyH6t79V1fWp9FDrX7WOCK2k+eJbHnTr8=","DB_TYPE=mysql","DB_STRICT=false","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mysql","DB_PASSWORD=".concat(a),"QUEUE_CONNECTION=database","APP_CIPHER=aes-256-cbc","APP_DEBUG=true","REQUIRE_HTTPS=false","PHANTOMJS_PDF_GENERATION=false","PDF_GENERATOR=snappdf","TRUSTED_PROXIES='*'","IN_USER_EMAIL=".concat(e.adminUsername),"IN_PASSWORD=".concat(e.adminPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"storage",mountPath:"/var/www/app/storage"},{type:"volume",name:"public",mountPath:"/var/www/app/public"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-nginx"),env:["PHP_FPM_HOST=$(PROJECT_NAME)_".concat(e.appServiceName)].join("\n"),source:{type:"image",image:e.nginxImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],deploy:{command:"envsubst '$PHP_FPM_HOST' < /etc/nginx/conf.d/vhost.template > /etc/nginx/conf.d/in-vhost.conf && nginx -g 'daemon off;'"},mounts:[{type:"file",content:"\nserver {\n    listen 80 default_server;\n    server_name _;\n\n    server_tokens off;\n\n    client_max_body_size 100M;\n\n    root /var/www/app/public/;\n    index index.php;\n\n    location / {\n        try_files $uri $uri/ /index.php?$query_string;\n    }\n\n    location = /favicon.ico { access_log off; log_not_found off; }\n    location = /robots.txt  { access_log off; log_not_found off; }\n\n    location ~* /storage/.*\\.php$ {\n        return 503;\n    }\n\n    location ~ \\.php$ {\n        fastcgi_split_path_info ^(.+\\.php)(/.+)$;
1\n        fastcgi_pass ${PHP_FPM_HOST}:9000;\n        fastcgi_index index.php;\n        include fastcgi_params;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        fastcgi_intercept_errors off;\n        fastcgi_buffer_size 16k;\n        fastcgi_buffers 4 16k;\n    }\n}\n",mountPath:"/etc/nginx/conf.d/vhost.template"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/public/"),mountPath:"/var/www/app/public"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),password:a}}),{services:t}}},{slug:"invoiceshelf",meta:{name:"InvoiceShelf",description:"InvoiceShelf is an open-source web & mobile app that helps you track expenses, payments & create professional invoices & estimates. Web Application is made using Laravel & VueJS while the Mobile Apps are built using React Native.",instructions:"Visit the website to complete installation.",changeLog:[{date:"2026-05-19",description:"Updated to v2.3.3"},{date:"2024-03-23",description:"Template added"},{date:"2024-10-11",description:"Version Changed to 2.0.0"},{date:"2025-02-25",description:"Version bumped to 2.1.1"}],links:[{label:"Website",url:"https://invoiceshelf.com/"},{label:"Documentation",url:"https://docs.invoiceshelf.com/"},{label:"Github",url:"https://github.com/InvoiceShelf/InvoiceShelf"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dbServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"invoiceshelf"},appServiceImage:{type:"string",title:"App Service Image",default:"invoiceshelf/invoiceshelf:2.3.3"},dbServiceImage:{type:"string",title:"Database Service Image",default:"mariadb:11"}}},benefits:[{title:"Automated Invoice Processing",description:"InvoiceShelf is a comprehensive invoice management tool that automatically processes incoming invoices, extracting essential details through OCR technology. It seamlessly categorizes, sorts, and stores invoices, integrating with accounting software to streamline your financial workflows."},{title:"Payment Tracking",description:"With InvoiceShelf, tracking payments becomes effortless. The system can be configured to monitor payment statuses, alerting you to overdue invoices and automatically updating records when payments are received. This ensures your accounts are always accurate and up to date."},{title:"Duplicate Detection",description:"InvoiceShelf's sophisticated algorithms identify and flag duplicate invoices, preventing double payments and financial discrepancies. This feature saves you time and reduces the risk of financial errors, providing peace of mind."}],features:[{title:"Dashboard Overview",description:"Access a comprehensive overview of your financials with our dashboard feature. Track pending, paid, and overdue invoices at a glance, and get insights into your cash flow and financial health, helping you make informed decisions."},{title:"Customizable Invoice Templates",description:"Create professional and branded invoices with ease using customizable templates. InvoiceShelf allows you to adjust layouts, add your logo, and set default payment terms to match your business\u2019s unique needs."},{title:"Client Management",description:"Organize and manage your client information in one place. Store contact details, track client-specific payment terms, and view transaction histories to enhance relationships and streamline communications."},{title:"Automated Reminders",description:"Set up automated email reminders for overdue invoices, reducing the need for manual follow-ups. Customize the reminder frequency and messages to maintain professionalism and prompt payments."},{title:"Integration with Accounting Software",description:"InvoiceShelf integrates with popular accounting software, enabling automatic syncing of financial data. This ensures that your accounts are always up-to-date, facilitating seamless financial reporting and analysis."},{title:"Secure Cloud Storage",description:"Store your invoices securely in the cloud with InvoiceShelf. Access your financial documents from anywhere, at any time, knowing your data is protected with state-of-the-art encryption and security protocols."}],tags:["Finance","Invoice Management","Payment Tracking","Accounting"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=v(),i="".concat(e.appServiceName,"-db"),o="base64:".concat(ze.from(y(32)).toString("base64"));return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["APP_ENV=production","APP_DEBUG=false","APP_URL=https://$(PRIMARY_DOMAIN)","APP_KEY=".concat(o),"DB_CONNECTION=mysql","DB_HOST=$(PROJECT_NAME)_".concat(i),"DB_PORT=3306","DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mariadb","DB_PASSWORD=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"conf",mountPath:"/conf"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),image:e.dbServiceImage,password:a}}),{services:t}}},{slug:"iobroker",meta:{name:"ioBroker",description:"ioBroker is a powerful open-source IoT platform that allows you to connect different smart home systems and devices into one platform. It supports a wide range of protocols and devices, making it a versatile solution for home automation.",instructions:null,changeLog:[{date:"2025-04-30",description:"Initial release"},{date:"2026-05-01",description:"Version bumped to v11.1.0"}],links:[{label:"Website",url:"https://www.iobroker.net"},{label:"Documentation",url:"https://www.iobroker.net/#en/documentation"},{label:"GitHub",url:"https://github.com/ioBroker/ioBroker"},{label:"Docker Hub",url:"https://hub.docker.com/r/buanet/iobroker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"iobroker"},appServiceImage:{type:"string",title:"App Service Image",default:"buanet/iobroker:v11.1.0"}}},benefits:[{title:"Unified Smart Home Platform",description:"Connect and control all your smart home devices from a single interface"},{title:"Extensive Protocol Support",description:"Supports multiple protocols including Zigbee, Z-Wave, MQTT, and more"},{title:"Customizable Automation",description:"Create complex automation rules and scenarios"},{title:"Open Source",description:"Free and open-source platform with active community support"}],features:[{title:"Multi-Protocol Support",description:"Connect devices using various protocols and standards"},{title:"Visualization",description:"Create custom dashboards and visualizations"},{title:"Scripting",description:"Advanced scripting capabilities for custom automation"},{title:"History & Logging",description:"Store and analyze historical data"},{title:"Mobile Access",description:"Access your smart home from anywhere using mobile apps"},{title:"Backup & Restore",description:"Easy backup and restore functionality"},{title:"Plugin System",description:"Extend functionality with community plugins"}],tags:["IoT","Home Automation","Smart Home","Automation","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}],mounts:[{type:"volume",name:"iobroker_data",mountPath:"/opt/iobroker"}],env:["TZ=Europe/Berlin"].join("\n")}}),{services:t}}},{slug:"isaiah",meta:{name:"Isaiah",description:"Isaiah is a Docker-based application that provides a simple and efficient way to manage containerized applications. It offers a web interface for monitoring and controlling Docker containers with a clean, user-friendly interface. Isaiah allows you to view container status, logs, and resource usage, making it easier to maintain your Docker infrastructure.",instructions:"Access the web interface to manage your Docker containers",changeLog:[{date:"2025-04-17",description:"first release"}],links:[{label:"Docker",url:"https://hub.docker.com/r/mosswill/isaiah"},{label:"GitHub",url:"https://github.com/will-moss/isaiah"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"isaiah"},appServiceImage:{type:"string",title:"App Service Image",default:"mosswill/isaiah:latest"}}},benefits:[{title:"Container Management",description:"Easily manage your Docker containers through a clean web interface. Isaiah provides a simple way to monitor and control your containerized applications."},{title:"Lightweight Solution",description:"Isaiah is designed to be lightweight and resource-efficient while providing powerful container management capabilities. It runs with minimal overhead on your system."},{title:"Secure Access",description:"Protect your container management interface with authentication. Isaiah ensures that only authorized users can access and manage your Docker containers."}],features:[{title:"Docker Container Monitoring",description:"Monitor the status and health of your Docker containers in real-time through an intuitive web interface."},{title:"Container Management",description:"Start, stop, restart, and remove containers directly from the web interface without needing command-line access."},{title:"Resource Usage Tracking",description:"Keep track of container resource usage including CPU, memory, and network usage to optimize your infrastructure."},{title:"Container Logs Access",description:"Access and search container logs directly through the web interface for easier troubleshooting and monitoring."},{title:"Simple and Intuitive Interface",description:"Isaiah features a clean, user-friendly interface that makes Docker container management accessible to users of all technical levels."}],tags:["Docker","Container Management","Web Interface","Monitoring"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SERVER_PORT=80","AUTHENTICATION_SECRET=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"isso",meta:{name:"Isso",description:"Isso is a lightweight commenting server designed to be a seamless alternative to Disqus. It is written in Python and JavaScript, and it allows users to leave comments on your website in a simple and straightforward manner. The app supports anonymous comments, preserving the identity of your users, and is easy to manage. Users can write comments in Markdown, and they also have the ability to edit or delete their own comments within a default time frame of 15 minutes. The app uses a SQLite backend, ensuring that your comments are not treated as Big Data. Additionally, it offers Disqus and WordPress import features, allowing you to migrate your existing comments without any hassle. The app is easily integrated into your website by embedding a single JavaScript file.",instructions:"Go to /admin for administration interface",changeLog:[{date:"2023-2-9",description:"first release"},{date:"2025-05-23",description:"update to v0.13.1.dev0"},{date:"2026-02-21",description:"Version updated to v0.13.0"},{date:"2026-05-08",description:"Version updated to v0.14.0"}],links:[{label:"Documentation",url:"https://isso-comments.de/docs/"},{label:"Github",url:"https://github.com/posativ/isso"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"isso"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/isso-comments/isso:0.14.0"},adminPassword:{type:"string",title:"Admin Password"}}},benefits:[{title:"Lightweight Commenting Server",description:"Isso is a lightweight commenting server that offers a simple and efficient way to manage comments on your website. It is designed to be a drop-in replacement for Disqus, providing a more streamlined and user-friendly experience."},{title:"Maintains User Anonymity",description:"Unlike other commenting systems, Isso allows for anonymous comments, ensuring the privacy of your website visitors. It maintains user identity without recording personal information like IP addresses or email."},{title:"Easy Integration",description:"Isso uses JavaScript and cross-origin resource sharing for easy integration into static websites. This makes it a versatile tool that can be used with a wide range of web platforms."}],features:[{title:"Markdown Support",description:"Isso supports comments written in Markdown, allowing users to format their comments in a way that is both easy to write and read."},{title:"Comment Moderation",description:"With Isso, comments in the moderation queue are not publicly visible before activation. This gives you control over what is displayed on your website."},{title:"User Comment Management",description:"Users can edit or delete their own comments within a default window of 15 minutes. This gives users the ability to correct or remove their comments as needed."},{title:"Disqus & WordPress Import",description:"Isso allows for easy migration of your Disqus or WordPress comments without any hassle. This makes transitioning to Isso a smooth process."},{title:"SQLite Backend",description:"Isso uses an SQLite backend, demonstrating that comments are not Big Data and can be managed efficiently and effectively."}],tags:["Documentation"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"db",mountPath:"/db"},{type:"volume",name:"tmp",mountPath:"/tmp"},{type:"file",content:["[general]","host = https://$(PRIMARY_DOMAIN)","max-age = 15m","notify = stdout","gravatar = true","gravatar-url = https://www.gravatar.com/avatar/{}?d=identicon&s=55","latest-enabled = false","[admin]","enabled = true","password = ".concat(e.adminPassword),"[moderation]","enabled = false","approve-if-email-previously-approved = false","purge-after = 30d","[guard]","enabled = true","ratelimit = 2","direct-reply = 3","reply-to-self = false","require-author = false","require-email = false"].join("\n"),mountPath:"/config/isso.cfg"}]}}),{services:t}}},{slug:"itop",meta:{name:"iTop",description:"iTop is a self-hosted, open-source IT service management (ITSM) solution designed for businesses and organizations to manage their IT assets, incidents, and workflows efficiently. It provides a modern web interface for tracking and organizing IT infrastructure, support tickets, change requests, and service catalogs. iTop includes role-based user management, real-time notifications, and detailed reporting tools to help IT teams maintain operational efficiency. It supports multiple authentication methods, including LDAP and SAML, making it suitable for enterprise environments. Additionally, iTop offers API access for integration with third-party tools and automation of IT processes. Its containerized deployment ensures scalability and easy management.",instructions:"On the installation wizard, please connect to the DB.",changeLog:[{date:"2025-03-18",description:"Template Release"},{date:"2025-12-25",description:"Version bumped to 3.2.2"}],links:[{label:"Documentation",url:"https://www.itophub.io/wiki/page"},{label:"Github",url:"https://github.com/Combodo/iTop"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"itop"},appServiceImage:{type:"string",title:"App Service Image",default:"vbkunin/itop:3.2.2"}}},benefits:[{title:"Comprehensive IT Asset Management",description:"iTop provides a structured way to track and manage IT assets, including servers, workstations, software, and configurations."},{title:"Self-Hosted ITSM Solution",description:"Businesses can maintain full control over their IT operations, ensuring security, compliance, and customization without relying on third-party services."},{title:"ITIL-Compliant Incident & Change Management",description:"iTop follows ITIL best practices for managing incidents, changes, and service requests, helping organizations streamline their IT operations."}],features:[{title:"CMDB (Configuration Management Database)",description:"iTop provides a centralized database to document and manage IT assets, relationships, and dependencies."},{title:"Service Desk & Incident Management",description:"Manage and track IT incidents, requests, and changes with a built-in service desk system."},{title:"Workflow Automation & API Integration",description:"Automate IT processes and integrate iTop with monitoring tools, ticketing systems, and third-party applications."},{title:"Role-Based Access Control",description:"Define user roles and permissions to ensure secure access to IT data."},{title:"Reporting & Dashboards",description:"Gain insights into IT performance with built-in reports, analytics, and customizable dashboards."}],tags:["ITSM","IT Asset Management","Help Desk","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html/"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"itsmng",meta:{name:"ITSM-NG",description:"ITSM-NG is a free and open-source IT Service Management (ITSM) solution designed to help organizations manage their IT services, assets, and support operations efficiently. Born from the GLPI project, ITSM-NG offers a comprehensive ITIL-aligned platform for incident management, problem management, change management, asset tracking, and service catalog. It features a modern interface, customizable workflows, automated ticket routing, SLA management, knowledge base, and extensive reporting capabilities. ITSM-NG supports multi-tenancy, LDAP/Active Directory integration, and provides a powerful plugin system for extending functionality. Perfect for IT teams seeking a professional, self-hosted solution for managing their IT operations and improving service delivery.",instructions:"Default login credentials are itsm/itsm",changeLog:[{date:"2025-11-07",description:"Template Release"},{date:"2026-02-21",description:"Version bumped to v2.1.3"},{date:"2026-05-04",description:"Version bumped to v2.1.4"}],links:[{label:"Website",url:"https://www.itsm-ng.org/"},{label:"Github",url:"https://github.com/itsmng/itsm-ng"},{label:"Docker Hub",url:"https://hub.docker.com/r/itsmng/itsm-ng"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"itsmng"},appServiceImage:{type:"string",title:"App Service Image",default:"itsmng/itsm-ng:2.1.4"}}},benefits:[{title:"Complete ITSM Solution",description:"Comprehensive IT Service Management platform with incident, problem, change, and asset management aligned with ITIL best practices."},{title:"Open Source & Free",description:"Fully open-source solution with no licensing costs, giving you complete control over your ITSM infrastructure and data."},{title:"Highly Customizable",description:"Extensive customization options with plugins, custom fields, automated workflows, and templating to adapt to your organization's specific needs."}],features:[{title:"Ticket & Incident Management",description:"Comprehensive ticketing system with automated routing, SLA tracking, escalation rules, and multi-level categorization for efficient incident resolution."},{title:"Asset & Inventory Management",description:"Track and manage all IT assets including hardware, software licenses, contracts, and suppliers with automatic discovery and lifecycle management."},{title:"Service Catalog & Requests",description:"Create self-service portals with customizable service catalogs, allowing users to submit requests and track their status easily."},{title:"Knowledge Base",description:"Built-in knowledge management system for documenting solutions, procedures, and FAQs to reduce repetitive support requests."},{title:"SLA Management",description:"Define and monitor Service Level Agreements with automatic escalations, deadline tracking, and comprehensive SLA reporting."},{title:"Reporting & Analytics",description:"Powerful reporting engine with pre-built and custom reports, dashboards, and statistics to monitor IT service performance and trends."}],tags:["ITSM","Service Management","Helpdesk","Asset Management","ITIL"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MARIADB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"MARIADB_USER=mariadb","MARIADB_PASSWORD=".concat(a),"MARIADB_DATABASE=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/var/www/itsm-ng/config"},{type:"volume",name:"plugins",mountPath:"/var/www/itsm-ng/plugins"},{type:"volume",name:"files",mountPath:"/var/www/itsm-ng/files"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"ittools",meta:{name:"It Tools",description:"IT-Tools is a comprehensive suite of handy tools designed to assist developers in their day-to-day tasks. It includes a wide range of features such as Crypto Token generator, Hash text Bcrypt, UUIDs v4 generator, Encrypt/Decrypt text, BIP39 passphrase generator, and many more. The app also offers various converters like Date-time converter, Integer base converter, Roman numeral converter, and Base64 string encoder/decoder among others. It provides a platform for developers to generate QR codes, SVG placeholders, and even record videos from their camera. With additional features like Git cheatsheet, Random port generator, Crontab generator, and JSON prettify and format, IT-Tools is a one-stop solution for all developer needs.",instructions:null,changeLog:[{date:"2023-3-29",description:"first release"},{date:"2025-05-23",description:"update to v2024.10.22-7ca5933"}],links:[{label:"Website",url:"https://it-tools.tech"},{label:"Github",url:"https://github.com/CorentinTh/it-tools"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ittools"},appServiceImage:{type:"string",title:"App Service Image",default:"corentinth/it-tools:2024.10.22-7ca5933"}}},benefits:[{title:"Efficient Development",description:"IT-Tools is a comprehensive suite of utilities designed to streamline and enhance the development process. It offers a wide range of tools, from crypto token generators to various converters, making it a one-stop solution for developers."},{title:"Enhanced Productivity",description:"With IT-Tools, tedious tasks like hashing text, generating UUIDs, or converting between different data formats can be done in a matter of seconds. This not only saves time but also allows developers to focus on more critical aspects of their projects."},{title:"Secure and Reliable",description:"IT-Tools provides reliable and secure tools for tasks such as encryption/decryption of text, generating RSA key pairs, and analyzing password strength. These tools help ensure the security of your applications and data."}],features:[{title:"Wide Range of Tools",description:"IT-Tools offers a vast array of utilities for developers. These include crypto token generators, hash text, bcrypt, UUIDs v4 generator, encrypt/decrypt text, BIP39 passphrase generator, HMAC generator, RSA key pair generator, and many more."},{title:"Convenient Converters",description:"The app includes a variety of converters for different data types and formats. These include date-time converter, integer base converter, Roman numeral converter, Base64 string encoder/decoder, color converter, case converter, and more."},{title:"Device Information and Code Generators",description:"IT-Tools provides device information, basic auth generator, open graph meta generator, OTP code generator, MIME types, JWT parser, keycode info, slugify string, HTML WYSIWYG editor, user-agent parser, HTTP status codes, and JSON diff."},{title:"Image and Video Tools",description:"The app includes tools for generating QR codes, SVG placeholders, and even a camera recorder for capturing images and videos."},{title:"Development Helpers",description:"IT-Tools also offers a Git cheatsheet, random port generator, crontab generator, JSON prettify and format, JSON minify, JSON to CSV, SQL prettify and format, chmod calculator, Docker run to Docker compose converter, and XML formatter."},{title:"Network and Math Tools",description:"The app provides a range of network and math tools, including IPv4 subnet calculator, IPv4 address converter, IPv4 range expander, MAC address lookup, IPv6 ULA generator, math evaluator, ETA calculator, and percentage calculator."},{title:"Text and Data Tools",description:"IT-Tools includes a Lorem ipsum generator, text statistics, and a phone parser and formatter, among other tools, to help you handle text and data more efficiently."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"jackett",meta:{name:"Jackett",description:"Jackett is a versatile, open-source indexer proxy for torrenting and Usenet, enabling users to integrate popular trackers with applications like Sonarr, Radarr, and more. Designed to be lightweight and efficient, Jackett streamlines the process of accessing trackers, offering a seamless experience for managing and automating downloads.",instructions:null,changeLog:[{date:"2024-12-25",description:"Template Release"},{date:"2025-12-25",description:"Version bumped to 0.24.545"},{date:"2026-02-21",description:"Version bumped to 0.24.1167"},{date:"2026-05-04",description:"Version bumped to 0.24.1815"}],links:[{label:"Website",url:"https://jackett.sh/"},{label:"Github",url:"https://github.com/Jackett/Jackett"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jackett"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/jackett:0.24.1815"}}},benefits:[{title:"Seamless Integration",description:"Jackett acts as a bridge between torrent trackers and applications like Sonarr, Radarr, and Lidarr, simplifying the automation of media downloads."},{title:"Open-Source and Free",description:"Enjoy the benefits of a completely free and open-source solution, backed by an active community."},{title:"Customizable and Flexible",description:"Configure Jackett to meet your specific needs, with support for multiple trackers and platforms."}],features:[{title:"Wide Tracker Support",description:"Supports hundreds of public and private trackers for both torrents and Usenet."},{title:"API Compatibility",description:"Integrates seamlessly with popular applications via API for automated workflows."},{title:"Cross-Platform",description:"Available for Windows, macOS, Linux, and Docker, ensuring compatibility across all environments."},{title:"Lightweight and Efficient",description:"Designed to be resource-efficient, making it suitable for deployment on low-end devices or VPS."},{title:"Regular Updates",description:"Benefit from consistent updates and improvements supported by an active open-source community."}],tags:["Torrenting","Usenet","Indexer Proxy","Open-Source","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC","AUTO_UPDATE=true","RUN_OPTS="].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:9117}]}}),{services:t}}},{slug:"jaeger",meta:{name:"Jaeger",description:"Jaeger is an end-to-end distributed tracing system used for monitoring and troubleshooting microservices-based architectures. It helps developers track requests across complex systems, visualize latencies, and diagnose performance issues. Jaeger supports multiple storage backends and provides powerful querying and visualization capabilities. It is designed to be scalable and production-ready, making it a valuable tool for debugging and optimizing distributed applications.",instructions:null,changeLog:[{date:"2025-03-14",description:"First Release"},{date:"2025-07-22",description:"Version bumped to v1.71.0"},{date:"2025-12-25",description:"Version bumped to v1.76.0"}],links:[{label:"Website",url:"https://www.jaegertracing.io"},{label:"Documentation",url:"https://www.jaegertracing.io/docs/latest"},{label:"Github",url:"https://github.com/jaegertracing/jaeger"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","compactFormat","jaegerInstrumentation","binaryFormat","portSampling","collectorPort","zipkinPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jaeger"},appServiceImage:{type:"string",title:"App Service Image",default:"jaegertracing/all-in-one:1.76.0"},compactFormat:{type:"string",title:"Compact Format",default:"5775"},jaegerInstrumentation:{type:"string",title:"Jaeger Instrumentation",default:"6831"},binaryFormat:{type:"string",title:"Binary Format",default:"6832"},portSampling:{type:"string",title:"Port Sampling",default:"5778"},collectorPort:{type:"string",title:"Collector Port",default:"14268"},zipkinPort:{type:"string",title:"Zipkin Port",default:"9411"}}},benefits:[{title:"Distributed Tracing",description:"Track requests across microservices for better visibility."},{title:"Performance Optimization",description:"Identify and diagnose performance bottlenecks in distributed applications."},{title:"Multiple Storage Backends",description:"Supports multiple storage options such as Elasticsearch and Cassandra."},{title:"Scalable & Production-Ready",description:"Designed to handle high loads and large-scale applications."},{title:"Powerful Visualization",description:"Provides an intuitive UI for analyzing traces and latencies."},{title:"OpenTelemetry Integration",description:"Seamlessly integrates with OpenTelemetry for enhanced observability."}],features:[{title:"End-to-End Tracing",description:"Capture and analyze traces from service to service."},{title:"Trace Visualization",description:"View trace timelines and dependencies in an intuitive UI."},{title:"Latency Analysis",description:"Identify slow services and optimize performance."},{title:"Adaptive Sampling",description:"Control trace sampling dynamically for efficient data collection."},{title:"Storage Flexibility",description:"Store traces in Elasticsearch, Cassandra, Kafka, or local memory."},{title:"OpenTelemetry Support",description:"Natively integrates with OpenTelemetry for seamless instrumentation."}],tags:["Observability","Monitoring","Distributed Tracing"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:16686}],ports:[{protocol:"udp",published:Number(e.compactFormat),target:5775},{protocol:"udp",published:Number(e.jaegerInstrumentation),target:6831},{protocol:"udp",published:Number(e.binaryFormat),target:6832},{protocol:"tcp",published:Number(e.portSampling),target:5778},{protocol:"tcp",published:Number(e.collectorPort),target:14268},{protocol:"tcp",published:Number(e.zipkinPort),target:9411}],mounts:[{type:"volume",name:"tmp",mountPath:"/tmp"}]}}),{services:t}}},{slug:"jellyfin",meta:{name:"Jellyfin",description:"Jellyfin is a free software media system that allows you to take full control of your media. It enables you to collect, manage, and stream your media from your own server to any device. With Jellyfin, you can enjoy your entire movie collection, watch your favorite shows, listen to your music, and even read your books and comics. It also offers features for live TV and DVR, allowing you to watch TV and set automatic recordings to expand your library. Jellyfin also provides a SyncPlay feature, making remote movie nights easier than ever. The app is available on most popular platforms, ensuring your media is ready to follow you wherever you go. Jellyfin is licensed under the GNU GPL, meaning you can use, study, modify, build, and distribute it for free. It is a privacy-focused solution with no tracking or central servers collecting your data.",instructions:"Jellyfin takes a few minutes to get ready. Sit back, relax, and get some popcorn!",changeLog:[{date:"2022-10-28",description:"first release"},{date:"2025-02-28",description:"Version bumped to 2025022405"},{date:"2025-06-03",description:"Version bumped to 10.10.7"},{date:"2025-12-25",description:"Version bumped to 10.11.5"},{date:"2026-02-21",description:"Version bumped to 10.11.6"},{date:"2026-05-04",description:"Version bumped to 10.11.8"}],links:[{label:"Website",url:"https://jellyfin.org/"},{label:"Documentation",url:"https://jellyfin.org/docs"},{label:"Github",url:"https://github.com/jellyfin/jellyfin"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jellyfin"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/jellyfin:10.11.8"}}},benefits:[{title:"Control Your Media",description:"Jellyfin is a free software media system that allows you to manage and stream your media your way. You have full control over your media, with no strings attached."},{title:"Stream Anywhere",description:"With Jellyfin, you can stream your media to any device from your own server. Your media is ready to follow you, wherever you go."},{title:"Free and Open Source",description:"Jellyfin is Free Software, licensed under the GNU GPL. You can use it, study it, modify it, build it, and distribute it for free."},{title:"Privacy Focused",description:"Jellyfin has no tracking, phone-home, or central servers collecting your data. Your media is your own, and Jellyfin respects that."}],features:[{title:"Media Management",description:"Jellyfin enables you to collect, manage, and stream your media. Enjoy your entire movie collection, watch your favorite shows, listen to your music, and more."},{title:"Live TV & DVR",description:"With Jellyfin, you can watch TV and set automatic recordings to expand your library."},{title:"Books, Comics, and Magazines",description:"Jellyfin isn't just for video and music. You can also read your books, comics, and magazines."},{title:"Photos",description:"Organize your photos and share memories with your friends and family using Jellyfin."},{title:"SyncPlay",description:"Sharing a movie night remotely has never been so easy. With Jellyfin's SyncPlay feature, you can enjoy media with friends or family, no matter where they are."}],tags:["Media"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8096}],env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),mounts:[{type:"volume",name:"tvshows",mountPath:"/data/tvshows"},{type:"volume",name:"movies",mountPath:"/data/movies"},{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"jellyseerr",meta:{name:"Jellyseerr",description:"Overseerr is a powerful application designed to streamline the process of managing your media library. It offers full Plex integration, allowing you to log in and manage user access with Plex, and syncs with your Plex library to show what titles you already have. The app also integrates with Sonarr and Radarr, with plans for more services in the future. Overseerr features an easy-to-use request system, letting users request individual seasons or movies through a clean, user-friendly interface. The app also boasts a simple request management UI, making it easy to approve recent requests without having to navigate through the app. It also offers a granular permission system and localization into other languages. The mobile-friendly design ensures you can approve requests on the go. Jellyseerr, a fork of Overseerr, extends these features to Jellyfin and Emby media servers, offering full integration with these platforms. It also supports movies, shows, mixed libraries, and allows for easy integration with your existing services. Jellyseerr also offers a customizable request system, a simple request management UI, a granular permission system, and support for various notification agents.",instructions:"none",changeLog:[{date:"2022-12-20",description:"first release"},{date:"2025-02-28",description:"Version bumped to 2.3.0"},{date:"2025-07-22",description:"Version bumped to 2.7.2"},{date:"2025-12-25",description:"Version bumped to 2.7.3"},{date:"2026-05-04",description:"Version bumped to sha-42eec24"}],links:[{label:"Documentation",url:"https://github.com/Fallenbagel/jellyseerr/tree/develop/docs"},{label:"Github",url:"https://github.com/Fallenbagel/jellyseerr"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jellyseerr"},appServiceImage:{type:"string",title:"App Service Image",default:"fallenbagel/jellyseerr:sha-42eec24"}}},benefits:[{title:"Effortless Media Requesting",description:"Overseerr and Jellyseerr are designed to make requesting media for your library a breeze. Users can easily find the media they want, click request, and explore other titles that may interest them, all in one seamless flow."},{title:"Hassle-Free Request Management",description:"For server owners, these apps take the hassle out of approving users' requests. With a simple request management UI, you don't have to dig through the app to approve recent requests."},{title:"Mobile-Friendly Design",description:"Whether you're on the go or away from your desktop, you can easily approve requests thanks to the mobile-friendly design of Overseerr and Jellyseerr."},{title:"Granular Permission System",description:"These apps offer a granular permission system, allowing you to manage user access effectively."}],features:[{title:"Full Plex, Jellyfin, and Emby Integration",description:"Overseerr and Jellyseerr fully integrate with Plex, Jellyfin, and Emby, allowing you to login and manage user access with these platforms. They also sync to your Plex, Jellyfin, or Emby library to show what titles you already have."},{title:"Integration with Sonarr and Radarr",description:"These apps integrate with Sonarr and Radarr, with more services to come in the future."},{title:"Easy-to-Use Request System",description:"Users can request individual seasons or movies through a friendly, clean UI. The request system is customizable and incredibly easy to use."},{title:"Localization into Other Languages",description:"Overseerr supports localization into other languages, making it accessible to users worldwide."},{title:"Support for Various Notification Agents",description:"Jellyseerr supports various notification agents, keeping you updated on the go."},{title:"Upcoming Features",description:"Jellyseerr has several upcoming features, including support for multiple server instances, music support, and much more."}],tags:["Media","Request Management","Integration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5055}],mounts:[{type:"volume",name:"config",mountPath:"/app/config"}]}}),{services:t}}},{slug:"jenkins",meta:{name:"Jenkins",description:"Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration, and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.",instructions:null,changeLog:[{date:"2024-10-06",description:"First Release of Version 2.474"},{date:"2025-02-28",description:"Version bumped to 2.499"},{date:"2025-07-22",description:"Version bumped to 2.519"},{date:"2025-12-25",description:"Version bumped to 2.543"},{date:"2026-02-21",description:"Version bumped to 2.551"},{date:"2026-05-04",description:"Version bumped to 2.562"}],links:[{label:"Website",url:"https://www.jenkins.io/"},{label:"Documentation",url:"https://www.jenkins.io/doc/book/"}
1,{label:"Github",url:"https://github.com/jenkinsci/jenkins"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"jenkins"},appServiceImage:{type:"string",title:"App Service Image",default:"jenkins/jenkins:2.562"}}},benefits:[{title:"Automate Everything",description:"Jenkins is an open-source automation server that helps you automate various tasks related to building, testing, and deploying software. Streamline your development workflow by automating repetitive tasks with Jenkins."},{title:"Flexible and Extensible",description:"Jenkins supports thousands of plugins that allow you to integrate with various tools and technologies, making it highly flexible and customizable for any development environment."},{title:"Open Source",description:"Jenkins is open-source and completely free to use. You can modify, extend, and customize it according to your project needs."},{title:"Scalable",description:"Jenkins allows you to scale by distributing work across multiple machines, handling large and complex builds with ease."},{title:"Community Support",description:"Jenkins has a large, active community that contributes plugins, extensions, and improvements, ensuring that the platform remains up-to-date and well-supported."}],features:[{title:"Continuous Integration and Continuous Delivery (CI/CD)",description:"Jenkins provides robust CI/CD pipelines, enabling you to automate the testing, building, and deployment of your software with ease."},{title:"Pipeline as Code",description:"Jenkins offers Pipeline as Code functionality, allowing you to define your build processes and workflows as code using a simple DSL syntax."},{title:"Extensible via Plugins",description:"Jenkins supports thousands of plugins that enable integration with various tools, like Docker, Kubernetes, Git, and more, enhancing its functionality."},{title:"Distributed Builds",description:"Jenkins supports distributed builds, allowing you to distribute work across multiple machines to speed up your build processes and handle large workloads."},{title:"Monitoring and Alerts",description:"Jenkins provides monitoring and alerting features, allowing you to track your builds, tests, and deployments, and get notified of any issues in real-time."}],tags:["Automation","CI/CD","DevOps","Jenkins"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"jenkins_home",mountPath:"/var/jenkins_home"},{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"jetlog",meta:{name:"Jetlog",description:"Jetlog is a self-hostable personal flight tracker and viewer. It provides a world map view of all your flights, detailed statistics, and a clean responsive interface for adding, editing, and deleting flight records. It supports secure authentication with multiple users, data import from MyFlightRadar24 and custom CSV files, and data export to CSV or iCal. Jetlog optionally integrates with external APIs for automatic flight data fetching from a flight number.",instructions:'After deployment, log in with the default username and password "admin". Change your password immediately after the first login.',changeLog:[{date:"2026-06-29",description:"first release"}],links:[{label:"Github",url:"https://github.com/pbogre/jetlog"},{label:"Documentation",url:"https://github.com/pbogre/jetlog/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jetlog"},appServiceImage:{type:"string",title:"App Service Image",default:"pbogre/jetlog:1.2"}}},benefits:[{title:"Personal Flight Tracker",description:"Keep a detailed log of every flight you have taken in one place. Add, edit, and delete records at any time with a simple, intuitive interface."},{title:"World Map Visualization",description:"See all your flights plotted on an interactive world map, giving you a clear picture of your travel history at a glance."},{title:"Detailed Statistics",description:"Gain insights into your travel habits with aggregated statistics covering total distance, number of flights, airports visited, and more."}],features:[{title:"Secure Multi-User Authentication",description:"Protect your data with built-in authentication. Jetlog supports multiple user accounts so everyone in your household can track their own flights."},{title:"Import and Export",description:"Import flight history from MyFlightRadar24 or a custom CSV file. Export your data back to CSV or iCal format for use in other tools."},{title:"Responsive Design",description:"The interface adapts to any screen size, making it easy to log flights from a desktop browser or a mobile device."},{title:"Optional External API Integration",description:"Automatically fetch flight details from a flight number using the adsbdb API. Disable external calls at any time via an environment variable for maximum privacy."}],tags:["Travel","Productivity","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["JETLOG_PORT=3000","SECRET_KEY=".concat(y(32))].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"jirafeau",meta:{name:"Jirafeau",description:"Jirafeau is an open-source software designed for simple and efficient file sharing. It operates on a 'one-click-filesharing' principle, where you select your file, upload it, and share a link. The app allows you to send large files without any size limit, thanks to the HTML5 file API. It also provides a real-time progress report, showing speed, percentage, and remaining upload time. Jirafeau offers optional password protection for both uploading and downloading, and you can set an expiration time for downloads. The app also has a self-destruct feature, which deletes the file after the first download. It uses base 64 encoding to shorten URLs and allows for maximal upload size configuration. Jirafeau also features optional data encryption and a small administration interface.",instructions:null,changeLog:[{date:"2022-11-22",description:"first release"}],links:[{label:"Github",url:"https://gitlab.com/mojo42/Jirafeau"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jirafeau"},appServiceImage:{type:"string",title:"App Service Image",default:"jgeusebroek/jirafeau:20221008"}}},benefits:[{title:"Effortless File Sharing",description:"Jirafeau makes file sharing a breeze. With just a few clicks, you can upload and share your files. No need for complex setups or configurations."},{title:"Secure and Private",description:"Your files are safe with Jirafeau. The app offers optional password protection for both uploading and downloading files, ensuring your data remains secure."},{title:"Control Over Your Files",description:"Jirafeau gives you control over your shared files. You can set expiration times for downloads and even opt for files to self-destruct after the first download."}],features:[{title:"One-Click File Sharing",description:"Jirafeau simplifies file sharing. Simply select your file, upload it, and share the link. It's as easy as 1-2-3."},{title:"Large File Support",description:"With Jirafeau, you can send large files without worrying about size limits. Thanks to the HTML5 file API, the PHP post_max_size limit is not relevant."},{title:"Progress Tracking",description:"Jirafeau shows the progress of your file upload, including speed, percentage, and remaining upload time."},{title:"Content Preview",description:"Jirafeau allows you to preview content in your browser, if possible, before downloading."},{title:"File Deduplication",description:"Jirafeau optimizes storage by not storing duplicate files. Instead, it generates multiple links for the same file."},{title:"Optional Data Encryption",description:"For added security, Jirafeau offers optional data encryption. The decryption key is sent to the user and not stored on the server."}],tags:["File Management","Data Science"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"config",mountPath:"/cfg"},{type:"volume",name:"files",mountPath:"/jirafeau"}]}}),{services:t}}},{slug:"joomla",meta:{name:"Joomla",description:"Joomla is a powerful, open-source content management system (CMS) that allows users to build dynamic websites and applications. It offers a user-friendly interface, extensive customization options through templates and extensions, and robust security features. Joomla is highly scalable and supports multilingual content, making it a versatile choice for businesses, organizations, and personal websites. The application is accessible via your host on standard web ports and is easy to deploy using containers.",instructions:"Complete the Installation Wizard.",changeLog:[{date:"2025-01-31",description:"Template Release"},{date:"2025-12-25",description:"Version bumped to 5.4.1"},{date:"2026-02-21",description:"Version bumped to 5.4.3"},{date:"2026-05-04",description:"Version bumped to 6.1.0"}],links:[{label:"Documentation",url:"https://docs.joomla.org"},{label:"Github",url:"https://github.com/joomla/joomla-cms"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"joomla"},appServiceImage:{type:"string",title:"App Service Image",default:"joomla:6.1.0"}}},benefits:[{title:"Flexible and Scalable CMS",description:"Joomla provides a powerful and flexible content management system that can scale from simple websites to complex enterprise applications."},{title:"Extensive Customization",description:"With thousands of extensions and templates available, Joomla allows you to customize your website to meet your needs."},{title:"Strong Community Support",description:"Backed by a large and active community, Joomla offers extensive documentation, forums, and developer resources."}],features:[{title:"User Management",description:"Joomla offers advanced user management with multiple access levels and permissions for different roles."},{title:"Multilingual Support",description:"Joomla supports multilingual content out of the box, making it an ideal choice for global websites."},{title:"Built-in SEO Features",description:"Joomla provides search engine optimization (SEO) tools to help improve your site's visibility and rankings."},{title:"Extensions and Plugins",description:"Extend Joomla\u2019s functionality with thousands of extensions available in the Joomla Extensions Directory (JED)."},{title:"Security and Performance",description:"Joomla includes built-in security measures, regular updates, and caching mechanisms to ensure optimal performance."}],tags:["CMS","Website Builder","Open-Source"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["JOOMLA_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"JOOMLA_DB_USER=mysql","JOOMLA_DB_PASSWORD=".concat(a),"JOOMLA_DB_NAME=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"joomla",mountPath:"/var/www/html"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"joplin",meta:{name:"Joplin",description:"Joplin is an open-source note-taking application that allows you to capture your thoughts and access them securely from any device. It supports multimedia notes, including images, videos, PDFs, and audio files, and even allows the creation of math expressions and diagrams. With Joplin Cloud, you can share your notes and collaborate with others. The app also features a web clipper extension for saving web pages or screenshots as notes. Joplin can be customized with plugins, themes, and multiple text editors, and it synchronizes with various services, including Joplin Cloud, Dropbox, and OneDrive. All notes are saved in an open format and secured with end-to-end encryption.",instructions:"Default login email: admin@localhost, password: admin",changeLog:[{date:"2023-03-16",description:"First Release"},{date:"2024-10-11",description:"Second Release version updated to 3.0.1-beta"},{date:"2025-02-28",description:"Version bumped to 3.3.3-beta"},{date:"2025-07-22",description:"Version bumped to 3.4.1"},{date:"2025-12-25",description:"Version bumped to 3.5.2"},{date:"2026-05-08",description:"Version bumped to 3.6.1"}],links:[{label:"Website",url:"https://joplinapp.org/"},{label:"Github",url:"https://github.com/laurent22/joplin/"},{label:"Docker",url:"https://hub.docker.com/r/joplin/server"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"joplin"},appServiceImage:{type:"string",title:"App Service Image",default:"joplin/server:3.6.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"joplin-db"}}},benefits:[{title:"Multimedia Notes",description:"Joplin supports images, videos, PDFs, and audio files. You can create math expressions and diagrams directly from the app, and take photos with the mobile app to save them to a note."},{title:"Collaboration",description:"With Joplin Cloud, you can share your notes with friends, family, or colleagues and collaborate on them. You can also publish a note to the internet and share the URL with others."},{title:"Web Clipping",description:"Joplin provides a web clipper extension, available on Chrome and Firefox, to save web pages or take screenshots as notes."},{title:"Customization",description:"Joplin allows customization with plugins, custom themes, and multiple text editors (Rich Text or Markdown). You can also create your own scripts and plugins using the Extension API."},{title:"Accessibility",description:"Joplin ensures your notes are accessible from any device by synchronizing with various services, including Joplin Cloud, Dropbox, and OneDrive. The app is available on Windows, macOS, Linux, Android, and iOS. A terminal app is also available."},{title:"Data Ownership",description:"Joplin is open source and saves your notes to an open format, ensuring you always have access to them. It uses End-To-End Encryption (E2EE) to secure your notes and ensure only you can access them."}],features:[{title:"Note-Taking",description:"Joplin allows you to create and manage notes, to-do lists, and reminders across all your devices."},{title:"Multimedia Support",description:"Joplin supports the inclusion of images, videos, PDFs, and audio files in your notes."},{title:"Math Expressions and Diagrams",description:"You can create math expressions and diagrams directly within the app."},{title:"Collaboration",description:"Joplin Cloud allows you to share your notes and collaborate with others."},{title:"Web Clipping",description:"Joplin provides a web clipper extension for Chrome and Firefox to save web pages or screenshots as notes."},{title:"Customization",description:"Joplin supports plugins, custom themes, and multiple text editors for customization."},{title:"Synchronization",description:"Joplin syncs your notes across devices using various services, including Joplin Cloud, Dropbox, and OneDrive."},{title:"End-To-End Encryption",description:"Joplin uses End-To-End Encryption to secure your notes."}],tags:["Notes","Productivity","Developer Tools","Documentation"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["APP_BASE_URL=https://$(PRIMARY_DOMAIN)","APP_PORT=80","DB_CLIENT=pg","POSTGRES_PASSWORD=".concat(a),"POSTGRES_DATABASE=$(PROJECT_NAME)","POSTGRES_USER=postgres","POSTGRES_PORT=5432","POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName)].join("\n")}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"journiv",meta:{name:"Journiv",description:"Journiv is a self-hosted journaling and note-taking application designed for personal reflection and documentation. The application provides a secure, private platform for writing and organizing your thoughts, experiences, and memories. Built with a modern web interface, Journiv offers features for creating journal entries, organizing content with tags and categories, and searching through your journal history. The application uses SQLite for lightweight data storage, Redis for caching and background task processing, and Celery for asynchronous operations. With supp
1ort for rich text editing, file attachments, and export capabilities, Journiv helps you maintain a comprehensive digital journal. The platform prioritizes privacy and data ownership, ensuring all your journal entries remain on your own infrastructure. Perfect for individuals who want a private journaling solution, writers maintaining personal writing projects, users seeking a self-hosted alternative to cloud-based note-taking services, or anyone who values complete control over their personal reflections and memories.",instructions:null,changeLog:[{date:"2025-12-16",description:"Template Release"},{date:"2026-05-08",description:"Version bumped to 0.1.0-beta.22"}],links:[{label:"Website",url:"https://journiv.com"},{label:"Docker Hub",url:"https://hub.docker.com/r/swalabtech/journiv-app"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"journiv"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"swalabtech/journiv-app:0.1.0-beta.22"}}},benefits:[{title:"Private Journaling",description:"Keep your personal thoughts and reflections completely private on your own infrastructure without cloud storage concerns."},{title:"Rich Text Editing",description:"Create detailed journal entries with rich text formatting, images, and attachments for comprehensive documentation."},{title:"Search & Organization",description:"Find entries quickly with powerful search capabilities and organize content with tags and categories."},{title:"Self-Hosted Control",description:"Complete ownership of your journal data with no reliance on third-party services or cloud providers."}],features:[{title:"Journal Entries",description:"Create, edit, and manage journal entries with rich text support for detailed personal documentation."},{title:"Tagging System",description:"Organize entries with tags and categories for easy navigation and content discovery."},{title:"Search Functionality",description:"Powerful search capabilities to quickly find specific entries or topics across your entire journal."},{title:"File Attachments",description:"Attach images, documents, and other files to journal entries for complete context."},{title:"Export Capabilities",description:"Export your journal entries in various formats for backup or migration purposes."},{title:"Background Processing",description:"Celery worker handles background tasks and asynchronous operations for improved performance."},{title:"Redis Caching",description:"Redis integration provides fast caching and task queue management for responsive user experience."},{title:"SQLite Storage",description:"Lightweight SQLite database for simple deployment without requiring external database services."}],tags:["Journal","Note Taking","Writing","Self-Hosted","Personal"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v()+v()+v(),i=v();return t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),source:{type:"image",image:e.appServiceImage},deploy:{command:"/opt/venv/bin/python -m celery -A app.core.celery_app worker --loglevel=info"},env:["SERVICE_ROLE=celery-worker","ENVIRONMENT=production","SECRET_KEY=".concat(a),"DOMAIN_NAME=$(PROJECT_NAME)-".concat(e.appServiceName,".$(EASYPANEL_HOST)"),"REDIS_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0"),"CELERY_BROKER_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0"),"CELERY_RESULT_BACKEND=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0")].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["SERVICE_ROLE=app","ENVIRONMENT=production","SECRET_KEY=".concat(a),"DOMAIN_NAME=$(PRIMARY_DOMAIN)","REDIS_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0"),"CELERY_BROKER_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0"),"CELERY_RESULT_BACKEND=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/0"),"RATE_LIMIT_STORAGE_URI=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/1")].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"jsreport",meta:{name:"JSReport",description:"JSReport is an open-source reporting platform designed for developers to generate, manage, and customize reports using JavaScript. It provides a powerful templating engine, flexible rendering, and a web-based studio for designing reports. JSReport supports multiple output formats, including PDF, Excel, HTML, and more, making it ideal for businesses and applications that require automated document generation. It can be self-hosted and integrated with various databases and applications for seamless reporting.",instructions:null,changeLog:[{date:"2025-02-04",description:"First release"},{date:"2025-02-28",description:"Version bumped to 4.7.0"},{date:"2025-07-22",description:"Version bumped to 4.9.0"},{date:"2026-02-21",description:"Version bumped to 4.12.0"},{date:"2026-05-08",description:"Version bumped to 4.13.0"}],links:[{label:"Website",url:"https://jsreport.net/"},{label:"Documentation",url:"https://jsreport.net/learn"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jsreport"},appServiceImage:{type:"string",title:"App Service Image",default:"jsreport/jsreport:4.13.0"},username:{type:"string",title:"App Service Username",default:"admin"},password:{type:"string",title:"App Service Password",default:"admin"}}},benefits:[{title:"Customizable Reporting",description:"JSReport allows users to create fully customizable reports using JavaScript and templating engines like Handlebars, Pug, and EJS."},{title:"Self-Hosted & Secure",description:"JSReport can be self-hosted, giving users complete control over their report generation, ensuring data privacy and security."},{title:"Multiple Output Formats",description:"Generate reports in various formats, including PDF, Excel, HTML, and images, to fit different business needs."},{title:"Integration with Databases & APIs",description:"JSReport supports seamless integration with databases and APIs, making it easy to generate reports from structured data sources."}],features:[{title:"Web-Based Report Designer",description:"JSReport includes a web-based studio that allows users to design, preview, and customize reports in real time."},{title:"API for Automated Report Generation",description:"A powerful API enables developers to generate reports programmatically and integrate them into applications."},{title:"Scheduling & Automation",description:"Users can schedule and automate report generation at predefined intervals, improving efficiency and workflow."},{title:"Template Inheritance & Versioning",description:"JSReport supports template inheritance and versioning, allowing users to manage different report structures efficiently."},{title:"Extensible with Plugins",description:"The platform supports various plugins to extend functionalities such as authentication, file storage, and additional formatting options."}],tags:["Reporting","PDF Generation","Data Visualization","Business Intelligence","Self-Hosting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["extensions_authentication_admin_username=".concat(e.username),"extensions_authentication_admin_password=".concat(e.password),"extensions_authentication_cookieSession_secret=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:5488}]}}),{services:t}}},{slug:"jumpserver",meta:{name:"JumpServer",description:"JumpServer is an open-source, enterprise-grade bastion host and privileged access management (PAM) solution. It provides secure access to servers, databases, and other IT resources through a web-based interface. JumpServer supports multiple authentication methods, session recording, command auditing, and fine-grained access control. It's designed to help organizations manage and monitor privileged access to critical infrastructure while maintaining security compliance and audit trails.",instructions:"Login using the default admin credentials; admin/ChangeMe.",changeLog:[{date:"2025-09-06",description:"Initial Template Release (v4.10.7)"},{date:"2025-12-25",description:"Version bumped to v4.10.12"},{date:"2026-02-21",description:"Version bumped to v4.10.15"},{date:"2026-05-04",description:"Version bumped to v4.10.16"}],links:[{label:"GitHub",url:"https://github.com/jumpserver/jumpserver"},{label:"Documentation",url:"https://docs.jumpserver.org/"},{label:"Docker Hub",url:"https://hub.docker.com/r/jumpserver/jms_all"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jumpserver"},appServiceImage:{type:"string",title:"App Service Image",default:"jumpserver/jms_all:v4.10.16",description:"JumpServer Docker image"}}},benefits:[{title:"Privileged Access Management",description:"Centralized management of privileged access to servers, databases, and other IT resources with comprehensive audit trails and access controls."},{title:"Session Recording",description:"Complete session recording and playback capabilities for security auditing and compliance requirements."},{title:"Multi-Protocol Support",description:"Support for SSH, RDP, VNC, and other protocols with a unified web-based interface for all connections."},{title:"Enterprise Security",description:"Enterprise-grade security features including MFA, RBAC, and integration with LDAP/AD for user management."}],features:[{title:"Web-Based Interface",description:"Modern, responsive web interface for managing users, assets, and access policies without requiring client software installation."},{title:"Command Auditing",description:"Detailed command auditing and logging for all privileged operations with searchable command history and real-time monitoring."},{title:"Asset Management",description:"Comprehensive asset management for servers, databases, and network devices with automated discovery and inventory capabilities."},{title:"User Management",description:"Flexible user management with support for local users, LDAP/AD integration, and role-based access control (RBAC)."},{title:"Session Management",description:"Advanced session management with real-time monitoring, session sharing, and automatic session termination capabilities."},{title:"Compliance & Reporting",description:"Built-in compliance reporting and audit capabilities to meet regulatory requirements and security standards."}],tags:["Bastion Host","PAM","Privileged Access Management","Security","SSH","RDP","Session Recording","Audit","Compliance","Access Control","Web Interface","Enterprise"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v(),n=y(32),r=y(32);return t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),password:a,rootPassword:i}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["SECRET_KEY=".concat(n),"BOOTSTRAP_TOKEN=".concat(r),"DB_ENGINE=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"DB_PORT=3306","DB_USER=mysql","DB_PASSWORD=".concat(a),"DB_NAME=$(PROJECT_NAME)","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_PASSWORD=".concat(o),"SERVER_NAME=
1https://$(PRIMARY_DOMAIN)","CSRF_TRUSTED_ORIGINS=https://$(PRIMARY_DOMAIN)","DOMAINS=$(PRIMARY_DOMAIN)"].join("\n"),mounts:[{type:"volume",name:"jumpserver-data",mountPath:"/opt/jumpserver/data"}]}}),{services:t}}},{slug:"jupyter-notebook",meta:{name:"JupyterNotebook",description:"Jupyter Notebook is a popular, free, and open-source web application that allows you to create and share documents containing live code, equations, visualizations, and narrative text. It supports numerous programming languages and is widely used for data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more. The app is designed to be accessed via your web browser, providing an interactive interface for easy development and experimentation. It supports hardware acceleration for enhanced performance in computational tasks. The app is compatible with multiple architectures, ensuring it can run on various systems.",instructions:'Run "jupyter server list" in the console of the service and copy the token. Then either login with the token or create a password using that.',changeLog:[{date:"2024-01-06",description:"First release"}],links:[{label:"Documentation",url:"https://jupyter-notebook.readthedocs.io/en/stable/"},{label:"Github",url:"https://github.com/jupyter/notebook"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"jupyternotebook"},appServiceImage:{type:"string",title:"App Service Image",oneOf:[{enum:["jupyter/docker-stacks-foundation"],title:"Docker Stacks Foundation"},{enum:["jupyter/base-notebook"],title:"Base Notebook"},{enum:["jupyter/minimal-notebook"],title:"Minimal Notebook"},{enum:["jupyter/r-notebook"],title:"R Notebook"},{enum:["jupyter/julia-notebook"],title:"Julia Notebook"},{enum:["jupyter/scipy-notebook"],title:"SciPy Notebook"},{enum:["jupyter/tensorflow-notebook"],title:"TensorFlow Notebook"},{enum:["jupyter/pytorch-notebook"],title:"PyTorch Notebook"},{enum:["jupyter/datascience-notebook"],title:"Data Science Notebook"},{enum:["jupyter/pyspark-notebook"],title:"PySpark Notebook"},{enum:["jupyter/all-spark-notebook"],title:"All Spark Notebook"}]}}},benefits:[{title:"Interactive Computing",description:"Jupyter Notebook provides an interactive environment where users can write and execute code in real time, view outputs immediately, and iterate quickly."},{title:"Multi-Language Support",description:"Jupyter Notebook supports numerous programming languages through its extensible kernel architecture, including Python, R, Julia, and more."},{title:"Visualizations and Sharing",description:"Create rich visualizations and share notebooks easily with others, promoting collaboration and reproducibility."}],features:[{title:"Open Source",description:"Jupyter Notebook is free and open-source software. This allows users to freely use, modify, and distribute it."},{title:"Web-Based Access",description:"Access the application via your web browser, making it easy to use on any device without additional installations."},{title:"Customizable Environment",description:"Configure the environment to suit your workflow by using a range of optional environment variables and settings."},{title:"Docker Integration",description:"Jupyter Notebook works seamlessly with Docker, enabling rapid deployment and ensuring a consistent development environment."}],tags:["Data Science","Machine Learning","Visualization","Statistical Modeling","Numerical Simulation","Interactive Computing","Data Analysis"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"work",mountPath:"/home/jovyan/work"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8888}]}}),{services:t}}},{slug:"kan",meta:{name:"Kan",description:"Kan is a self-hosted Kanban app (Trello-style) built with Next.js, tRPC, Better Auth, and PostgreSQL. It supports boards, workspaces, labels, comments, Trello import, and optional email, Redis, S3, and OAuth. The published web container does not apply database migrations on startup; upstream expects a separate migrate image (Drizzle) to run before the web process, matching their Docker Compose stack.",instructions:"Deploy order matches upstream: Postgres \u2192 migrate (kan-migrate, runs\n`drizzle-kit migrate` once) \u2192 web. If the web app errors on first boot,\nwait for the migrate service to finish successfully, then restart the web service.\nSecrets: BETTER_AUTH_SECRET is generated for you; keep it stable across\nrestarts. Auth: With defaults, use sign-up on the login page unless you set\nNEXT_PUBLIC_DISABLE_SIGN_UP in env (see docs). Optional: Redis, SMTP, S3, and\nOAuth env vars are documented upstream.\n",changeLog:[{date:"2025-09-30",description:"First release"},{date:"2026-03-20",description:"Website/docs links, setup instructions, kan-migrate service parity, BETTER_AUTH_SECRET via randomBytes, note stateless web (no app volumes)"}],links:[{label:"Website",url:"https://kan.bn"},{label:"Documentation",url:"https://docs.kan.bn/"},{label:"GitHub",url:"https://github.com/kanbn/kan"},{label:"Container registry (GHCR)",url:"https://github.com/kanbn/kan/pkgs/container/kan"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","migrateServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kan-web"},appServiceImage:{type:"string",title:"Web Image",default:"ghcr.io/kanbn/kan:0.5.6",description:"Kan web application (Next.js). Pin to the same release family as migrate."},migrateServiceImage:{type:"string",title:"Migrate Image",default:"ghcr.io/kanbn/kan-migrate:0.5.6",description:"One-shot Drizzle migrations; must match your web image version. See https://github.com/kanbn/kan/pkgs/container/kan-migrate for tags."}}},benefits:[{title:"Modern Kanban",description:"Familiar boards, lists, and cards with a clean web UI and team features."},{title:"Self-hosted",description:"Your data stays on your infrastructure with PostgreSQL you control."},{title:"Auth-ready",description:"Email/password via Better Auth; extend with OAuth and OIDC using env vars."}],features:[{title:"Boards & workspaces",description:"Organize work with visibility controls, members, and activity history."},{title:"Imports & metadata",description:"Trello import, labels, filters, comments, and templates."},{title:"Database migrations",description:"Dedicated migrate container aligns with official Docker Compose before web starts."},{title:"Optional integrations",description:"Redis rate limiting, SMTP, S3 uploads, and social login when configured."}],tags:["Project Management","Kanban","Task Tracking","Self-hosted","Next.js","PostgreSQL","Team Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o="postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)");return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-migrate"),source:{type:"image",image:e.migrateServiceImage},env:["POSTGRES_URL=".concat(o)].join("\n")}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["NEXT_PUBLIC_BASE_URL=https://$(PRIMARY_DOMAIN)","BETTER_AUTH_SECRET=".concat(i),"POSTGRES_URL=".concat(o),"NEXT_PUBLIC_ALLOW_CREDENTIALS=true"].join("\n")}}),{services:t}}},{slug:"kanboard",meta:{name:"Kanboard",description:"Kanboard is a free and open-source project management software that utilizes the Kanban methodology. It provides a visual and clear overview of your tasks, allowing you to easily manage your projects by dragging and dropping tasks between columns. The app is designed with simplicity and minimalism in mind, limiting the number of features to maintain focus on your work. It also includes a search and filter function, enabling you to quickly find tasks using a simple query language. Tasks can be broken down into sub-tasks, with the ability to add comments, documents, and change various aspects such as color, category, assignee, and due date. Kanboard also offers automated actions to streamline your workflow, eliminating the need for repetitive manual tasks. It supports multiple authentication backends and is translated in over 30 languages.",instructions:"Default login username: admin, password: admin",changeLog:[{date:"2022-08-16",description:"first release"},{date:"2025-07-22",description:"Version bumped to v1.2.46"},{date:"2025-12-25",description:"Version bumped to v1.2.48"},{date:"2026-02-21",description:"Version bumped to v1.2.50"},{date:"2026-05-04",description:"Version bumped to v1.2.52"}],links:[{label:"Website",url:"https://kanboard.org/"},{label:"Documentation",url:"https://docs.kanboard.org/en/latest/"},{label:"Github",url:"https://github.com/kanboard/kanboard"}],contributors:[{name:"Bedeoan Raul",url:"https://github.com/bedeoan"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kanboard"},appServiceImage:{type:"string",title:"App Service Image",default:"kanboard/kanboard:v1.2.52"}}},benefits:[{title:"Visualize Your Work",description:"Kanboard allows you to visualize your work in a clear and concise manner. It helps you to limit your work in progress and focus on your goal. The Kanban board provides a visual and clear overview of your tasks, making it easy to understand the current status of a project."},{title:"Efficient Task Management",description:"With Kanboard, you can easily manage your project by dragging and dropping tasks. You can add, rename, and remove columns at any time to adapt the board to your project. It also allows you to limit your work in progress to be more efficient and avoid multitasking."},{title:"Automate Your Workflow",description:"Kanboard offers automated actions to streamline your workflow. It allows you to automate repetitive tasks such as changing the assignee, colors, categories, and more based on events. This feature helps to save time and increase productivity."}],features:[{title:"Task Breakdown",description:"Kanboard allows you to break down a task into sub-tasks, estimate the time or complexity, and describe your task using Markdown syntax. You can add comments, documents, change the color, the category, the assignee, and the due date."},{title:"Search and Filter Tasks",description:"Kanboard has a simple query language that offers the flexibility to find tasks quickly. You can dynamically apply custom filters on the board to find what you need. Search by assignees, description, categories, due date, and more."},{title:"Task Duplication and Movement",description:"With Kanboard, you can move or duplicate your tasks across projects with just one click. This feature provides flexibility and ease in managing tasks across different projects."},{title:"Multilingual Support",description:"Kanboard supports multiple languages, making it accessible to users around the globe. It is translated in over 30 languages including Bahasa Indonesia, Bosnian, Brazilian Portuguese, Chinese, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Malay, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Spanish, Swedish, Thai, Turkish, Vietnamese."},{title:"Multiple Authentication Backends",description:"Kanboard can be connected to your LDAP/Active Directory server or use any OAuth2 provider such as Google, GitHub, GitLab, etc. This feature ensures secure and flexible authentication."}],tags:["Project Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/var/www/app/data"},{type:"volume",name:"plugins",mountPath:"/var/www/app/plugins"},{type:"volume",name:"ssl",mountPath:"/etc/nginx/ssl"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"kapowarr",meta:{name:"Kapowarr",description:"Kapowarr is a comic book management system that helps you organize and manage your digital comic collection. It provides a user-friendly interface for browsing, reading, and managing your comics.",instructions:"Open Kapowarr on the given domain, then go to settings and confirm your library path points to `/comics-1` and your temporary download path points to `/app/temp_downloads`. Add your series and import existing files into the library, then configure metadata and download preferences from the web UI.",changeLog:[{date:"2025-04-29",description:"First Release"},{date:"2026-05-08",description:"Version bumped to v1.3.1"}],links:[{label:"Github",url:"https://github.com/Casvt/Kapowarr"},{label:"Documentation",url:"https://casvt.github.io/Kapowarr/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kapowarr"},appServiceImage:{type:"string",title:"App Service Image",default:"mrcas/kapowarr:v1.3.1"}}},benefits:[{title:"Comic Book Management",description:"Kapowarr provides a comprehensive solution for managing your digital comic collection with an intuitive interface."},{title:"Easy Organization",description:"Organize your comics with metadata, covers, and series information for a better reading experience."},{title:"User-Friendly",description:"Simple and intuitive interface makes it easy to browse and read your comics."}],features:[{title:"Comic Management",description:"Organize and manage your comic collection with metadata and covers."},{title:"Reading Interface",description:"Built-in comic reader with support for various formats."},{title:"Metadata Support",description:"Automatic metadata fetching and management for your comics."},{title:"Series Organization",description:"Organize comics by series, volumes, and issues."},{title:"Custom Libraries",description:"Create and manage multiple comic libraries."},{title:"Containerized",description:"Easy to deploy and manage in containerized environments."}],tags:["Comics","Manga","Digital Library","Reading","Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5656}],mounts:[{type:"volume",name:"kapowarr-db",mountPath:"/app/db"},{type:"volume",name:"kapowarr-downloads",mountPath:"/app/temp_downloads"},{type:"volume",name:"kapowarr-comics",mountPath:"/comics-1"}]}}),{services:t}}},{slug:"karakeep",meta:{name:"Karakeep",description:"Knowledge management system that helps you collect, search, and retrieve information efficiently.",instructions:"Please provide the OpenAI API Key and Sign Up for the user account.",changeLog:[{date:"2025-05-26",description:"First release"},{date:"2025-12-25",description:"Version bumped to 0.29.3"},{date:"2026-02-21",description:"Version bumped to 0.30.0"},{date:"2026-05-08",description:"Version bumped to 0.31.0"}],links:[{label:"Website",url:"https://karakeep.app"},{label:"Documentation",url:"https://docs.karakeep.app"},{label:"Github",url:"https://github.com/karakeep-app/karakeep"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","meilSearchImage","chromeImage","openaiApiKey"],properties:{appServiceName:{type:"string",title:"Service Name",default:"karakeep"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/karakeep-app/karakeep:0.31.0"},chromeImage:{type:"string",title:"Chrome Image",default:"gcr.io/zenika-hub/alpine-chrome:123"},meilSearchImage:{type:"string",title:"Meilisearch Image",default:"getmeili/meilisearch:v1.15.2"},openaiApiKey:{type:"string",title:"OpenAI API Key",default:""}}},benefits:[{title:"Efficient Knowledge Management",description:"Easily collect, organize, and retrieve your information in one centralized place."},{title:"Powerful Search",description:"Advanced search capabilities with Meilisearch integration for fast and accurate results."},{title:"Web Scraping Capabilities",description:"Built-in Chrome browser integration for capturing content from the web."}],features:[{title:"Document Management",description:"Store and organize documents, notes, and web content."},{title:"Full-Text Search",description:"Find content quickly with powerful search capabilities."},{title:"Web Scraping",description:"Capture and save content directly from websites."},{title:"OpenAI Integration",description:"Optional AI capabilities with OpenAI API integration."}],tags:["Knowledge Management","Search","Web Scraping","Organization"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:["MEILI_ADDR=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-meilisearch:7700"),"BROWSER_WEB_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-chrome:9222"),"DATA_DIR=/data","OPENAI_API_KEY=".concat(e.openaiApiKey),"NEXTAUTH_SECRET=".concat(a),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-chrome"),source:{type:"image",image:e.chromeImage},deploy:{command:"chromium-browser --headless --no-sandbox --disable-gpu --disable-dev-shm-usage --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --hide-scrollbars"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-meilisearch"),env:["MEILI_NO_ANALYTICS=true"].join("\n"),source:{type:"image",image:e.meilSearchImage},mounts:[{type:"volume",name:"meilisearch",mountPath:"/meili_data"}]}}),{services:t}}},{slug:"kavita",meta:{name:"Kavita",description:"Kavita is a high-speed, sleekly designed, self-hosted digital library that supports a wide range of file formats. It allows you to quickly resume your reading from your homepage, browse your Manga, Comics, and Books, and search for your favorite manga with ease. Kavita also provides full support for all fields from ComicInfo.xml (and EPUB) for metadata filtering. It features built-in ratings and reviews for each Manga, integrated chapters and volumes, and user & library management. Kavita also includes a responsive Manga/Comic/Image Reader with impressive caching for a seamless reading experience, and a customizable Book reader. It also provides server and user stats, and premium features with a Kavita+ Subscription. Kavita supports a wide array of file formats for Manga/Comics, Books, and Raw Images. It also offers user management and sharing features, allowing you to create users and share your libraries with them. Kavita is fast, efficient, and responsive, offering full text search, grouping and organizing features, full metadata support and filtering ability, and cool stats for individual user accounts and your server.",instructions:"Register your user and make sure the Username does not contain spaces.",changeLog:[{date:"2022-12-21",description:"first release"},{date:"2024-10-16",description:"Previous repo has been archived, new repo and version updated jvmilazz0/kavita:0.8.3"},{date:"2025-02-28",description:"Version bumped to 0.8.4"},{date:"2025-07-22",description:"Version bumped to 0.8.7"},{date:"2025-12-25",description:"Version bumped to 0.8.8"},{date:"2026-02-21",description:"Version bumped to 0.8.9"},{date:"2026-05-04",description:"Version bumped to 0.9.0"}],links:[{label:"Website",url:"https://www.kavitareader.com/"},{label:"Documentation",url:"https://wiki.kavitareader.com/"},{label:"Github",url:"https://github.com/Kareadita/Kavita"}],contributors:[{name:"DrMxrcy",url:"https://github.com/DrMxrcy"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kavita"},appServiceImage:{type:"string",title:"App Service Image",default:"jvmilazz0/kavita:0.9.0"},serviceTimezone:{type:"string",title:"Timezone",default:"America/New_York"}}},benefits:[{title:"Efficient Digital Library",description:"Kavita is a self-hosted digital library that is lightning fast and supports a wide array of file formats. It allows you to easily read and share your server with friends."},{title:"Customizable Reading Experience",description:"Kavita offers a built-in book reader that allows you to customize your reading experience. Control font, spacing, margin, color theme, and navigate pages by tapping on the edges of the screen."},{title:"Rich User and Library Management",description:"Kavita provides user-based roles, authentication, and library management right from the app. It also offers built-in ratings and reviews per Manga."}],features:[{title:"Extensive File Support",description:"Kavita supports a wide range of file formats including ZIP, RAR, RAR5, CBR, CBZ, CB7, CBT, TAR.GZ, 7ZIP/7Z, EPUB2, EPUB3, PDF, JPG/JPEG, PNG, WebP, GIF, AVIF."},{title:"Built-in Manga/Comic/Image Reader",description:"Kavita comes with a responsive manga reader with impressive caching. It supports webtoon and double page reading modes, ensuring you never experience loading times when reading."},{title:"Server and User Stats",description:"Kavita provides interesting stats for your whole server or you as an individual. This feature helps you understand your reading habits and preferences better."},{title:"User Management and Sharing",description:"With Kavita, you can create users and share your libraries with them. It also allows you to grant users permissions to view libraries or see different mixed-media collections."}],tags:["Media","File Management"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=".concat(e.serviceTimezone)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],mounts:[{type:"volume",name:"config",mountPath:"/kavita/config"},{type:"volume",name:"manga",mountPath:"/manga"},{type:"volume",name:"comics",mountPath:"/comics"},{type:"volume",name:"books",mountPath:"/books"}]}}),{services:t}}},{slug:"keepassxc",meta:{name:"KeePassXC",description:"KeePassXC is a modern, secure, and open-source password manager that stores and manages your passwords in an encrypted database. It provides strong security features and cross-platform compatibility.",instructions:null,changeLog:[{date:"2025-04-09",description:"First Release"},{date:"2026-05-04",description:"Version bumped to 2.7.11"}],links:[{label:"Website",url:"https://keepassxc.org"},{label:"Documentation",url:"https://keepassxc.org/docs"},{label:"GitHub",url:"https://github.com/keepassxreboot/keepassxc"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"keepassxc"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/keepassxc:2.7.11"}}},benefits:[{title:"Security",description:"Strong encryption and security features"},{title:"Cross-Platform",description:"Works on Windows, macOS, and Linux"},{title:"Open Source",description:"Transparent and community-driven development"},{title:"Password Management",description:"Secure storage and management of passwords"}],features:[{title:"Strong Encryption",description:"AES-256 encryption for password databases"},{title:"Auto-Type",description:"Automatically fill in passwords"},{title:"Password Generator",description:"Create strong, random passwords"},{title:"Browser Integration",description:"Integrate with web browsers"},{title:"Two-Factor Authentication",description:"Support for 2FA and TOTP"}],tags:["Security","Password Manager","Encryption","Open Source","Cross-Platform"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"keeper",meta:{name:"Keeper",description:"Keeper is a simple and open-source calendar synchronization and booking tool that allows you to pull events from remotely hosted iCal or ICS links and push them to one or many calendars. Built with modern architecture using Next.js and Bun, Keeper provides a comprehensive solution for calendar management and synchronization. The standalone version includes all services (web, API, cron) in a single container, making it easy to deploy. Keeper supports multiple calendar providers including Google Calendar, iCloud, Outlook, CalDAV, and Fastmail. Perfect for individuals and organizations looking to synchronize calendars across different platforms with a self-hosted solution.",instructions:null,changeLog:[{date:"2025-01-22",description:"Initial Template Release"}],links:[{label:"Website",url:"https://keeper.sh"},{label:"GitHub",url:"https://github.com/ridafkih/keeper.sh"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"keeper"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/ridafkih/keeper-standalone:1.11.5"},betterAuthSecret:{type:"string",title:"Better Auth Secret",default:"",description:"Required secret key for Better Auth authentication. Auto-generated if empty for easy deployment."},encryptionKey:{type:"string",title:"Encryption Key",default:"",description:"Required encryption key for data encryption. Auto-generated if empty for easy deployment."},commercialMode:{type:"string",title:"Commercial Mode",default:"false",description:"Enable commercial mode features"},googleClientId:{type:"string",title:"Google Client ID",default:"",description:"Google OAuth Client ID (optional)"},googleClientSecret:{type:"string",title:"Google Client Secret",default:"",description:"Google OAuth Client Secret (optional)"},microsoftClientId:{type:"string",title:"Microsoft Client ID",default:"",description:"Microsoft OAuth Client ID (optional)"},microsoftClientSecret:{type:"string",title:"Microsoft Client Secret",default:"",description:"Microsoft OAuth Client Secret (optional)"}}},benefits:[{title:"Calendar Synchronization",description:"Synchronize events from multiple calendar sources (iCal, ICS links) and push them to one or many destination calendars seamlessly."},{title:"Self-Hosted Solution",description:"Keep your calendar data private and under your control with a self-hosted deployment."},{title:"Multiple Provider Support",description:"Support for Google Calendar, iCloud, Outlook, CalDAV, and Fastmail calendar providers for comprehensive calendar management."},{title:"Standalone Deployment",description:"All-in-one standalone image includes web, API, and cron services in a single container for easy deployment and management."}],features:[{title:"Calendar Sync",description:"Pull events from remotely hosted iCal or ICS links and synchronize them across multiple calendar destinations automatically."},{title:"Web-Based Interface",description:"Access and manage your calendar synchronizations through a modern web interface accessible on port 80."},{title:"Multiple Calendar Providers",description:"Support for Google Calendar, iCloud, Outlook, CalDAV, and Fastmail with OAuth authentication for seamless integration."},{title:"Automated Synchronization",description:"Background cron service automatically synchronizes calendars on a schedule to keep your events up to date."},{title:"PostgreSQL Storage",description:"Calendar data and synchronization configurations are stored in a dedicated PostgreSQL volume at /var/lib/postgresql/data for reliable persistence."},{title:"OAuth Integration",description:"Optional OAuth authentication with Google and Microsoft providers for secure calendar access and synchronization."},{title:"Encryption Support",description:"Built-in encryption support for securing calendar data and synchronization credentials."},{title:"Containerized Deployment",description:"Easily deploy Keeper in any environment that supports Docker with minimal configuration requirements."}],tags:["Calendar","Synchronization","Self-Hosted","iCal","ICS","Booking","Docker"],logo:"logo.png",screenshots:["screenshot.png","screenshot2.png"]},generate:function(e){var t=[],a=y(64),i=y(64),o=["BETTER_AUTH_SECRET=".concat(e.betterAuthSecret||a),"ENCRYPTION_KEY=".concat(e.encryptionKey||i),"TRUSTED_ORIGINS=https://$(PRIMARY_DOMAIN)","COMMERCIAL_MODE=".concat(e.commercialMode||"false")];return e.googleClientId&&o.push("GOOGLE_CLIENT_ID=".concat(e.googleClientId)),e.googleClientSecret&&o.push("GOOGLE_CLIENT_SECRET=".concat(e.googleClientSecret)),e.microsoftClientId&&o.push("MICROSOFT_CLIENT_ID=".concat(e.microsoftClientId)),e.microsoftClientSecret&&o.push("MICROSOFT_CLIENT_SECRET=".concat(e.microsoftClientSecret)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:o.join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/var/lib/postgresql/data"}]}}),{services:t}}},{slug:"keeweb",meta:{name:"KeeWeb",description:"KeeWeb is a modern, fast, and self-hosted password manager designed for individuals and team
1s. It provides a sleek, responsive user interface for managing and securing your passwords efficiently. KeeWeb supports importing and syncing password databases from various sources such as Dropbox, OneDrive, or local storage. It offers seamless offline access, powerful search capabilities, and advanced encryption to protect your sensitive data. KeeWeb ensures a consistent experience across desktop and web applications, with customization options to suit your preferences.",instructions:null,changeLog:[{date:"2024-01-07",description:"First Release"},{date:"2025-07-22",description:"Version bumped to 1.19.0-amd64"}],links:[{label:"Website",url:"https://keeweb.info/"},{label:"Documentation",url:"https://github.com/keeweb/keeweb/wiki"},{label:"Github",url:"https://github.com/keeweb/keeweb"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"keeweb"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/keeweb/keeweb:1.19.0-amd64"}}},benefits:[{title:"Secure Password Management",description:"KeeWeb offers end-to-end encryption to ensure that your passwords and sensitive data remain safe and secure, whether stored locally or in the cloud."},{title:"Cross-Platform Compatibility",description:"KeeWeb provides a consistent experience across web and desktop applications, allowing you to manage your passwords seamlessly on any device."},{title:"Easy Database Syncing",description:"KeeWeb supports synchronization with popular cloud storage services like Dropbox and OneDrive, ensuring your password database is always up-to-date."}],features:[{title:"Powerful Search Functionality",description:"KeeWeb includes a robust search feature to quickly locate and manage your saved passwords, making it efficient to access the information you need."},{title:"Offline Access",description:"KeeWeb allows you to access and manage your password database offline, providing uninterrupted service even without an internet connection."},{title:"Customizable User Interface",description:"KeeWeb offers a fully customizable interface, allowing users to tweak themes, layouts, and display preferences to match their needs."},{title:"Advanced Security Features",description:"KeeWeb includes advanced security settings like auto-lock, database keyfile support, and integration with hardware security keys for enhanced protection."}],tags:["Security","Password Management"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"keeweb_config",mountPath:"/config"}]}}),{services:t}}},{slug:"keila",meta:{name:"Keila",description:"Keila is a reliable and easy-to-use email newsletter tool that helps you grow your contact lists and send data-driven campaigns effortlessly. With Keila, you can import your existing contacts simply by uploading a CSV file. The app offers complete freedom to add custom data and tags to your contacts, which can be used to filter contacts and as merge fields in campaigns. Keila also features powerful segmentation, allowing you to create smart subsets of your contact lists. The app respects the privacy of your contacts and ensures that your data remains yours. Keila provides live statistics for your newsletters, including open and click rates, and allows you to integrate your email newsletter with other applications using its powerful API. Keila is proudly Open Source, made in Germany, and hosted in the EU, ensuring strict European privacy standards.",instructions:"Login with [email protected]:password123 - change this from the administraton panel",changeLog:[{date:"2023-3-3",description:"first release"},{date:"2025-02-28",description:"Version bumped to 0.16"},{date:"2025-07-22",description:"Version bumped to 0.17"},{date:"2026-02-21",description:"Version bumped to 0.18"},{date:"2026-05-08",description:"Version bumped to 0.20"}],links:[{label:"Website",url:"https://keila.io"},{label:"Documentation",url:"https://keila.io/docs"},{label:"Github",url:"https://github.com/pentacent/keila"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","username","password","emailFrom","emailHost","emailPort","emailUsername","emailPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"keila"},appServiceImage:{type:"string",title:"App Service Image",default:"pentacent/keila:0.20"},databaseServiceName:{type:"string",title:"Database Service Name",default:"keila-db"},username:{type:"string",title:"Username",default:"[email protected]"},password:{type:"string",title:"Password",default:"password123"},emailFrom:{type:"string",title:"System From Email"},emailHost:{type:"string",title:"SMTP Email Host"},emailPort:{type:"number",title:"SMTP Email Port",default:587},emailUsername:{type:"string",title:"SMTP Email Username"},emailPassword:{type:"string",title:"SMTP Email Password"}}},benefits:[{title:"Reliable & Easy Email Newsletters",description:"Keila allows you to grow your contact lists and send data-driven newsletter campaigns with ease. It's an open-source tool, made in Germany and hosted in the EU."},{title:"Import Existing Contacts",description:"Keila makes it easy to get started if you have a list of existing contacts. Simply upload a CSV file and you're ready to go."},{title:"Custom Data & Tags",description:"Keila provides complete freedom to add custom data and tags to your contacts. Use data to filter contacts and as merge fields in campaigns."},{title:"Powerful Segmentation",description:"Keila allows you to create smart subsets of your contact lists. Build segments with the visual segment editor or our powerful query language."},{title:"Built for Privacy",description:"Keila gives you the stats you need while respecting the privacy of your contacts. Your data is yours and will never be shared with third parties."},{title:"Live Statistics",description:"Keila provides live statistics for your newsletters, including open and click rates, as soon as you click Send."}],features:[{title:"Integrate & Automate",description:"Keila's powerful API allows you to integrate your email newsletter with other applications for managing contacts and email campaigns."},{title:"Open Source & Self-Hosting",description:"Keila is Free/Libre Open Source Software. You can run it on your own servers using the code on GitHub or our official Docker image."},{title:"Multi-Column Layouts",description:"Build multi-column layouts with Keila\u2019s Block Editor."},{title:"Hybrid Text & HTML Emails",description:"Compose hybrid text & HTML emails with Markdown."},{title:"Personalize Your Campaigns",description:"Personalize your campaigns with Liquid."},{title:"Various Email Sending Options",description:"Send emails with SMTP, AWS SES, Mailgun, Postmark, Sendgrid."},{title:"Create & Design Signup Forms",description:"Create & design your own signup forms."},{title:"Protect Against Spammers",description:"Protect your forms against spammers with hCaptcha."},{title:"One-Click Unsubscriptions",description:"Keila offers one-click unsubscriptions."},{title:"Click & Open Tracking",description:"Keila provides click & open tracking of campaigns."},{title:"Automatic Contact Quality Monitoring & Bounce Handling",description:"Keila offers automatic contact quality monitoring & bounce handling."},{title:"Powerful Segmentation and Custom Fields",description:"Keila provides powerful segmentation and custom fields."},{title:"Fully-Featured API",description:"Keila offers a fully-featured API for sending campaigns and syncing contacts."},{title:"Upload Images",description:"Keila allows you to upload images."}],tags:["Email"],logo:"logo.png",screenshots:["screenshot.png","screenshot1.png","screenshot2.png","screenshot3.png","screenshot4.png"]},generate:function(e){var t=[],a=y(512),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"DB_ENABLE_SSL=false","KEILA_USER=".concat(e.username),"KEILA_PASSWORD=".concat(e.password),"URL_HOST=$(PRIMARY_DOMAIN)","URL_SCHEMA=https","SECRET_KEY_BASE=".concat(a),"DISABLE_REGISTRATION=false","DISABLE_PRECEDENCE_HEADER=false","USER_CONTENT_DIR=/uploads","MAILER_SMTP_FROM_EMAIL=".concat(e.emailFrom),"MAILER_SMTP_HOST=".concat(e.emailHost),"MAILER_SMTP_PORT=".concat(e.emailPort),"MAILER_SMTP_USER=".concat(e.emailUsername),"MAILER_SMTP_PASSWORD=".concat(e.emailPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"kener",meta:{name:"Kener",description:"Kener is an advanced, self-hosted status page system designed for individuals and team
1s. It offers a sleek, responsive user interface for monitoring and communicating the status of your services efficiently. Kener supports real-time monitoring, incident management, and customizable status pages. With seamless offline access, powerful search capabilities, and robust encryption, Kener ensures your service status is transparent and secure. It provides a consistent experience across desktop and web applications, with customization options to suit your preferences.",instructions:null,changeLog:[{date:"2026-05-19",description:"Updated to v4.0.23"},{date:"2025-01-16",description:"First Release"},{date:"2025-07-22",description:"Version bumped to 3.2.18"},{date:"2025-11-03",description:"Added database type selection (SQLite, PostgreSQL, MySQL), volume mounts, timezone configuration, and Resend email integration support"}],links:[{label:"Website",url:"https://kener.ing/"},{label:"Documentation",url:"https://kener.ing/docs"},{label:"GitHub",url:"https://github.com/rajnandan1/kener"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kener"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/rajnandan1/kener:4.0.23"},redisServiceImage:{type:"string",title:"Redis Service Image",default:"redis:7"},databaseType:{type:"string",title:"Database Type",default:"sqlite",oneOf:[{enum:["sqlite"],title:"SQLite (Default)"},{enum:["postgres"],title:"PostgreSQL"},{enum:["mysql"],title:"MySQL"}]},timezone:{type:"string",title:"Timezone",default:"Etc/UTC"},resendApiKey:{type:"string",title:"Resend API Key (Optional)",default:""},resendSenderEmail:{type:"string",title:"Resend Sender Email (Optional)",default:""}}},benefits:[{title:"Real-Time Service Monitoring",description:"Kener provides real-time monitoring of your services, allowing you to track uptime and performance metrics effectively."},{title:"Incident Management",description:"Manage incidents efficiently with Kener's integrated incident reporting and tracking features, ensuring timely communication with your users."},{title:"Customizable Status Pages",description:"Create and customize status pages that reflect your brand, providing transparency and building trust with your audience."}],features:[{title:"Seamless Offline Access",description:"Access and manage your status pages offline, ensuring uninterrupted service even without an internet connection."},{title:"Powerful Search Functionality",description:"Quickly locate and manage your monitors and incidents with Kener's robust search capabilities."},{title:"Advanced Security Features",description:"Protect your data with advanced security settings, including end-to-end encryption and access controls."},{title:"Integration with GitHub",description:"Leverage GitHub integration for incident management, enabling collaborative issue tracking and resolution."}],tags:["Status Page","Monitoring","Incident Management","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v(),o=["TZ=".concat(e.timezone),"KENER_SECRET_KEY=".concat(a),"ORIGIN=https://$(PRIMARY_DOMAIN)","REDIS_URL=redis://$(PROJECT_NAME)_".concat(e.appServiceName,"-redis:6379")];return"postgres"===e.databaseType?o.push("DATABASE_URL=postgresql://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)")):"mysql"===e.databaseType&&o.push("DATABASE_URL=mysql://mysql:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:3306/$(PROJECT_NAME)")),e.resendApiKey&&o.push("RESEND_API_KEY=".concat(e.resendApiKey)),e.resendSenderEmail&&o.push("RESEND_SENDER_EMAIL=".concat(e.resendSenderEmail)),t.push({type:"app",data:{serviceName:e.appServiceName,env:o.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"database",mountPath:"/app/database"}]}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:v(),image:e.redisServiceImage}}),"postgres"===e.databaseType?t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i}}):"mysql"===e.databaseType&&t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i}}),{services:t}}},{slug:"keycloak",meta:{name:"Keycloak",description:"Keycloak is an open-source Identity and Access Management tool that adds authentication to applications and secures services with minimal effort. It eliminates the need for storing or authenticating users, providing user federation, robust authentication, user management, and fine-grained authorization. Keycloak offers a Single-Sign On feature, allowing users to authenticate with Keycloak rather than individual applications, ensuring a seamless login experience across multiple applications. It also supports social login and can authenticate users with existing OpenID Connect or SAML 2.0 Identity Providers. Keycloak has built-in support to connect to existing LDAP or Active Directory servers and provides a centralized admin console for managing all aspects of the server. It also offers an account management console for users to manage their own accounts. Based on standard protocols, Keycloak supports OpenID Connect, OAuth 2.0, and SAML, and provides fine-grained authorization services for advanced permission management.",instructions:null,changeLog:[{date:"2023-3-16",description:"first release"},{date:"2025-07-22",description:"Version bumped to 26.3.1"},{date:"2025-10-08",description:"Replaced Deprecated Image with New One and version bumped to 26.4.0"}],links:[{label:"Website",url:"https://www.keycloak.org"},{label:"Documentation",url:"https://www.keycloak.org/documentation"},{label:"Github",url:"https://github.com/keycloak/keycloak"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","keycloakUsername","keycloakPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"keycloak"},appServiceImage:{type:"string",title:"App Service Image",default:"quay.io/keycloak/keycloak:26.4.0"},keycloakUsername:{type:"string",title:"Username"},keycloakPassword:{type:"string",title:"Password"}}},benefits:[{title:"Effortless Authentication",description:"Keycloak simplifies the process of adding authentication to applications and securing services, eliminating the need to handle user storage or authentication."},{title:"Single Sign-On",description:"Users only need to authenticate once with Keycloak to gain access to multiple applications, removing the need for multiple logins and logouts."},{title:"Social Login and Identity Brokering",description:"Keycloak makes it easy to enable login with social networks and can authenticate users with existing OpenID Connect or SAML 2.0 Identity Providers."},{title:"User Federation",description:"Keycloak can connect to existing LDAP or Active Directory servers, and even allows for the implementation of your own provider if you have users in other stores."},{title:"Fine-Grained Authorization",description:"Keycloak provides fine-grained authorization services, allowing you to manage permissions for all your services and define the exact policies you need."}],features:[{title:"Admin Console",description:"The admin console allows administrators to centrally manage all aspects of the Keycloak server, including enabling and disabling features, configuring identity brokering and user federation, and managing applications, services, users, permissions, and sessions."},{title:"Account Management Console",description:"Users can manage their own accounts through the account management console, including updating their profile, changing passwords, setting up two-factor authentication, managing sessions, and viewing account history."},{title:"Standard Protocols",description:"Keycloak is based on standard protocols and provides support for OpenID Connect, OAuth 2.0, and SAML."},{title:"Authorization Services",description:"If role-based authorization doesn't cover your needs, Keycloak provides fine-grained authorization services as well. This allows you to manage permissions for all your services from the Keycloak admin console."},{title:"Single-Sign On",description:"Keycloak provides single-sign out, which means users only have to logout once to be logged-out of all applications that use Keycloak."},{title:"Identity Brokering and Social Login",description:"Enabling login with social networks is easy to add through the admin console. Keycloak can also authenticate users with existing OpenID Connect or SAML 2.0 Identity Providers."},{title:"User Federation",description:"Keycloak has built-in support to connect to existing LDAP or Active Directory servers. You can also implement your own provider if you have users in other stores."}],tags:["Identity and Access Management","Authentication","Authorization","Single Sign-On","User Federation","Social Login","Admin Console","Account Management","Standard Protocols","Fine-Grained Authorization"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["KC_DB=postgres","KC_DB_URL_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"KC_DB_URL_DATABASE=$(PROJECT_NAME)","KC_DB_USERNAME=postgres","KC_DB_PASSWORD=".concat(a),"KC_BOOTSTRAP_ADMIN_USERNAME=".concat(e.keycloakUsername),"KC_BOOTSTRAP_ADMIN_PASSWORD=".concat(e.keycloakPassword),"KC_HOSTNAME_STRICT_HTTPS=false","KC_HOSTNAME=https://$(PRIMARY_DOMAIN)","KC_HOSTNAME_ADMIN=https://$(PRIMARY_DOMAIN)","PROXY_ADDRESS_FORWARDING=true","KC_HTTP_ENABLED=false","KC_FEATURES=docker","KC_PROXY_HEADERS=xforwarded"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/opt/keycloak"},{type:"volume",name:"themes",mountPath:"/opt/bitnami/keycloak/themes"}],deploy:{command:"/opt/keycloak/bin/kc.sh start-dev"}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"khoj",meta:{name:"Khoj",description:"Khoj is an AI-powered personal search and chat application that helps you find and organize your personal knowledge. It supports various AI models, web search integration, and code execution capabilities.",instructions:"Configure your chat model provider and search api providers with khoj environment variables.",changeLog:[{date:"2025-04-14",description:"First Release"},{date:"2026-05-18",description:"Update to v2.0.0-beta.28"}],links:[{label:"Website",url:"https://khoj.dev"},{label:"Documentation",url:"https://docs.khoj.dev"},{label:"GitHub",url:"https://github.com/khoj-ai/khoj"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseImage","sandboxImage","searxngImage","adminEmail"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"khoj"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/khoj-ai/khoj:2.0.0-beta.28"},databaseImage:{type:"string",title:"Database Image",default:"pgvector/pgvector:0.8.1-pg15"},sandboxImage:{type:"string",title:"Sandbox Image",default:"ghcr.io/khoj-ai/terrarium:latest"},searxngImage:{type:"string",title:"SearxNG Image",default:"searxng/searxng:2026.1.16-697f53ecd"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]"},adminPassword:{type:"string",title:"Admin Password",default:"",description:"Auto-generated if not provided."},openaiApiKey:{type:"string",title:"OpenAI API Key",default:""},geminiApiKey:{type:"string",title:"Gemini API Key",default:""},anthropicApiKey:{type:"string",title:"Anthropic API Key",default:""},openaiBaseUrl:{type:"string",title:"OpenAI Base URL",default:""},jinaApiKey:{type:"string",title:"Jina API Key",default:""},serperDevApiKey:{type:"string",title:"Serper Dev API Key",default:""},firecrawlApiKey:{type:"string",title:"Firecrawl API Key",default:""},olostepApiKey:{type:"string",title:"OloStep API Key",default:""}}},benefits:[{title:"Personal Search",description:"Search through your personal knowledge and documents"},{title:"AI-Powered",description:"Get intelligent answers and insights from your data"},{title:"Code Execution",description:"Run code in a secure sandbox environment"},{title:"Web Search Integration",description:"Combine personal and web search results"},{title:"Self-Hosted",description:"Keep your data private and secure"}],features:[{title:"Document Search",description:"Search through your personal documents and notes"},{title:"AI Chat",description:"Chat with AI about your personal knowledge"},{title:"Code Sandbox",description:"Run code in a secure environment"},{title:"Web Search",description:"Search the web with privacy"},{title:"Multi-Model Support",description:"Use various AI models for different tasks"},{title:"Admin Interface",description:"Manage your Khoj instance"}],tags:["AI","Search","Chat","Self-Hosted","Knowledge Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=e.adminPassword||v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:42110}],env:["POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"POSTGRES_PORT=5432","KHOJ_DJANGO_SECRET_KEY=".concat(i),"KHOJ_DEBUG=False","KHOJ_ADMIN_EMAIL=".concat(e.adminEmail),"KHOJ_ADMIN_PASSWORD=".concat(o),"KHOJ_DOMAIN=$(PRIMARY_DOMAIN)","KHOJ_TERRARIUM_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-sandbox:8080"),"KHOJ_SEARXNG_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-searxng:8080"),"OPENAI_API_KEY=".concat(e.openaiApiKey||""),"GEMINI_API_KEY=".concat(e.geminiApiKey||""),"ANTHROPIC_API_KEY=".concat(e.anthropicApiKey||""),"OPENAI_BASE_URL=".concat(e.openaiBaseUrl||""),"JINA_API_KEY=".concat(e.jinaApiKey||""),"SERPER_DEV_API_KEY=".concat(e.serperDevApiKey||""),"FIRECRAWL_API_KEY=".concat(e.firecrawlApiKey||""),"OLOSTEP_API_KEY=".concat(e.olostepApiKey||"")].join("\n"),mounts:[{type:"volume",name:"khoj_config",mountPath:"/root/.khoj/"},{type:"volume",name:"khoj_model",mountPath:"/root/.cache/torch/sentence_transformers"},{type:"volume",name:"khoj_models",mountPath:"/root/.cache/huggingface"}],deploy:{command:'python3 src/khoj/main.py --host="0.0.0.0" --port=42110 -vv --anonymous-mode --non-interactive'}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,image:e.databaseImage}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-sandbox"),source:{type:"image",image:e.sandboxImage},env:["DEBUG=False"].join("\n"),mounts:[{type:"volume",name:"terrarium-data",mountPath:"/app/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-searxng"),source:{type:"image",image:e.searxngImage},env:["INSTANCE_NAME=Khoj SearxNG"].join("\n"),mounts:[{type:"volume",name:"searxng-data",mountPath:"/etc/searxng"}]}}),{services:t}}},{slug:"kicad",meta:{name:"KiCad",description:"KiCad is an open-source software suite for electronic design automation (EDA), enabling the design and simulation of electronic circuits and printed circuit boards (PCBs). It provides a comprehensive set of tools for schematic capture, PCB layout, and 3D visualization. KiCad supports extensive libraries of components and footprints, allowing designers to create custom designs with ease. Its robust features, such as design rule checking, netlist generation, and Gerber export, make it a preferred choice for professionals and hobbyists alike. With a focus on flexibility and open-source principles, KiCad empowers users to bring their electronic design projects to life.",instructions:null,changeLog:[{date:"2024-12-27",description:"First Release"}],links:[{label:"Website",url:"https://www.kicad.org"},{label:"Documentation",url:"https://docs.kicad.org"},{label:"Github",url:"https://github.com/KiCad/kicad-source-mirror"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kicad"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/kicad:8.0.7"}}},benefits:[{title:"Comprehensive EDA Suite",description:"KiCad provides a complete set of tools for electronic design, from schematic capture to PCB layout and 3D visualization, simplifying the design process."},{title:"Open-Source and Flexible",description:"As an open-source tool, KiCad is free to use and customize, making it accessible for both professionals and hobbyists."},{title:"Extensive Component Libraries",description:"KiCad includes an extensive library of components and footprints, with the ability to create and manage custom libraries for specific projects."},{title:"Professional-Grade Tools",description:"Features like design rule checking, netlist generation, and Gerber file export ensure that KiCad meets professional standards."},{title:"Community-Driven Development",description:"KiCad benefits from a vibrant community of developers and users who contribute to its ongoing improvement and provide valuable resources."}],features:[{title:"Schematic Capture",description:"KiCad's schematic editor allows users to create and manage electronic circuit diagrams with ease, including hierarchical designs."},{title:"PCB Layout",description:"The PCB layout editor provides powerful tools for designing multi-layer boards, routing, and managing design rules."},{title:"3D Visualization",description:"KiCad includes a 3D viewer that allows designers to visualize their PCB designs with realistic rendering of components and boards."},{title:"Design Rule Checking",description:"The design rule checker ensures that layouts meet predefined constraints, helping to prevent errors during manufacturing."},{title:"Gerber File Export",description:"KiCad supports Gerber file export for seamless collaboration with PCB manufacturers."},{title:"Component Libraries",description:"Extensive libraries of components and footprints are included, with support for creating custom libraries."},{title:"Community Support",description:"KiCad's active community provides tutorials, documentation, and forums for users of all skill levels."}],tags:["Electronic Design Automation","PCB Design","Schematic Capture","3D Visualization","Open-Source","Component Libraries","Gerber Export","Design Rule Checking","Multi-Layer Boards","Circuit Simulation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3},{host:"$(EASYPANEL_DOMAIN)",port:3001}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"killbill",meta:{name:"KillBill",description:"KillBill is an open-source subscription billing and payment platform designed to simplify complex billing workflows for SaaS and other businesses. It provides robust support for recurring billing, invoicing, and payment management while offering flexibility for customization. KillBill ensures seamless integration with third-party payment gateways, making it adaptable for global payment needs. It supports multiple plugins to extend functionality, enabling businesses to manage tax compliance, analytics, notifications, and more. The platform's Kaui UI offers an intuitive administrative console for managing subscriptions, invoices, payments, and tenants. KillBill's API-driven design allows developers to customize and automate every aspect of the billing process. Its modular architecture ensures it can scale with the growing needs of businesses, providing robust tools for revenue management.",instructions:"You have to configure the KillBill URL in your Kaui Environment Section. Then access the Kaui App Service to access KillBill. Default credentials username; admin, password; password.",changeLog:[{date:"2023-3-16",description:"First release"},{date:"2025-12-25",description:"Version bumped to 0.24.16 and 4.0.6"},{date:"2026-05-04",description:"Version bumped to 0.24.17 and 4.0.14"}],links:[{label:"Website",url:"https://killbill.io"},{label:"Documentation",url:"https://docs.killbill.io"},{label:"GitHub",url:"https://github.com/killbill/killbill"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","kauiAppServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"killbill"},appServiceImage:{type:"string",title:"KillBill Service Image",default:"killbill/killbill:0.24.17"},kauiAppServiceImage:{type:"string",title:"Kaui Admin Console Image",default:"killbill/kaui:4.0.14"}}},benefits:[{title:"Flexible Billing Engine",description:"KillBill supports complex billing scenarios, including recurring payments, subscription management, and multi-tier pricing models."},{title:"Seamless Payment Integration",description:"KillBill integrates with various third-party payment gateways, supporting global payment methods for businesses of any size."},{title:"API-Driven",description:"KillBill provides a powerful API-first approach, enabling developers to automate and customize billing workflows to suit business needs."},{title:"Extensible Plugin System",description:"The plugin architecture allows extending KillBill's capabilities with custom integrations, notifications, tax calculations, and reporting."},{title:"Centralized Admin Management",description:"Kaui, the admin console, allows centralized management of subscriptions, invoices, payments, and tenants, providing clear insights into billing operations."}],features:[{title:"Subscription Management",description:"Create, update, and manage subscriptions with ease, supporting various pricing models such as flat, tiered, and volume-based billing."},{title:"Invoicing Engine",description:"KillBill automatically generates detailed invoices for subscriptions and usage-based charges, ensuring accuracy and compliance."},{title:"Payment Management",description:"Manage payments, refunds, and chargebacks with integrations to major payment gateways like Stripe, PayPal, and Authorize.Net."},{title:"Multi-Tenancy",description:"KillBill supports multi-tenancy, enabling businesses to manage multiple customers under a single instance."},{title:"Extensible Plugin Framework",description:"Extend KillBill's capabilities using plugins for tax calculations, analytics, notifications, or custom payment integrations."},{title:"API-First Design",description:"The powerful REST API allows you to programmatically interact with all aspects of billing, invoicing, and payment management."},{title:"Kaui Admin Console",description:"Kaui provides an intuitive user interface to manage subscriptions, payments, invoices, and tenants efficiently."},{title:"Event Notifications",description:"Leverage KillBill's event-driven architecture to trigger notifications, updates, or actions based on billing events."}],tags:["Subscription Management","Recurring Billing","Invoicing","Payment Management","API-Driven","Extensible Plugins","Multi-Tenancy","Kaui Admin Console","Revenue Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["KILLBILL_DAO_URL=jdbc:mysql://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:3306/killbill"),"KILLBILL_DAO_USER=root","KILLBILL_DAO_PASSWORD=".concat(a),"KILLBILL_CATALOG_URI=SpyCarAdvanced.xml"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-kaui"),env:["KAUI_CONFIG_DAO_URL=jdbc:mysql://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:3306/kaui"),"KAUI_CONFIG_DAO_USER=root","KAUI_CONFIG_DAO_PASSWORD=".concat(a),"KAUI_KILLBILL_URL="].join("\n"),source:{type:"image",image:e.kauiAppServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),image:"killbill/mariadb:0.24",rootPassword:a}}),{services:t}}},{slug:"kimai",meta:{name:"Kimai",description:"Kimai is an open-source time-tracking solution designed for freelancers, small businesses, and enterprises to manage time-tracking needs efficiently. It enables users to track work hours, manage projects, and create accurate reports and invoices based on time entries. With a focus on simplicity and flexibility, Kimai is ideal for organizations looking to improve productivity, manage employee timesheets, and handle client billing without the complexity of traditional ERP systems. Kimai offers a modular architecture, allowing for easy customization to meet unique requirements, and it supports multi-user environments with permissions to manage data access.",instructions:null,changeLog:[{date:"2024-11-08",description:"Template Release"},{date:"2025-02-28",description:"Version bumped to apache-2.30.0"},{date:"2025-12-25",description:"Version bumped to apache-2.44.0"},{date:"2026-02-21",description:"Version bumped to apache-2.49.0"},{date:"2026-05-08",description:"Version bumped to apache-2.56.0"}],links:[{label:"Website",url:"https://www.kimai.org"},{label:"Documentation",url:"https://www.kimai.org/documentation"},{label:"GitHub",url:"https://github.com/kimai/kimai"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","adminPassword","adminEmail"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kimai"},appServiceImage:{type:"string",title:"App Service Image",default:"kimai/kimai2:apache-2.56.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"kimai-db"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]"},adminPassword:{type:"string",title:"Admin Password",description:"The password must be at least 8 characters long.",default:"admin123"}}},benefits:[{title:"Efficient Time Tracking",description:"Kimai enables users to track time across various projects and tasks, providing detailed insights for accurate time management."},{title:"Project and Task Management",description:"Users can organize time entries by project and task, making it easier to manage workload and monitor project progress."},{title:"Invoicing and Reporting",description:"Kimai automates the process of creating reports and invoices based on tracked time, simplifying client billing and payroll."},{title:"Multi-User and Permissions Support",description:"The platform supports multiple users, with role-based permissions for controlled access to time tracking and project data."},{title:"Flexible and Customizable",description:"Kimai\u2019s modular design allows for easy customization and integration with third-party tools to meet specific business needs."}],features:[{title:"Web-Based Admin Console",description:"The admin console allows users to manage time entries, projects, tasks, and clients from a centralized web interface."},{title:"Multi-Currency Support",description:"Supports billing in multiple currencies, making it suitable for global teams and client billing across regions."},{title:"Extensible with Plugins",description:"Kimai supports various plugins for extended functionality, allowing businesses to tailor the platform to their workflow."},{title:"Detailed Analytics and Reporting",description:"Provides detailed reports and analytics on tracked time, client billing, and project costs, enhancing data-driven decision-making."},{title:"Multi-Language Support",description:"Kimai supports multiple languages, making it accessible to users across different linguistic backgrounds."},{title:"Secure and Compliant",description:"Offers secure data management and supports compliance with industry standards for tracking and billing."}],tags:["Time Tracking","Project Management","Invoicing","Reporting","Multi-User","Multi-Currency","Plugins","Analytics","Multi-Language","Secure Data Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ADMINMAIL=".concat(e.adminEmail),"ADMINPASS=".concat(e.adminPassword),"DATABASE_URL=mysql://mysql:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,"/$(PROJECT_NAME)?charset=utf8mb4&serverVersion=8.3.0"),"TRUSTED_HOSTS=nginx,localhost,127.0.0.1,$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8001}],mounts:[{type:"volume",name:"data",mountPath:"/opt/kimai/var/data"}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"kitchenowl",meta:{name:"KitchenOwl",description:"KitchenOwl is a self-hosted grocery list and recipe manager designed to help you organize your kitchen and meal planning. It provides a clean web interface for managing shopping lists, recipes, and inventory. Perfect for families and individuals who want to streamline their grocery shopping and meal preparation.",instructions:null,changeLog:[{date:"2025-09-25",description:"First release (v0.7.4)"},{date:"2026-05-04",description:"Version bumped to (v0.7.8)"}],links:[{label:"Website",url:"https://kitchenowl.org/"},{label:"GitHub",url:"https://github.com/Tombursch/kitchenowl"},{label:"Documentation",url:"https://docs.kitchenowl.org/latest/"},{label:"DockerHub Frontend",url:"https://hub.docker.com/r/tombursch/kitchenowl-web"},{label:"DockerHub Backend",url:"https://hub.docker.com/r/tombursch/kitchenowl-backend"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","backendImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kitchenowl"},appServiceImage:{type:"string",title:"Frontend Image",default:"tombursch/kitchenowl-web:v0.7.8"},backendImage:{type:"string",title:"Backend Image",default:"tombursch/kitchenowl-backend:v0.7.8"}}},benefits:[{title:"Grocery List Management",description:"Create and manage shopping lists with categories, quantities, and automatic suggestions based on your recipes."},{title:"Recipe Organization",description:"Store and organize your favorite recipes with ingredients, instructions, and nutritional information."},{title:"Meal Planning",description:"Plan your meals and automatically generate shopping lists based on your planned recipes."},{title:"Family Collaboration",description:"Share lists and recipes with family members for collaborative meal planning and shopping."}],features:[{title:"Web Interface",description:"Clean, responsive web interface accessible from any device."},{title:"Shopping Lists",description:"Create categorized shopping lists with quantities and check-off functionality."},{title:"Recipe Management",description:"Store recipes with ingredients, instructions, cooking times, and nutritional information."},{title:"Inventory Tracking",description:"Track your pantry inventory and get suggestions for what to cook."},{title:"Meal Planning",description:"Plan meals for the week and automatically generate shopping lists."},{title:"Data Persistence",description:"All data is stored locally and persists across container restarts."},{title:"JWT Authentication",description:"Secure authentication system for protecting your data."}],tags:["Grocery Lists","Recipe Management","Meal Planning","Family","Web Interface"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-backend"),source:{type:"image",image:e.backendImage},mounts:[{type:"volume",name:"kitchenowl-data",mountPath:"/data"}],env:["JWT_SECRET_KEY=".concat(a)].join("\n")}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["BACK_URL=$(PROJECT_NAME)_".concat(e.appServiceName,"-backend:5000")].join("\n")}}),{services:t}}},{slug:"kitsu",meta:{name:"Kitsu",description:"Kitsu is a production tracker for animation and VFX studios, built by CGWire. Organize projects, shots, and assets, track task progress across your pipeline, and manage preview files, all from one collaborative dashboard. This template deploys Kitsu's real production architecture \u2014 the Zou API, its event stream, and the frontend behind an Nginx gateway, backed by Postgres and Redis \u2014 built from CGWire's own reference Dockerfile rather than the all-in-one image CGWire's own docs say is for testing only.",instructions:"Open the app URL and sign in with the admin email you set and the auto-generated password shown as ZOU_ADMIN_PASSWORD in the \"-api\" service's Environment tab. If you left Public Domain blank, set it and redeploy before inviting anyone else \u2014 until then, passkey/WebAuthn login won't work and outgoing emails (invites, notifications) will link to a placeholder address instead of your real one; normal password login and the app itself work fine either way. Deploys build the Zou backend from source on first run, so the initial rollout takes noticeably longer than a plain image pull \u2014 subsequent redeploys are faster. Preview files and the database both live on persistent volumes; back up the database with `zou dump-database` and keep a copy of the previews volume if the production history matters to you.",changeLog:[{date:"2026-07-20",description:"first release"}],links:[{label:"Website",url:"https://cg-wire.com"},{label:"GitHub",url:"https://github.com/cgwire/zou"},{label:"Documentation",url:"https://zou.cg-wire.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","adminEmail","studioDomain","enableJobQueue","zouVersion","kitsuVersion"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kitsu"},publicDomain:{type:"string",title:"Public Domain",description:"Optional, without https:// or a trailing slash (e.g. kitsu.example.com). Leave blank to deploy immediately on the domain Easypanel assigns automatically \u2014 but until you set this (and redeploy), passkey/WebAuthn login won't work and outgoing emails will link to a placeholder address instead of your real one. Normal password login and the app itself are unaffected either way."},adminEmail:{type:"string",title:"Admin Email",description:"Used to sign in as the first admin user after deploying."},studioDomain:{type:"string",title:"Studio Type",description:"Selects the starter reference data seeded on first boot (task statuses, task types, etc.).",oneOf:[{enum:["3d"],title:"3D Animation"},{enum:["2d"],title:"2D Animation"},{enum:["vfx"],title:"VFX"},{enum:["games"],title:"Video Games"}],default:"3d"},enableJobQueue:{type:"boolean",title:"Enable Background Job Worker",description:"Deploys a worker for background jobs like playlist building. Off by default, matching Zou's own default.",default:!1},zouVersion:{type:"string",title:"Zou (Backend) Version",default:"1.0.57"},kitsuVersion:{type:"string",title:"Kitsu (Frontend) Version",default:"1.0.53"},smtpHost:{type:"string",title:"SMTP Host",description:"Optional. Required for invite emails and notifications; leave blank to disable outgoing mail entirely."},smtpPort:{type:"number",title:"SMTP Port",default:587},smtpUsername:{type:"string",title:"SMTP Username",description:"Optional."},smtpPassword:{type:"string",title:"SMTP Password",description:"Optional."},smtpSender:{type:"string",title:"SMTP From Address",description:"Optional. Defaults to the admin email if left blank."}}},benefits:[{title:"Built From CGWire's Own Reference, Not a Test-Only Image",description:"The Zou API, event stream, and frontend are built as separate services wired to real Postgres and Redis, mirroring CGWire's own production systemd setup instead of their single-container trial image."},{title:"Purpose-Built for Animation and VFX Pipelines",description:"Task statuses, shot/asset hierarchies, and preview review tools are modeled around how animation and VFX studios actually track production."},{title:"Realtime Collaboration",description:"Comments, notifications, and status changes propagate live over the event stream instead of requiring a page refresh."}],features:[{title:"Shot and Asset Tracking",description:"Break projects down into sequences, shots, and assets, each with their own task pipeline and status history."},{title:"Preview Review Tools",description:"Upload and review image, video, and PDF previews directly on each task, with version history kept alongside them."},{title:"Team and Studio Dashboards",description:"Track workload and progress across the whole studio, not just a single project, from dashboards built for production managers."},{title:"Optional Background Job Worker",description:"Turn on a dedicated worker for heavier background jobs like playlist builds without blocking the main API."}],tags:["Production Tracking","Animation","VFX","Self-Hosted"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=v(),r="".concat(e.appServiceName,"-db"),s="".concat(e.appServiceName,"-redis"),c="".concat(e.appServiceName,"-api"),l="".concat(e.appServiceName,"-events"),p="".concat(e.appServiceName,"-worker"),d="FROM python:3.11.16-slim-bookworm\nENV DEBIAN_FRONTEND=noninteractive\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n      build-essential ffmpeg git libjpeg-dev libpq-dev xmlsec1 \\\n    && rm -rf /var/lib/apt/lists/*\nRUN pip install --no-cache-dir zou==".concat(e.zouVersion,"\nRUN mkdir -p /opt/zou/previews\nWORKDIR /opt/zou\nEXPOSE 5000 5001\n"),u=e.publicDomain||"$(PROJECT_NAME)-".concat(e.appServiceName,".local"),m=["DB_DRIVER=postgresql+psycopg","DB_HOST=$(PROJECT_NAME)_".concat(r),"DB_PORT=5432","DB_USERNAME=postgres","DB_PASSWORD=".concat(a),"DB_DATABASE=zoudb","KV_HOST=$(PROJECT_NAME)_".concat(s),"KV_PORT=6379","KV_PASSWORD=".concat(i),"SECRET_KEY=".concat(o),"DOMAIN_PROTOCOL=https","DOMAIN_NAME=".concat(u),"PREVIEW_FOLDER=/opt/zou/previews","ENABLE_JOB_QUEUE=".concat(e.enableJobQueue?"true":"false"),"ZOU_ADMIN_EMAIL=".concat(e.adminEmail),"ZOU_ADMIN_PASSWORD=".concat(n)];
1e.smtpHost?(m.push("MAIL_ENABLED=true"),m.push("MAIL_SERVER=".concat(e.smtpHost)),m.push("MAIL_PORT=".concat(e.smtpPort)),e.smtpUsername&&m.push("MAIL_USERNAME=".concat(e.smtpUsername)),e.smtpPassword&&m.push("MAIL_PASSWORD=".concat(e.smtpPassword)),m.push("MAIL_USE_TLS=true"),m.push("MAIL_DEFAULT_SENDER=".concat(e.smtpSender||e.adminEmail))):m.push("MAIL_ENABLED=false"),t.push({type:"app",data:{serviceName:c,source:{type:"dockerfile",dockerfile:d},env:m.join("\n"),deploy:{command:"zou upgrade-db --no-telemetry; test -f /opt/zou/previews/.zou-initialized || (zou init-data --domain ".concat(e.studioDomain,' && zou create-admin "').concat(e.adminEmail,'" --password "').concat(n,'" && touch /opt/zou/previews/.zou-initialized); exec gunicorn -w 3 -k gevent -b 0.0.0.0:5000 --timeout 600 zou.app:app')},mounts:[{type:"volume",name:"previews",mountPath:"/opt/zou/previews"}]}}),t.push({type:"app",data:{serviceName:l,source:{type:"dockerfile",dockerfile:d},env:m.join("\n"),deploy:{command:"exec gunicorn -w 1 -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -b 0.0.0.0:5001 zou.event_stream:app"}}}),e.enableJobQueue&&t.push({type:"app",data:{serviceName:p,source:{type:"dockerfile",dockerfile:d},env:m.join("\n"),deploy:{command:"exec rq worker -c zou.job_settings"},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(c,"/volumes/previews"),mountPath:"/opt/zou/previews"}]}});var g="server {\n    listen 80;\n    server_name _;\n\n    location /api {\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header Host $host;\n        proxy_pass http://$(PROJECT_NAME)_".concat(c,':5000/;\n        client_max_body_size 1G;\n    }\n\n    location /socket.io {\n        proxy_http_version 1.1;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection "Upgrade";\n        proxy_pass http://$(PROJECT_NAME)_').concat(l,":5001;\n    }\n\n    location / {\n        root /opt/zou/kitsu;\n        try_files $uri $uri/ /index.html;\n    }\n}\n"),h="FROM nginx:1.27.5-alpine\nRUN apk add --no-cache curl && \\\n    mkdir -p /opt/zou/kitsu && \\\n    curl -fsSL -o /tmp/kitsu.tgz https://github.com/cgwire/kitsu/releases/download/v".concat(e.kitsuVersion,"/kitsu-").concat(e.kitsuVersion,".tgz && \\\n    tar xzf /tmp/kitsu.tgz -C /opt/zou/kitsu && \\\n    rm /tmp/kitsu.tgz && \\\n    rm -f /etc/nginx/conf.d/default.conf\nEXPOSE 80\n");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"dockerfile",dockerfile:h},domains:[{host:e.publicDomain||"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"file",content:g,mountPath:"/etc/nginx/conf.d/default.conf"}]}}),t.push({type:"postgres",data:{serviceName:r,databaseName:"zoudb",password:a}}),t.push({type:"redis",data:{serviceName:s,password:i}}),{services:t}}},{slug:"koito",meta:{name:"Koito",description:"Koito is a self-hosted, themeable ListenBrainz-compatible scrobbler for tracking music listening history and visualizing listening habits. It supports relay of listens to other ListenBrainz-compatible servers, import from Last.fm, Maloja, Spotify, and ListenBrainz, and features like artist statistics, interest-over-time graphs, and Spotify-wrapped-style rewinds. Built with Go and featuring a sleek modern UI with multiple built-in themes and custom theme support, Koito provides comprehensive music listening analytics while maintaining complete control over your scrobbling data.",instructions:null,changeLog:[{date:"2026-01-17",description:"Tempalate Release (v0.1.4)"},{date:"2026-05-04",description:"Version bumped to (v0.1.8)"}],links:[{label:"Website",url:"https://koito.io"},{label:"GitHub",url:"https://github.com/gabehf/koito"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"koito"},appServiceImage:{type:"string",title:"App Service Image",default:"gabehf/koito:v0.1.8"}}},benefits:[{title:"Music Listening Tracking",description:"Track your music listening history across all your devices and music services with comprehensive scrobbling support."},{title:"ListenBrainz Compatible",description:"Fully compatible with ListenBrainz and any service that supports scrobbling to custom ListenBrainz URLs."},{title:"Data Import",description:"Import historical listening data from Last.fm, Maloja, Spotify, and ListenBrainz to consolidate your music history in one place."},{title:"Visual Analytics",description:"Beautiful visualizations including artist statistics, interest-over-time graphs, and Spotify-wrapped-style rewinds for insights into your listening habits."},{title:"Self-Hosted Privacy",description:"Complete control over your listening data with no reliance on external services or data sharing."}],features:[{title:"ListenBrainz Compatibility",description:"Fully compatible with ListenBrainz protocol, allowing integration with any ListenBrainz-compatible client or server."},{title:"Listen Relay",description:"Optionally relay listens submitted to your Koito instance to other compatible services for backup or synchronization."},{title:"Themed Interface",description:"Sleek, modern UI with multiple built-in themes and support for custom themes to personalize your experience."},{title:"Historical Data Import",description:"Import listening history from Last.fm, Maloja, Spotify, and ListenBrainz to build a comprehensive music listening database."},{title:"PostgreSQL Database",description:"Reliable PostgreSQL database for persistent storage of listening data and user preferences."},{title:"Artist Analytics",description:"Detailed artist and album metrics, listening trends, and personalized insights into your music preferences."}],tags:["Music","Scrobbler","ListenBrainz","Self-Hosted","Analytics","Music Tracking","Last.fm"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4110}],env:["KOITO_DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"KOITO_ALLOWED_HOSTS=$(PRIMARY_DOMAIN)"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/etc/koito"}]}}),{services:t}}},{slug:"kokoro",meta:{name:"Kokoro",description:"Kokoro is a powerful, browser-based AI voice generator that lets you create natural-sounding voices without installing anything. Use it directly in your browser or self-host it for your own applications with OpenAI API compatibility!",instructions:null,changeLog:[{date:"2025-03-05",description:"First Release (0.1.0)"},{date:"2025-07-22",description:"Version bumped to 0.1.3"}],links:[{label:"Github",url:"https://github.com/eduardolat/kokoro-web"}],contributors:[{name:"Ahson-Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kokoro"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/eduardolat/kokoro-web:0.1.3"}}},benefits:[{title:"No Installation Required",description:"Generate high-quality, natural-sounding voices directly in your browser without the need for any installations."},{title:"Self-hostable and Flexible",description:"Use Kokoro in your own applications by self-hosting it, ensuring full control over your voice generation capabilities with OpenAI API compatibility."},{title:"Cutting-edge AI Voice Technology",description:"Leverage advanced AI models to create lifelike voice outputs that are perfect for multimedia projects, virtual assistants, and more."}],features:[{title:"Browser-based Interface",description:"A user-friendly, web-based interface that allows you to generate voices seamlessly from any modern browser."},{title:"OpenAI API Compatibility",description:"Integrates with the OpenAI API for easy access to state-of-the-art voice generation models."},{title:"Customizable Voice Options",description:"Fine-tune voice characteristics such as tone, pitch, and speed to match your specific requirements."},{title:"Self-hosting Capability",description:"Deploy Kokoro on your own servers to maintain control over your data and voice generation processes."}],tags:["AI","Voice Generation","Browser-Based","OpenAI API"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["KW_SECRET_API_KEY=".concat(a)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"cache",mountPath:"/kokoro/cache"}]}}),{services:t}}},{slug:"komga",meta:{name:"Komga",description:"Komga is a free and open source comics/mangas server that provides an intuitive platform for comic and manga enthusiasts. It allows you to browse libraries, series, and books via a responsive web UI that is compatible with desktops, tablets, and phones. With Komga, you can easily organize your library with collections and read lists, and edit metadata for your series and books. The app also has the ability to import embedded metadata automatically. It features a web reader with multiple reading modes and allows you to manage multiple users with per-library access control, age restrictions, and labels restrictions. Additionally, Komga offers a REST API for interaction with other tools and scripts, and provides features for downloading book files, whole series, or read lists. It also has a duplicate files detection system and can import books from outside your libraries directly into your series folder. Komga also supports the import of ComicRack cbl read lists.",instructions:null,changeLog:[{date:"2022-12-11",description:"first release"},{date:"2024-10-16",description:"Version updated to 1.14.1"},{date:"2025-02-28",description:"Version bumped to 1.20.0"},{date:"2025-07-22",description:"Version bumped to 1.22.1"},{date:"2025-12-25",description:"Version bumped to 1.23.6"},{date:"2026-02-21",description:"Version bumped to 1.24.1"},{date:"2026-05-04",description:"Version bumped to 1.24.4"}],links:[{label:"Github",url:"https://github.com/gotson/komga"},{label:"Website",url:"https://komga.org"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"komga"},appServiceImage:{type:"string",title:"App Service Image",default:"gotson/komga:1.24.4"}}},benefits:[{title:"Free and Open Source",description:"Komga is a free and open source comics/mangas server, providing an accessible platform for comic enthusiasts."},{title:"Versatile Reading Modes",description:"The app features a webreader with multiple reading modes, enhancing your reading experience."},{title:"User Management",description:"Komga allows you to manage multiple users with per-library access control, age restrictions, and labels restrictions."},{title:"Duplicate Detection",description:"The app can detect and remove duplicate files and pages, ensuring your library stays organized and clutter-free."}],features:[{title:"Library Browsing",description:"Browse libraries, series and books via a responsive web UI that works on desktop, tablets and phones."},{title:"Library Organization",description:"Organize your library with collections and read lists."},{title:"Metadata Editing",description:"Edit metadata for your series and books. Import embedded metadata automatically."},{title:"REST API",description:"Komga offers a REST API, allowing various tools and scripts to interact with it."},{title:"File Download",description:"Download book files, whole series, or read lists directly from the app."},{title:"Import Books",description:"Import books from outside your libraries directly into your series folder."}],tags:["Media"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:25600}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"data",mountPath:"/data"},{type:"bind",hostPath:"/etc/timezone",mountPath:"/etc/timezone"}]}}),{services:t}}},{slug:"komiser",meta:{name:"Komiser",description:"Komiser is an open-source cloud resource manager that helps you understand, manage, and optimize your cloud infrastructure costs. It provides a unified dashboard to monitor and manage resources across multiple cloud providers, offering insights into resource usage, cost optimization opportunities, and security best practices.",instructions:"Once deployed, please provide your credentials in the credentials.yaml file, and then restart the service.",changeLog:[{date:"2025-03-26",description:"Initial template release"},{date:"2026-02-21",description:"Version bumped to 3.1.22"}],links:[{label:"Website",url:"https://komiser.io/"},{label:"Documentation",url:"https://docs.komiser.io/"},{label:"GitHub",url:"https://github.com/tailwarden/komiser"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"komiser"},appServiceImage:{type:"string",title:"Komiser Image",default:"tailwarden/komiser:3.1.22"}}},benefits:[{title:"Cloud Cost Optimization",description:"Identify and optimize cloud resource costs across providers."},{title:"Multi-Cloud Management",description:"Unified dashboard for managing multiple cloud providers."},{title:"Resource Monitoring",description:"Real-time monitoring of cloud resources and usage."},{title:"Security Insights",description:"Security best practices and compliance monitoring."}],features:[{title:"Cost Analysis",description:"Detailed cost breakdown and optimization recommendations."},{title:"Resource Tracking",description:"Track and manage cloud resources across providers."},{title:"Security Monitoring",description:"Monitor security configurations and compliance."},{title:"Customizable Dashboard",description:"Customizable views and reporting options."}],tags:["Cloud Management","Cost Optimization","Resource Monitoring","Security","Multi-Cloud"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"file",content:'[[aws]]\nname="staging"\nsource="CREDENTIALS_FILE"\npath="/etc/config/credentials.yaml"\nprofile="production"\n\n[sqlite]\n  file = "komiser.db"\n  ',mountPath:"/etc/config/config.toml"},{type:"file",content:"\n\n  ",mountPath:"/etc/config/credentials.yaml"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{command:"komiser start --config /etc/config/config.toml"}}}),{services:t}}},{slug:"komodo",meta:{name:"Komodo",description:"Komodo is a comprehensive server management platform that provides monitoring and control capabilities for Docker containers and system processes. It offers a unified dashboard to manage your infrastructure, with features including container management, process monitoring, resource tracking, and system metrics visualization.",instructions:null,changeLog:[{date:"2026-05-19",description:"Updated to v2.2.0"},{date:"2025-08-25",description:"First release"}],links:[{label:"Website",url:"https://komo.do"},{label:"GitHub",url:"https://github.com/moghtech/komodo"},{label:"Documentation",url:"https://komo.do/docs/intro"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","peripheryImage","adminUsername","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"komodo"},appServiceImage:{type:"string",title:"Komodo Core Image",default:"ghcr.io/moghtech/komodo-core:2.2.0"},peripheryImage:{type:"string",title:"Komodo Periphery Image",default:"ghcr.io/moghtech/komodo-periphery:2.2.0"},adminUsername:{type:"string",title:"Admin Username",default:"admin"},adminPassword:{type:"string",title:"Admin Password",default:"changeme"}}},benefits:[{title:"Server Management",description:"Comprehensive platform for monitoring and managing Docker containers and system processes."},{title:"Docker Integration",description:"Deep integration with Docker for container management and monitoring."},{title:"System Monitoring",description:"Monitor system processes, resources, and performance metrics."},{title:"Automation",description:"Automate server tasks and container management workflows."}],features:[{title:"MongoDB Database",description:"Reliable MongoDB database for storing configuration and monitoring data."},{title:"Komodo Core",description:"Main application providing web interface and core functionality."},{title:"Komodo Periphery",description:"Agent for Docker integration and system process monitoring."},{title:"Docker Socket Access",description:"Direct access to Docker socket for container management."},{title:"Process Monitoring",description:"Monitor system processes outside of containers."},{title:"Backup System",description:"Automated database backups with configurable storage paths."},{title:"Web Interface",description:"Clean web interface for server management and monitoring."}],tags:["Server Management","Docker","Monitoring","Automation","MongoDB"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32),n=y(32);return t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-core"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9120}],mounts:[{type:"volume",name:"komodo-backups",mountPath:"/backups"},{type:"volume",name:"komodo-keys",mountPath:"/config/keys"}],env:["KOMODO_DATABASE_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-db:27017"),"KOMODO_DATABASE_USERNAME=mongo","KOMODO_DATABASE_PASSWORD=".concat(a),"KOMODO_HOST=https://$(PRIMARY_DOMAIN)","KOMODO_TITLE=Komodo","KOMODO_FIRST_SERVER_NAME=Local","KOMODO_FIRST_SERVER_ADDRESS=https://$(PROJECT_NAME)_".concat(e.appServiceName,"-periphery:8120"),"KOMODO_DISABLE_CONFIRM_DIALOG=false",'KOMODO_MONITORING_INTERVAL="15-sec"','KOMODO_RESOURCE_POLL_INTERVAL="1-hr"',"KOMODO_WEBHOOK_SECRET=".concat(o),"KOMODO_JWT_SECRET=".concat(n),'KOMODO_JWT_TTL="1-day"',"KOMODO_LOCAL_AUTH=true","KOMODO_INIT_ADMIN_USERNAME=".concat(e.adminUsername),"KOMODO_INIT_ADMIN_PASSWORD=".concat(e.adminPassword),"KOMODO_DISABLE_USER_REGISTRATION=false","KOMODO_ENABLE_NEW_USERS=false","KOMODO_DISABLE_NON_ADMIN_CREATE=false","KOMODO_TRANSPARENT_MODE=false","KOMODO_LOGGING_PRETTY=false","KOMODO_PRETTY_STARTUP_CONFIG=false"].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-periphery"),source:{type:"image",image:e.peripheryImage},mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"bind",hostPath:"/proc",mountPath:"/proc"},{type:"volume",name:"komodo-periphery",mountPath:"/etc/komodo"},{type:"volume",name:"komodo-keys",mountPath:"/config/keys"}],env:["PERIPHERY_ROOT_DIRECTORY=/etc/komodo","PERIPHERY_PASSKEYS=".concat(i),"PERIPHERY_DISABLE_TERMINALS=false","PERIPHERY_SSL_ENABLED=true","PERIPHERY_INCLUDE_DISK_MOUNTS=/etc/hostname","PERIPHERY_LOGGING_PRETTY=false"].join("\n")}}),{services:t}}},{slug:"kopia",meta:{name:"Kopia",description:"Kopia is a robust open-source backup and restore tool designed to provide fast and secure backups of your important data. It allows you to create encrypted snapshots of your files and directories, which can be stored on the cloud storage of your choice, network-attached storage, server, or locally on your machine. Kopia supports a wide range of storage locations including Amazon S3, Azure Blob Storage, Backblaze B2, Google Cloud Storage, and many more. It also supports both CLI and GUI versions, making it accessible for both advanced and regular users. Kopia's unique features include compression, deduplication, end-to-e
1nd 'zero knowledge' encryption, and error correction, ensuring your data is safe, secure, and easily retrievable.",instructions:null,changeLog:[{date:"2023-07-10",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 20250204.0.1210"},{date:"2025-07-22",description:"Version bumped to 20250722.0.5129"},{date:"2025-12-25",description:"Version bumped to 20251215.0.232403"},{date:"2026-02-21",description:"Version bumped to 20260220.0.50304"},{date:"2026-05-04",description:"Version bumped to 20260502.0.42513"}],links:[{label:"Website",url:"https://kopia.io/"},{label:"Docs",url:"https://kopia.io/docs/"},{label:"Github",url:"https://github.com/kopia/kopia/"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","kopiaUsername","kopiaPassword"],properties:{kopiaUsername:{type:"string",title:"Username"},kopiaPassword:{type:"string",title:"Password"},appServiceName:{type:"string",title:"App Service Name",default:"kopia"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"kopia/kopia:20260502.0.42513"}}},benefits:[{title:"Secure and Encrypted Backups",description:"Kopia provides a secure and scalable architecture that can back up everything from small laptops to large servers. It uses end-to-end 'zero knowledge' encryption, ensuring that your data is always safe and secure."},{title:"Flexible Storage Options",description:"With Kopia, you have full control over where to store your snapshots. It supports a wide range of storage locations, including Amazon S3, Azure Blob Storage, Google Cloud Storage, and any remote server or cloud storage that supports WebDAV or SFTP. You can even use multiple storage locations if you want to."},{title:"Efficient Data Management",description:"Kopia uses data deduplication to save you money. It also allows you to create encrypted snapshots of your data and save the snapshots to remote or cloud storage of your choice, to network-attached storage or server, or locally on your machine."}],features:[{title:"Encrypted, Compressed, and Deduplicated Backups",description:"Kopia allows you to create encrypted snapshots of your data and save the snapshots to the storage of your choice. It also uses compression and deduplication to make your backups more efficient."},{title:"Supports GUI and CLI",description:"Kopia comes with both a graphical user interface (GUI) and a command-line interface (CLI), making it suitable for both advanced and regular users."},{title:"Wide Range of Supported Storage Locations",description:"Kopia supports a wide range of storage locations, including Amazon S3, Azure Blob Storage, Google Cloud Storage, and any remote server or cloud storage that supports WebDAV or SFTP."},{title:"Fast and Secure",description:"With a secure and scalable architecture, Kopia can back up everything from small laptops to large servers quickly and securely."}],tags:["Backup","Data Management","Security"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:51515}],deploy:{command:"/bin/kopia server start --insecure --address=0.0.0.0:51515"},env:["USER=".concat(e.kopiaUsername),"KOPIA_SERVER_USERNAME=".concat(e.kopiaUsername),"KOPIA_SERVER_PASSWORD=".concat(e.kopiaPassword),"KOPIA_PASSWORD=".concat(e.kopiaPassword)].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/app/config"},{type:"volume",name:"cache",mountPath:"/app/cache"},{type:"volume",name:"logs",mountPath:"/app/logs"},{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"repository",mountPath:"/repository"},{type:"volume",name:"tmp",mountPath:"/tmp"}]}}),{services:t}}},{slug:"krakend",meta:{name:"KrakenD",description:"KrakenD is a high-performance API Gateway that helps you build microservices architecture. It's designed to be ultra-fast and lightweight, aggregating multiple services into a single API endpoint. It's perfect for building microservices, mobile backends, and public APIs.",instructions:"Please follow the official documentation for more information and customizations.",changeLog:[{date:"2026-05-19",description:"Updated to devopsfaith/krakend:2.9.4"},{date:"2025-04-03",description:"Initial template release"}],links:[{label:"Website",url:"https://www.krakend.io/"},{label:"Documentation",url:"https://www.krakend.io/docs/"},{label:"GitHub",url:"https://github.com/krakend"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"krakend"},appServiceImage:{type:"string",title:"KrakenD Image",default:"devopsfaith/krakend:2.9.4"}}},benefits:[{title:"High Performance",description:"Ultra-fast API Gateway with minimal latency."},{title:"Service Aggregation",description:"Combine multiple services into a single API endpoint."},{title:"Lightweight",description:"Minimal resource footprint and simple deployment."},{title:"Production Ready",description:"Built for high availability and scalability."}],features:[{title:"API Gateway",description:"Route and manage multiple API endpoints."},{title:"Authentication",description:"Built-in support for various authentication methods."},{title:"Rate Limiting",description:"Control API usage with rate limiting."},{title:"Request/Response Transformation",description:"Transform API requests and responses."}],tags:["API Gateway","Microservices","Backend","High Performance","Open Source"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"krakend_config",mountPath:"/etc/krakend"}]}}),{services:t}}},{slug:"kroki",meta:{name:"Kroki",description:"Kroki is a self-hosted diagramming and visualization service that allows users to generate diagrams from textual descriptions. It supports multiple diagramming formats, including Mermaid, BPMN, Excalidraw, PlantUML, Graphviz, and more. With Kroki, users can convert structured text into graphical representations quickly and efficiently. The application provides a simple API, making it easy to integrate with other tools. It is lightweight, supports multiple diagram rendering engines, and ensures full control over your data with a self-hosted deployment.",instructions:null,changeLog:[{date:"2025-02-27",description:"Template Release"}],links:[{label:"Documentation",url:"https://kroki.io/#docs"},{label:"Github",url:"https://github.com/yuzutech/kroki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","mermaidServiceImage","bpmnServiceImage","excalidrawServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kroki"},appServiceImage:{type:"string",title:"App Service Image",default:"yuzutech/kroki"},mermaidServiceImage:{type:"string",title:"Mermaid Service Image",default:"yuzutech/kroki-mermaid"},bpmnServiceImage:{type:"string",title:"BPMN Service Image",default:"yuzutech/kroki-bpmn"},excalidrawServiceImage:{type:"string",title:"Excalidraw Service Image",default:"yuzutech/kroki-excalidraw"}}},benefits:[{title:"Versatile Diagram Generation",description:"Kroki supports various diagram formats, including UML, BPMN, Graphviz, Mermaid, and more, allowing users to create diverse visual representations."},{title:"API-Based Integration",description:"With its powerful API, Kroki enables seamless integration with documentation tools, wikis, and other platforms for automated diagram generation."},{title:"Self-Hosted & Secure",description:"Deploy Kroki on your own infrastructure to maintain full control over your data and ensure privacy."}],features:[{title:"Multi-Format Support",description:"Kroki allows users to generate diagrams using multiple text-based languages, including PlantUML, Graphviz, Mermaid, and Excalidraw."},{title:"Lightweight & Efficient",description:"Kroki is optimized for fast rendering, ensuring quick processing of diagram requests."},{title:"Open-Source & Extensible",description:"The platform is open-source, allowing customization and enhancements through additional rendering engines."},{title:"No External Dependencies",description:"Kroki does not require external services or connections, making it ideal for offline or secure environments."}],tags:["Diagramming","Visualization","Self-Hosted","API-Based"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["KROKI_MERMAID_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mermaid"),"KROKI_BPMN_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-bpmn"),"KROKI_EXCALIDRAW_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-excalidraw")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-mermaid"),source:{type:"image",image:e.mermaidServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8002}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-bpmn"),source:{type:"image",image:e.bpmnServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8003}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-excalidraw"),source:{type:"image",image:e.excalidrawServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8004}]}}),{services:t}}},{slug:"kutt",meta:{name:"Kutt",description:"Kutt is a free and open-source app designed to make your links shorter and more manageable. With Kutt, you can create, protect, and delete your links, and monitor them with detailed statistics. You can also set custom domains for your links, adding a personal touch to your URLs. The app also provides an API, allowing you to create, delete, and get URLs from anywhere. Kutt also offers browser extensions for Chrome and Firefox for easy access and use. The app is completely open source and free, giving you the freedom to host it on your own server if you wish.",instructions:null,changeLog:[{date:"2023-03-24",description:"First Release"},{date:"2025-02-28",description:"Version bumped to v3.2.3"}],links:[{label:"Website",url:"https://kutt.it/"},{label:"Documentation",url:"https://docs.kutt.it/"},{label:"Github",url:"https://github.com/thedevs-network/kutt"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{siteName:{type:"string",title:"Site Name"},adminEmails:{type:"string",title:"Admin Emails",description:"Comma seperated"},reportEmail:{type:"string",title:"Report Email"},mailHost:{type:"string",title:"Mail Host"},mailPort:{type:"number",title:"Mail Port"},mailSecure:{type:"boolean",title:"Mail Secure",default:!0},mailUser:{type:"string",title:"Mail User"},mailPassword:{type:"string",title:"Mail Password"},mailFrom:{type:"string",title:"Mail From"}
1,appServiceName:{type:"string",title:"App Service Name",default:"kutt"},appServiceImage:{type:"string",title:"App Service Image",default:"kutt/kutt:v3.2.3"},databaseServiceName:{type:"string",title:"Database Service Name",default:"kutt-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"kutt-redis"}}},benefits:[{title:"Efficient Link Management",description:"Kutt provides a platform for creating, protecting, and deleting your links. It allows you to monitor your links with detailed statistics, giving you insights into the performance of your links."},{title:"Custom Domain",description:"Kutt allows you to use custom domains for your links. This feature enhances your brand visibility and makes your links more recognizable."},{title:"Free & Open Source",description:"Kutt is completely open source and free. You can host it on your own server, giving you full control over your data and privacy."}],features:[{title:"Link Creation",description:"Create short links with ease. You can add descriptions, set expiry times, and even protect them with passwords."},{title:"Link Deletion",description:"Kutt allows you to delete your links whenever you want. This feature gives you full control over the lifespan of your links."},{title:"Link Statistics",description:"Get detailed statistics for each of your links. This feature helps you understand how your links are performing and make informed decisions."},{title:"Custom Domains",description:"Add or remove custom domains for your links. This feature enhances your brand visibility and makes your links more recognizable."},{title:"API",description:"Kutt provides an API that allows you to create, delete, and get URLs from anywhere. This feature enables you to integrate Kutt with other services and automate your workflows."}],tags:["URL Shortener","Link Management","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"app",mountPath:"/usr/src/app"}],env:["SITE_NAME=".concat(e.siteName||"$(PROJECT_NAME)"),"DEFAULT_DOMAIN=$(PRIMARY_DOMAIN)","CUSTOM_DOMAIN_USE_HTTPS=true","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_NAME=$(PROJECT_NAME)","DB_USER=postgres","DB_PASSWORD=".concat(a),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.redisServiceName),"REDIS_PASSWORD=".concat(i),"JWT_SECRET=".concat(y(64)),"MAIL_HOST=".concat(e.mailHost||""),"MAIL_PORT=".concat(e.mailPort||""),"MAIL_SECURE=".concat(e.mailSecure),"MAIL_USER=".concat(e.mailUser||""),"MAIL_FROM=".concat(e.mailFrom||""),"MAIL_PASSWORD=".concat(e.mailPassword||""),"ADMIN_EMAILS=".concat(e.adminEmails||""),"REPORT_EMAIL=".concat(e.reportEmail||"")].join("\n")}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"kuzzle",meta:{name:"Kuzzle",description:"Kuzzle is a free and open-source backend platform designed to accelerate the development of web, mobile, and Internet of Things (IoT) applications. It provides real-time features, multi-protocol API support, and robust user management, enabling developers to focus on building high-level business functionalities. Kuzzle is fully customizable through plugins and offers client SDKs for seamless integration with various platforms. Its flexibility and scalability make it an ideal choice for IoT, geolocation, and enterprise applications.",instructions:"You should connect with the Kuzzle instance using the provided domain which proxying back to the HTTP/WebSocket connection.",changeLog:[{date:"2024-11-16",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 2.40.1"},{date:"2025-07-22",description:"Version bumped to 2.43.2"},{date:"2025-12-25",description:"Version bumped to 2.50.0"},{date:"2026-02-21",description:"Version bumped to 2.52.0"},{date:"2026-05-08",description:"Version bumped to 2.54.4"}],links:[{label:"Website",url:"https://kuzzle.io/"},{label:"Documentation",url:"https://docs.kuzzle.io/"},{label:"Github",url:"https://github.com/kuzzleio/kuzzle"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","elasticServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"kuzzle"},appServiceImage:{type:"string",title:"App Service Image",default:"kuzzleio/kuzzle:2.54.4"},elasticServiceImage:{type:"string",title:"Elastic Service Image",default:"kuzzleio/elasticsearch:7.17.26"}}},benefits:[{title:"Real-Time Data Synchronization",description:"Kuzzle provides real-time synchronization for connected clients, enabling seamless updates and interactions in your applications."},{title:"Multi-Protocol Support",description:"Supports HTTP, WebSocket, and MQTT protocols, making it versatile for various application types, including IoT and enterprise systems."},{title:"Open Source & Extensible",description:"Kuzzle is fully open source and extensible, allowing developers to create custom plugins and adapt it to their unique requirements."}],features:[{title:"Real-Time Engine",description:"Kuzzle offers real-time notifications and publish/subscribe mechanisms to ensure immediate updates for your applications."},{title:"User Management",description:"Robust user authentication, authorization, and role management for secure and scalable applications."},{title:"Data Storage",description:"Kuzzle uses Elasticsearch for efficient and scalable data storage with powerful query capabilities."},{title:"Extensibility",description:"Easily extend Kuzzle's functionality through plugins to fit your business needs."},{title:"SDKs and API",description:"Client SDKs for multiple platforms and a multi-protocol API make integration straightforward."}],tags:["Backend","IoT","Real-Time","API","Geolocation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7512}],env:["kuzzle_services__storageEngine__client__node=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-elasticsearch:9200"),"kuzzle_services__internalCache__node__host=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"kuzzle_services__internalCache__node__password=".concat(a),"kuzzle_services__memoryStorage__node__host=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"kuzzle_services__memoryStorage__node__password=".concat(a),"kuzzle_server__protocols__mqtt__enabled=true","NODE_ENV=production"].join("\n"),ports:[{published:1883,target:1883,protocol:"tcp"}]}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-elasticsearch"),source:{type:"image",image:e.elasticServiceImage},mounts:[{type:"volume",name:"elasticsearch",mountPath:"/usr/share/elasticsearch"}]}}),{services:t}}},{slug:"labelstudio",meta:{name:"Label Studio",description:"Label Studio is an open source data labeling tool. It lets you label data types like audio, text, images, videos, and time series with a simple and straightforward UI and export to various model formats. It can be used to prepare raw data or improve existing training data to get more accurate ML models.",instructions:null,changeLog:[{date:"2025-02-14",description:"First Release"},{date:"2026-05-08",description:"Version bumped to 21.23.0"}],links:[{label:"Website",url:"https://labelstud.io/"},{label:"Documentation",url:"https://labelstud.io/guide/"},{label:"Github",url:"https://github.com/HumanSignal/label-studio/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["labelStudioUsername","labelStudioPassword","appServiceName","appServiceImage"],properties:{labelStudioUsername:{type:"string",title:"Email",default:"[email protected]"},labelStudioPassword:{type:"string",title:"Password",default:"password"}
1,appServiceName:{type:"string",title:"App Service Name",default:"labelstudio"},appServiceImage:{type:"string",title:"App Service Image",default:"heartexlabs/label-studio:1.23.0"}}},benefits:[{title:"Effortless Data Labeling",description:"Label Studio provides an effortless way to label and annotate data for machine learning models. It allows users to easily create, manage, and configure labeling projects, making it an ideal tool for those who want to experiment with different data types and labeling workflows."},{title:"Easy Project Setup",description:"With Label Studio, setting up annotation projects is a breeze. Users can define custom labeling interfaces and quickly start annotating their data. This makes it easy to visualize, organize, and manage labeled datasets."},{title:"Flexible Deployment",description:"Label Studio offers flexible deployment options. It can be deployed locally, on-premises, or in the cloud, giving users the freedom to choose the deployment strategy that best suits their data security and infrastructure requirements."}],features:[{title:"Command Line Interface",description:"Label Studio provides a command-line interface for easy management and configuration. It offers a variety of options for project setup, data import, and server configuration, including the host, port, and storage settings."},{title:"Multi-Format Support",description:"Label Studio supports multiple data types, including text, images, audio, video, and time series data. This makes it a versatile tool for labeling diverse datasets across different machine learning tasks."},{title:"Exporting Annotations",description:"Once the annotations are complete, they can be exported in multiple formats such as JSON, CSV, and COCO. This makes it easy to integrate labeled data into machine learning workflows."}],tags:["Machine Learning","Data Annotation","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DJANGO_DB=default","POSTGRE_NAME=$(PROJECT_NAME)","POSTGRE_USER=postgres","POSTGRE_PASSWORD=".concat(a),"POSTGRE_PORT=5432","POSTGRE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"LABEL_STUDIO_HOST=https://$(EASYPANEL_DOMAIN)","SSRF_PROTECTION_ENABLED=true","LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK=true","DATA_UPLOAD_MAX_NUMBER_FILES=1000","LABEL_STUDIO_USERNAME=".concat(e.labelStudioUsername),"LABEL_STUDIO_PASSWORD=".concat(e.labelStudioPassword),"CSRF_TRUSTED_ORIGINS=https://$(EASYPANEL_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/label-studio/data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"lago",meta:{name:"Lago",description:"Lago is an open-source metered billing and usage-based pricing platform that helps businesses implement complex pricing models with precision and transparency. Built for modern SaaS companies, Lago provides real-time usage tracking, flexible pricing configurations, automated invoicing, and comprehensive billing analytics. Perfect for businesses that need to implement usage-based pricing, hybrid pricing models, or complex billing scenarios with features like prepaid credits, graduated pricing, and multi-dimensional metering.",instructions:'You have to generate a RSA private key "openssl genrsa 2048 | base64" and provide it to the service, otherwise the service will not work. You can contact Easypanel support if you need help.',changeLog:[{date:"2025-07-04",description:"Initial release"}],links:[{label:"Github",url:"https://github.com/getlago/lago"},{label:"Website",url:"https://getlago.com"},{label:"Documentation",url:"https://docs.getlago.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","frontendServiceImage","pdfServiceImage","rsaPrivateKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lago"},appServiceImage:{type:"string",title:"Backend Service Image",default:"getlago/api:v1.31.0"},frontendServiceImage:{type:"string",title:"Frontend Service Image",default:"getlago/front:v1.31.0"},pdfServiceImage:{type:"string",title:"PDF Service Image",default:"getlago/lago-gotenberg:7.8.2"},rsaPrivateKey:{type:"string",title:"RSA Private Key"}}},benefits:[{title:"Usage-Based Billing",description:"Implement complex metered billing models with real-time usage tracking and flexible pricing configurations."},{title:"Automated Invoicing",description:"Generate and send invoices automatically based on usage data with customizable billing cycles and payment terms."},{title:"Developer-Friendly APIs",description:"Comprehensive REST APIs and webhooks for seamless integration with existing systems and applications."}],features:[{title:"Real-Time Usage Tracking",description:"Track customer usage in real-time with high-throughput event ingestion and processing capabilities."},{title:"Flexible Pricing Models",description:"Support for graduated pricing, package pricing, percentage-based pricing, and complex hybrid models."},{title:"Automated Billing Engine",description:"Automated invoice generation, payment processing, and dunning management with configurable billing cycles."},{title:"Customer Management",description:"Comprehensive customer portal with usage analytics, invoice history, and subscription management."},{title:"Analytics & Reporting",description:"Detailed analytics dashboard with revenue tracking, usage patterns, and business intelligence insights."},{title:"Multi-Currency Support",description:"Support for multiple currencies with automatic currency conversion and localized pricing."},{title:"API & Webhooks",description:"RESTful APIs for all operations and webhooks for real-time event notifications and integrations."},{title:"Prepaid Credits",description:"Wallet system for prepaid credits with automatic top-ups and usage deduction capabilities."}],tags:["Billing","Metered Billing","Usage-Based Pricing","SaaS","Invoicing","Payment Processing","Analytics","API","Open Source","Revenue Management","Subscription Management","Financial Technology"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(64),o=y(32),n=y(32),r=y(32),s=v(),c=["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-db:5432/lago-db"),"REDIS_URL=redis://:".concat(s,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-redis:6379"),"SECRET_KEY_BASE=".concat(i),"RAILS_ENV=production","RAILS_LOG_TO_STDOUT=true","LAGO_RSA_PRIVATE_KEY=".concat(e.rsaPrivateKey),"LAGO_SIDEKIQ_WEB=true","LAGO_ENCRYPTION_PRIMARY_KEY=".concat(o),"LAGO_ENCRYPTION_DETERMINISTIC_KEY=".concat(n),"LAGO_ENCRYPTION_KEY_DERIVATION_SALT=".concat(r),"LAGO_USE_AWS_S3=false","LAGO_USE_GCS=false","LAGO_PDF_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-pdf:3000"),"LAGO_REDIS_CACHE_URL=redis://:".concat(s,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"LAGO_DISABLE_SEGMENT=true","LAGO_DISABLE_SIGNUP=false","LAGO_DISABLE_PDF_GENERATION=false","LAGO_OAUTH_PROXY_URL=https://proxy.getlago.com","LAGO_API_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)"),"LAGO_FRONT_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-frontend.$(EASYPANEL_HOST)")];return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:s}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-pdf"),source:{type:"image",image:e.pdfServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-migrate"),source:{type:"image",image:e.appServiceImage},env:He(c).join("\n"),deploy:{command:"./scripts/migrate.sh"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),source:{type:"image",image:e.appServiceImage},env:He(c).join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{command:"./scripts/start.api.sh"},mounts:[{type:"volume",name:"storage",mountPath:"/app/storage"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-frontend"),source:{type:"image",image:e.frontendServiceImage},env:["API_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)"),"APP_ENV=production","
1LAGO_OAUTH_PROXY_URL=https://proxy.getlago.com","LAGO_DISABLE_PDF_GENERATION=false","LAGO_API_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)"),"LAGO_FRONT_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-frontend.$(EASYPANEL_HOST)")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),source:{type:"image",image:e.appServiceImage},env:He(c).join("\n"),deploy:{command:"./scripts/start.worker.sh"},mounts:[{type:"volume",name:"storage",mountPath:"/app/storage"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-clock"),source:{type:"image",image:e.appServiceImage},env:He(c).join("\n"),deploy:{command:"./scripts/start.clock.sh"}}}),{services:t}}},{slug:"langflow",meta:{name:"Langflow",description:"Langflow is an innovative application designed to facilitate the experimentation and prototyping of LangChain pipelines. It provides a user-friendly interface for creating flows by simply dragging and connecting LangChain components such as LLMs, prompt serializers, agents, and chains. You can easily modify prompt parameters, link chains and agents, track an agent's thought process, and export your flow. Once your flow is ready, you can export it as a JSON file for use with LangChain. Langflow also integrates with langchain-serve for one-command deployment to Jina AI Cloud. With Langflow, building and deploying LangChain pipelines has never been easier.",instructions:"Default username=admin, password=admin",changeLog:[{date:"2023-06-22",description:"first release"},{date:"2024-10-16",description:"Version updated to 1.0.19"},{date:"2025-04-10",description:"Version updated to 1.3.2"},{date:"2025-07-22",description:"Version bumped to 1.5.0"},{date:"2025-12-25",description:"Version bumped to 1.7.1"},{date:"2026-02-21",description:"Version bumped to 1.7.3"},{date:"2026-05-08",description:"Version bumped to 1.9.2"}],links:[{label:"Github",url:"https://github.com/logspace-ai/langflow"}],contributors:[{name:"AlexSerban",url:"https://github.com/serban-alexandru"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"langflow"},appServiceImage:{type:"string",title:"App Service Image",default:"langflowai/langflow:1.9.2"},username:{type:"string",title:"Username"},password:{type:"string",title:"Password"}}},benefits:[{title:"Effortless Experimentation",description:"Langflow provides an effortless way to experiment and prototype LangChain pipelines. It allows users to easily create, manage, and configure their pipelines, making it an ideal tool for those who want to experiment with different configurations and setups."},{title:"Easy Prototyping",description:"With Langflow, prototyping LangChain pipelines is a breeze. Users can simply drag and drop components onto the canvas and connect them together to create their pipeline. This makes it easy to visualize and understand the flow of data."},{title:"Flexible Deployment",description:"Langflow offers flexible deployment options. It can be deployed on Google Cloud Platform or Jina AI Cloud, giving users the freedom to choose the platform that best suits their needs."}],features:[{title:"Command Line Interface",description:"Langflow provides a command-line interface for easy management and configuration. It offers a variety of options that can be set to customize the server, including the host, number of worker processes, worker timeout, port, and more."},{title:"Creating Flows",description:"Creating flows with Langflow is easy. Users can simply drag sidebar components onto the canvas and connect them together to create their pipeline. Langflow provides a range of LangChain components to choose from, including LLMs, prompt serializers, agents, and chains."},{title:"Exporting Flows",description:"Once a flow has been created, it can be exported as a JSON file to use with LangChain. This makes it easy to share and reuse flows."}],tags:["Data Science","Developer Tools"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["LANGFLOW_DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"LANGFLOW_AUTO_LOGIN=false","LANGFLOW_SUPERUSER=".concat(e.username),"LANGFLOW_SUPERUSER_PASSWORD=".concat(e.password)].join("\n"),deploy:{replicas:1,command:null,zeroDowntime:!0},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7860}],mounts:[{type:"volume",name:"data",mountPath:"/var/lib/langflow"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),image:"postgres:16",password:a}}),{services:t}}},{slug:"langfuse",meta:{name:"Langfuse",description:"Langfuse is a powerful, self-hosted observability platform designed for AI applications. It simplifies monitoring, debugging, and optimizing your AI workflows with detailed insights, customizable metrics, and flexible integrations. Langfuse provides a clean and intuitive interface, robust API access, and plugin support to extend its functionality. It ensures privacy and compliance by allowing you to maintain full control over your data with a self-hosted solution. The application is accessible via your host and supports multi-platform awareness, ensuring compatibility with various architectures.",instructions:null,changeLog:[{date:"2026-05-19",description:"Updated to v3.174.1"},{date:"2024-12-23",description:"Template Release"},{date:"2025-07-22",description:"Version bumped to 3.84"},{date:"2025-12-25",description:"Version bumped to 3.142"},{date:"2026-02-21",description:"Version bumped to 3.155"}],links:[{label:"Documentation",url:"https://langfuse.com/docs"},{label:"Github",url:"https://github.com/langfuse/langfuse"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","workerImage","clickHouseImage","minioImage","clickHouseUser","clickHousePassword","minioUser","minioPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"langfuse"},appServiceImage:{type:"string",title:"App Service Image",default:"langfuse/langfuse:3.174.1"},workerImage:{type:"string",title:"App Service Image",default:"langfuse/langfuse-worker:3.155"},clickHouseImage:{type:"string",title:"App Service Image",default:"clickhouse/clickhouse-server"},minioImage:{type:"string",title:"App Service Image",default:"minio/minio:latest"},clickHouseUser:{type:"string",title:"Click House User",default:"clickhouse"},clickHousePassword:{type:"string",title:"ClickHouse Password",default:"clickhouse"},minioUser:{type:"string",title:"Minio User",default:"admin"},minioPassword:{type:"string",title:"Minio Password",default:"password"}}},benefits:[{title:"Streamlined Observability for AI Applications",description:"Langfuse simplifies observability by providing an intuitive way to monitor, analyze, and optimize your AI application workflows."},{title:"Self-Hosted Flexibility",description:"Maintain full control over your data and operations with a self-hosted setup that ensures privacy and compliance."},{title:"Enhanced Debugging",description:"Quickly identify and resolve issues with detailed logs, traces, and metrics tailored for AI-driven systems."}],features:[{title:"Powerful API Access",description:"Seamlessly integrate Langfuse into your workflows using its robust API for efficient data ingestion and analysis."},{title:"Built-In Analytics",description:"Gain actionable insights with comprehensive analytics, including performance metrics, user interactions, and bottleneck identification."},{title:"Plugin Support",description:"Enhance Langfuse\u2019s capabilities with plugins to adapt it to your specific use case."},{title:"Customizable Monitoring",description:"Define custom metrics and observability rules to suit your AI application\u2019s unique requirements."}],tags:["Observability","Self-Hosted","AI Monitoring","Analytics"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v(),i=v(),o=["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"SALT=mysalt","ENCRYPTION_KEY=0000000000000000000000000000000000000000000000000000000000000000","TELEMETRY_ENABLED=true","LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=true","CLICKHOUSE_MIGRATION_URL=clickhouse://$(PROJECT_NAME)_".concat(e.appServiceName,"-clickhouse:9000"),"CLICKHOUSE_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-clickhouse:8123"),"CLICKHOUSE_USER=".concat(e.clickHouseUser),"CLICKHOUSE_PASSWORD=".concat(e.clickHousePassword),"CLICKHOUSE_CLUSTER_ENABLED=false","LANGFUSE_S3_EVENT_UPLOAD_BUCKET=langfuse","LANGFUSE_S3_EVENT_UPLOAD_REGION=auto","LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID=".concat(e.minioUser),"LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=".concat(e.minioPassword),"LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-minio:9000"),"LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE=true","LANGFUSE_S3_EVENT_UPLOAD_PREFIX=events/","LANGFUSE_S3_MEDIA_UPLOAD_BUCKET=langfuse","LANGFUSE_S3_MEDIA_UPLOAD_REGION=auto","LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID=".concat(e.minioUser),"LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY=".concat(e.minioPassword),"LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-minio:9000"),"LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE=true","LANGFUSE_S3_MEDIA_UPLOAD_PREFIX=media/","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_AUTH=".concat(i)];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:["NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_SECRET=mysecret","LANGFUSE_INIT_ORG_ID=","LANGFUSE_INIT_ORG_NAME=","LANGFUSE_INIT_PROJECT_ID=","LANGFUSE_INIT_PROJECT_NAME=","LANGFUSE_INIT_PROJECT_PUBLIC_KEY=","LANGFUSE_INIT_PROJECT_SECRET_KEY=","LANGFUSE_INIT_USER_EMAIL=","LANGFUSE_INIT_USER_NAME=","LANGFUSE_INIT_USER_PASSWORD=","LANGFUSE_SDK_CI_SYNC_PROCESSING_ENABLED=false","LANGFUSE_READ_FROM_POSTGRES_ONLY=false","LANGFUSE_READ_FROM_CLICKHOUSE_ONLY=true","LANGFUSE_RETURN_FROM_CLICKHOUSE=true",o.join("\n")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:o.join("\n"),source:{type:"image",image:e.workerImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-clickhouse"),env:["CLICKHOUSE_DB=default","CLICKHOUSE_USER=".concat(e.clickHouseUser),"CLICKHOUSE_PASSWORD=".concat(e.clickHousePassword)].join("\n"),source:{type:"image",image:e.clickHouseImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"langfuse_clickhouse_data",mountPath:"/var/lib/clickhouse"},{type:"volume",name:"langfuse_clickhouse_logs",mountPath:"/var/log/clickhouse-server"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),env:["MINIO_SERVER_URL=https://$(EASYPANEL_DOMAIN)","MINIO_ROOT_USER=admin","MINIO_ROOT_PASSWORD=password"].join("\n"),source:{type:"image",image:e.minioImage},deploy:{command:'minio server /data --console-address ":9001"'},domains:[{host:"console-$(EASYPANEL_DOMAIN)",port:9001},{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"languagetool",meta:{name:"Languagetool",description:"LanguageTool is your personal writing assistant, designed to enhance your writing skills and ensure error-free communication. This multilingual app offers a comprehensive spelling, style, and grammar checker, capable of correcting or paraphrasing texts in a variety of languages. It integrates seamlessly with various platforms including browsers like Chrome, Edge, Firefox, Safari, Opera, and email platforms like Gmail and Outlook. It also works with office plugins such as Google Docs, Word, OpenOffice, and LibreOffice. LanguageTool is equipped with an AI-based style and grammar checker trusted by renowned organizations worldwide. It offers a distraction-free writing experience, a personal dictionary, and quality scoring for evaluating style and grammar. The app also features a 'Picky Mode' for advanced punctuation, style, and typography suggestions. LanguageTool is not just about correcting mistakes, it also helps improve your writing style by detecting overused phrases, foreign terms, redundant words, and improper word choice. It even assists in paraphrasing sentences to make them more formal, fluent, simple or concise. LanguageTool is the perfect tool for anyone who wants to deliver clear, precise, and stylistically correct writing.",instructions:null,changeLog:[{date:"2023-2-24",description:"first release"},{date:"2025-07-22",description:"Version bumped to 6.6"}],links:[{label:"Website",url:"https://languagetool.org"},{label:"Github",url:"https://github.com/languagetool-org/languagetool"}
1],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"languagetool"},appServiceImage:{type:"string",title:"App Service Image",default:"silviof/docker-languagetool:6.6"}}},benefits:[{title:"Enhanced Writing Quality",description:"LanguageTool is a comprehensive writing assistant that helps you improve the quality of your texts. It corrects spelling, grammar, and style errors, ensuring your writing is clear, precise, and stylistically correct."},{title:"Multilingual Support",description:"LanguageTool supports a wide range of languages, making it a versatile tool for users worldwide. Whether you're writing in English, Spanish, German, French, or any other supported language, LanguageTool is there to assist you."},{title:"AI-Powered Paraphrasing",description:"LanguageTool uses artificial intelligence to help you find the right words. It can rephrase your sentences to be more formal, fluent, simple, or concise, enhancing the overall readability of your text."}],features:[{title:"Spelling and Grammar Checker",description:"LanguageTool identifies and corrects spelling and grammar mistakes in your text. It can spot incorrect subject-verb agreement, wrong plural forms, misuse of grammatical forms, and more."},{title:"Punctuation Corrector",description:"LanguageTool ensures you're using punctuation correctly. It can help you form complex sentences and tell you when you've used too many exclamation points."},{title:"Style Improver",description:"LanguageTool detects overused phrases, foreign terms, redundant words, and improper word choice. It helps you improve the style of your writing, making it more engaging and effective."},{title:"Casing Corrector",description:"LanguageTool corrects incorrect casing in your text. Whether you're writing capitalized names, months, places, or national identities, LanguageTool ensures they're correctly cased."},{title:"Browser and Email Add-ons",description:"LanguageTool offers browser and email add-ons, allowing you to improve your text while typing an email, a blog post, or a simple tweet. It integrates with your favorite office programs, ensuring error-free results."}],tags:["Productivity","Writing","Grammar Checker"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8010}]}}),{services:t}}},{slug:"lavalink",meta:{name:"Lavalink",description:"Lavalink is a standalone audio sending node designed to facilitate the process of sending audio without it ever reaching any of your shards. It is powered by Lavaplayer and Koe, and is currently being used in production by several popular bots. The app offers a range of features including Twitch/YouTube stream support, an event system, seeking, volume control, and a REST API for resolving Lavaplayer tracks and controlling players. It also provides statistics which are useful for load balancing. Lavalink is designed to have a minimal CPU/memory footprint, and it supports plugins. It is compatible with Java 17 LTS or newer, and it follows Semantic Versioning.",instructions:null,changeLog:[{date:"2019-07-24",description:"first release"},{date:"2025-02-28",description:"Version bumped to efed40d-alpine"},{date:"2025-07-22",description:"Version bumped to c7eb5d3-alpine"}],links:[{label:"Documentation",url:"https://github.com/freyacodes/Lavalink/blob/master/README.md"},{label:"Github",url:"https://github.com/freyacodes/Lavalink"}],contributors:[{name:"kaname-png",url:"https://github.com/kaname-png"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["password","appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lavalink-server"},appServiceImage:{type:"string",title:"App Service Image",default:"fredboat/lavalink:c7eb5d3-alpine"},password:{type:"string",title:"Auth server password"}}},benefits:[{title:"High-Quality Audio Streaming",description:"Lavalink offers high-quality audio streaming, allowing you to send audio without it ever reaching any of your shards. This ensures a smooth and uninterrupted audio experience."},{title:"Efficient Resource Usage",description:"Lavalink is designed to have a minimal CPU/memory footprint, making it an efficient choice for audio streaming. It ensures that your system resources are used optimally."},{title:"Support for Multiple Streaming Platforms",description:"Lavalink supports streaming from various platforms including Twitch and YouTube. This means you can stream audio from your favorite platforms with ease."}],features:[{title:"Event System",description:"Lavalink comes with an event system, allowing for more interactive and dynamic audio streaming experiences."},{title:"Seeking and Volume Control",description:"With Lavalink, you have full control over your audio streams. You can seek through tracks and adjust the volume as per your preference."},{title:"REST API",description:"Lavalink provides a REST API for resolving Lavaplayer tracks, controlling players, and more. This allows for more flexibility and control over your audio streaming."},{title:"Statistics",description:"Lavalink provides statistics that are good for load balancing, helping you manage your resources more effectively."},{title:"Basic Authentication",description:"Lavalink includes basic authentication features, ensuring that your audio streams are secure."},{title:"Prometheus Metrics",description:"Lavalink supports Prometheus metrics, allowing you to monitor your audio streaming performance effectively."},{title:"Docker Images",description:"Lavalink provides Docker images, making it easier to deploy and run the app."},{title:"Plugin Support",description:"Lavalink supports plugins, allowing you to extend its functionality according to your needs."}],tags:["Developer Tools","Media","Music"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["LAVALINK_SERVER_PASSWORD=".concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:2333}],mounts:[{type:"volume",name:"lavalink",mountPath:"/opt/Lavalink"}]}}),{services:t}}},{slug:"lazylibrarian",meta:{name:"LazyLibrarian",description:"LazyLibrarian is an open-source tool designed to manage and automate the downloading, organizing, and serving of eBooks, audiobooks, and magazines. It integrates seamlessly with Usenet and torrent services to fetch content based on user preferences. With LazyLibrarian, you can search, download, and manage your media library effortlessly. It supports multiple download providers, metadata retrieval, and integration with Calibre for organizing your eBook collection. LazyLibrarian is user-friendly, flexible, and provides a centralized solution for book lovers to manage their digital libraries.",instructions:null,changeLog:[{date:"2024-12-30",description:"First release"},{date:"2025-12-25",description:"Version bumped to bfcd7758-ls233"},{date:"2026-02-21",description:"Version bumped to dada182d-ls257"},{date:"2026-05-08",description:"Version bumped to c3a20585-ls280"}],links:[{label:"Website",url:"https://lazylibrarian.gitlab.io"},{label:"Documentation",url:"https://lazylibrarian.gitlab.io"},{label:"Github",url:"https://gitlab.com/LazyLibrarian/LazyLibrarian"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lazylibrarian"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/lazylibrarian:c3a20585-ls280"}}},benefits:[{title:"Easy Media Management",description:"LazyLibrarian simplifies managing eBooks, audiobooks, and magazines with automated downloads and metadata organization."},{title:"Multiple Download Options",description:"LazyLibrarian integrates with Usenet and torrent providers, giving you flexibility in how you fetch content."},{title:"Metadata and Covers",description:"Automatically fetch metadata and book covers for your collection to keep it organized and visually appealing."},{title:"Integration with Calibre",description:"Integrate LazyLibrarian with Calibre to organize and serve your eBook collection effortlessly."},{title:"Open Source & Flexible",description:"LazyLibrarian is open-source and customizable, allowing you to tailor it to your specific needs."}],features:[{title:"eBook and Audiobook Support",description:"LazyLibrarian manages both eBooks and audiobooks, making it a comprehensive solution for your media library."},{title:"Automated Downloading",description:"Automatically search for and download eBooks, audiobooks, and magazines based on your preferences."},{title:"Multiple Providers",description:"Supports a wide range of Usenet and torrent providers for flexible content fetching."},{title:"Metadata Management",description:"Fetch and manage metadata, including descriptions, covers, and authors for all your books."},{title:"Integrated Search",description:"Perform searches directly from LazyLibrarian\u2019s interface across multiple download providers."},{title:"Calibre Integration",description:"Seamlessly integrate with Calibre to organize and serve your library efficiently."},{title:"Web-Based Interface",description:"Manage your library from any device with LazyLibrarian\u2019s web-based user interface."},{title:"Notifications",description:"Receive notifications for downloads and updates via email or other supported services."},{title:"Custom Filters",description:"Customize filters to download only the content that matches your preferences."},{title:"User-Friendly Setup",description:"Easy to set up and configure, with detailed documentation for new users."}],tags:["eBooks","Audiobooks","Library","Media Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC","DOCKER_MODS=linuxserver/mods:universal-calibre|linuxserver/mods:lazylibrarian-ffmpeg"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5299}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"downloads",mountPath:"/downloads"},{type:"volume",name:"books",mountPath:"/books"}]}}),{services:t}}},{slug:"leantime",meta:{name:"Leantime",description:"Leantime is an open-source project management system designed for startups and small teams. It offers a simple and intuitive interface to manage tasks, projects, and team collaboration efficiently. With Leantime, you can organize your work using timelines, kanban boards, and task lists. It also includes features like time tracking, milestones, and idea boards to streamline project workflows. Leantime supports integrations with various third-party tools, making it a flexible and scalable solution. Its emphasis on usability and simplicity ensures that teams can focus on productivity and achieving goals. Leantime is distributed under an open-source license, allowing for customization to meet the unique needs of any organization.",instructions:null,changeLog:[{date:"2025-01-13",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 3.4.3"},{date:"2025-07-22",description:"Version bumped to 3.5.10"},{date:"2025-12-25",description:"Version bumped to 3.5.12"},{date:"2026-02-21",description:"Version bumped to 3.7.0"},{date:"2026-05-04",description:"Version bumped to 3.7.3"}],links:[{label:"Website",url:"https://leantime.io/"},{label:"Documentation",url:"https://docs.leantime.io/"},{label:"Github",url:"https://github.com/Leantime/leantime"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"leantime"},appServiceImage:{type:"string",title:"App Service Image",default:"leantime/leantime:3.7.3"}}},benefits:[{title:"Streamlined Project Management",description:"Leantime provides tools like timelines, kanban boards, and task lists to help teams organize their projects and tasks efficiently."},{title:"Scalable and Flexible",description:"Leantime is suitable for startups and small teams, and it integrates with various third-party tools, ensuring adaptability to different workflows."},{title:"Open Source and Customizable",description:"Leantime is open-source, allowing teams to customize the platform to meet their unique project management needs."}],features:[{title:"Task Management",description:"Leantime enables users to manage tasks with an easy-to-use interface, ensuring that team members stay aligned on project goals."},{title:"Time Tracking",description:"Leantime includes built-in time tracking features, helping teams monitor the time spent on tasks and projects for better efficiency."},{title:"Milestones and Deadlines",description:"Leantime allows teams to set milestones and deadlines, ensuring that projects progress according to schedule."}],tags:["Project Management","Open Source","Collaboration","Task Management","Kanban","Time Tracking","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["LEAN_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"LEAN_DB_USER=mysql","LEAN_DB_PASSWORD=".concat(a),"LEAN_DB_DATABASE=$(PROJECT_NAME)","LEAN_APP_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"lenpaste",meta:{name:"Lenpaste",description:"Lenpaste is a web service that allows you to share notes anonymously. It is an open-source alternative to pastebin.com. The app supports multiple languages and uses cookies only to store settings. It can work without JavaScript and has its own API. Lenpaste allows you to set maximum length for the paste title and body, maximum lifetime of the paste, and rate limits for viewing and creating pastes. It also provides options to prohibit search engine crawlers from indexing the site and to set information about the server admin. Lenpaste is self-hosted and provides a list of public servers managed by various contributors.",instructions:null,changeLog:[{date:"2023-1-28",description:"update to v1.3"},{date:"2022-12-20",description:"first release"}],links:[{label:"Documentation",url:"https://git.lcomrade.su/root/lenpaste/src/branch/main/docs"},{label:"Gitea",url:"https://git.lcomrade.su/root/lenpaste"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Leonid Maslakov",url:"https://lcomrade.su"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lenpaste"},appServiceImage:{type:"string",title:"App Service Image",default:"git.lcomrade.su/root/lenpaste:1.3"}}},benefits:[{title:"Anonymity",description:"Lenpaste allows you to share notes anonymously, ensuring your privacy and confidentiality."},{title:"No Registration Required",description:"With Lenpaste, there's no need to go through a lengthy sign-up process. You can start sharing notes immediately."},{title:"Multilingual Support",description:"Lenpaste supports multiple languages, making it accessible to users from different linguistic backgrounds."},{title:"Self-Hosted",description:"Lenpaste is open-source and self-hosted, giving you full control over your data and usage."}],features:[{title:"Note Sharing",description:"Lenpaste allows you to easily share notes with others. It's a great tool for quickly sharing text or code snippets."},{title:"Multiple Language Support",description:"Lenpaste supports multiple languages, ensuring that users from different linguistic backgrounds can use the app with ease."},{title:"Customizable Settings",description:"Lenpaste uses cookies only to store settings, allowing you to customize your user experience according to your preferences."},{title:"API Availability",description:"Lenpaste has its own API, enabling developers to integrate it with other applications or services."}],tags:["Code Hosting","Documents","Notes"],logo:null,screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"librechat",meta:{name:"LibreChat",description:"LibreChat is a free, open source clone of ChatGPT that supports multiple AI providers and models. It offers a familiar chat interface with support for OpenAI, Anthropic, Google, Azure OpenAI, and many other AI providers. LibreChat features conversation management, preset configurations, plugin support, multi-user authentication, and extensive customization options. It includes advanced features like RAG (Retrieval Augmented Generation), web search capabilities, file uploads, image generation, and comprehensive user management. Perfect for organizations and individuals who want ChatGPT-like functionality while maintaining full control over their data and conversations.",instructions:"Configure the OpenAI API Key.",changeLog:[{date:"2025-07-21",description:"Initial release (aec1777a90c03314ff5dd9e218c7ce179181eba2)"}],links:[{label:"Website",url:"https://librechat.ai"},{label:"Documentation",url:"https://docs.librechat.ai"},{label:"GitHub",url:"https://github.com/danny-avila/LibreChat"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","librechatImage","meilisearchImage","vectorDbImage","ragApiImage","appTitle","allowEmailLogin","allowRegistration","openaiApiKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"librechat"},librechatImage:{type:"string",title:"LibreChat Image",default:"ghcr.io/danny-avila/librechat-dev:aec1777a90c03314ff5dd9e218c7ce179181eba2"},meilisearchImage:{type:"string",title:"Meilisearch Image",default:"getmeili/meilisearch:v1.12.3"},vectorDbImage:{type:"string",title:"Vector Database Image",default:"ankane/pgvector:v0.5.1"},ragApiImage:{type:"string",title:"RAG API Image",default:"ghcr.io/danny-avila/librechat-rag-api-dev-lite:8cc6695544457e4164d6f8275f0805f051f363af"},appTitle:{type:"string",title:"Application Title",default:"LibreChat",description:"The title displayed in the application header"},allowEmailLogin:{type:"boolean",title:"Allow Email Login",default:!0,description:"Enable email/password authentication"},allowRegistration:{type:"boolean",title:"Allow Registration",default:!0,description:"Allow new users to register accounts"},openaiApiKey:{type:"string",title:"OpenAI API Key",description:"The API key for the OpenAI provider"}}},benefits:[{title:"Multi-Provider AI Support",description:"Support for OpenAI, Anthropic, Google, Azure OpenAI, and many other AI providers in a single interface with seamless model switching."},{title:"ChatGPT-like Experience",description:"Familiar chat interface with conversation management, message editing, and all the features you expect from modern AI chat applications."},{title:"RAG Capabilities",description:"Upload and chat with your own documents using advanced Retrieval Augmented Generation with vector search and semantic understanding."},{title:"Self-Hosted Privacy",description:"Complete control over your conversations and data with self-hosted deployment, ensuring privacy and compliance with your requirements."},{title:"Advanced Features",description:"Plugin support, web search, image generation, file uploads, conversation presets, and extensive customization options."},{title:"Multi-User Support",description:"User authentication, role management, conversation sharing, and administration tools for team and organizational use."},{title:"Enterprise Ready",description:"Scalable architecture with database persistence, search capabilities, and comprehensive configuration options for production use."}],features:[{title:"Multiple AI Providers",description:"Connect to OpenAI, Anthropic, Google, Azure OpenAI, and dozens of other AI providers through a unified chat interface."},{title:"Conversation Management",description:"Organize conversations, search chat history, export conversations, and manage multiple concurrent chats with different models."},{title:"RAG Integration",description:"Upload documents and chat with your own data using vector embeddings and semantic search for context-aware responses."},{title:"Plugin System",description:"Extend functionality with plugins for web search, image generation, code execution, and integration with external services."},{title:"User Authentication",description:"Secure user management with email authentication, social login options, and role-based access controls."},{title:"Preset Configurations",description:"Create and share conversation presets with custom prompts, parameters, and model configurations for consistent interactions."},{title:"File Upload Support",description:"Upload and share files in conversations, including images, documents, and other media with AI analysis capabilities."},{title:"Search Functionality",description:"Powerful search across all conversations and uploaded content using Meilisearch for fast and accurate results."},{title:"Admin Dashboard",description:"Comprehensive administration interface for user management, system configuration, and monitoring of application usage."},{title:"API Integration",description:"RESTful API for programmatic access, webhook support, and integration with external applications and workflows."}],tags:["AI","ChatGPT","OpenAI","Anthropic","Google","Multi-Provider","RAG","Chat Interface","Self-Hosted","Enterprise"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v(),n=v(),r=v(),s=v(),c=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.librechatImage},env:["HOST=0.0.0.0","PORT=3080","MONGO_URI=mongodb://mongo:".concat(c,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-mongo:27017/?tls=false"),"MEILI_HOST=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-meilisearch:7700"),"RAG_PORT=8000","RAG_API_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-rag-api:8000"),"DOMAIN_CLIENT=https://$(PRIMARY_DOMAIN)","DOMAIN_SERVER=https://$(PRIMARY_DOMAIN)","NO_INDEX=true","TRUST_PROXY=1","CONSOLE_JSON=false","DEBUG_LOGGING=true","DEBUG_CONSOLE=false","SEARCH=true","MEILI_NO_ANALYTICS=true","MEILI_MASTER_KEY=".concat(i),"ALLOW_EMAIL_LOGIN=".concat(e.allowEmailLogin),"ALLOW_REGISTRATION=".concat(e.allowRegistration),"ALLOW_SOCIAL_LOGIN=false","ALLOW_SOCIAL_REGISTRATION=false","ALLOW_PASSWORD_RESET=false","ALLOW_UNVERIFIED_EMAIL_LOGIN=true","SESSION_EXPIRY=1000 * 60 * 15","REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7","JWT_SECRET=".concat(o),"JWT_REFRESH_SECRET=".concat(n),"APP_TITLE=".concat(e.appTitle),"HELP_AND_FAQ_URL=https://librechat.ai","ALLOW_SHARED_LINKS=true","ALLOW_SHARED_LINKS_PUBLIC=true","CREDS_KEY=".concat(r),"CREDS_IV=".concat(s),"DEBUG_PLUGINS=true","BAN_VIOLATIONS=true","BAN_DURATION=1000 * 60 * 60 * 2","BAN_INTERVAL=20","LOGIN_VIOLATION_SCORE=1","REGISTRATION_VIOLATION_SCORE=1","CONCURRENT_VIOLATION_SCORE=1","MESSAGE_VIOLATION_SCORE=1","NON_BROWSER_VIOLATION_SCORE=20","LIMIT_CONCURRENT_MESSAGES=true","CONCURRENT_MESSAGE_MAX=2","LIMIT_MESSAGE_IP=true","MESSAGE_IP_MAX=40","MESSAGE_IP_WINDOW=1","LIMIT_MESSAGE_USER=false","MESSAGE_USER_MAX=40","MESSAGE_USER_WINDOW=1",'CONFIG_PATH="/app/librechat.yaml"'].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3080}],mounts:[{type:"volume",name:"librechat-images",mountPath:"/app/client/public/images"},{type:"volume",name:"librechat-uploads",mountPath:"/app/uploads"},{type:"volume",name:"librechat-logs",mountPath:"/app/api/logs"},{type:"file",content:'# For more information, see the Configuration Guide:\n# https://www.librechat.ai/docs/configuration/librechat_yaml\n\n# Configuration version (required)\nversion: 1.2.1\n\n# Cache settings: Set to true to enable c
1aching\ncache: true\n\n# File strategy s3/firebase\n# fileStrategy: "s3"\n\n# Custom interface configuration\ninterface:\n  customWelcome: "Welcome to LibreChat! Enjoy your experience."\n  # MCP Servers UI configuration\n  mcpServers:\n    placeholder: \'MCP Servers\'\n  # Privacy policy settings\n  privacyPolicy:\n    externalUrl: \'https://librechat.ai/privacy-policy\'\n    openNewTab: true\n\n  # Terms of service\n  termsOfService:\n    externalUrl: \'https://librechat.ai/tos\'\n    openNewTab: true\n    modalAcceptance: true\n    modalTitle: "Terms of Service for LibreChat"\n    modalContent: |\n      # Terms and Conditions for LibreChat\n\n      *Effective Date: February 18, 2024*\n\n      Welcome to LibreChat, the informational website for the open-source AI chat platform, available at https://librechat.ai. These Terms of Service ("Terms") govern your use of our website and the services we offer. By accessing or using the Website, you agree to be bound by these Terms and our Privacy Policy, accessible at https://librechat.ai//privacy.\n\n      ## 1. Ownership\n\n      Upon purchasing a package from LibreChat, you are granted the right to download and use the code for accessing an admin panel for LibreChat. While you own the downloaded code, you are expressly prohibited from reselling, redistributing, or otherwise transferring the code to third parties without explicit permission from LibreChat.\n\n      ## 2. User Data\n\n      We collect personal data, such as your name, email address, and payment information, as described in our Privacy Policy. This information is collected to provide and improve our services, process transactions, and communicate with you.\n\n      ## 3. Non-Personal Data Collection\n\n      The Website uses cookies to enhance user experience, analyze site usage, and facilitate certain functionalities. By using the Website, you consent to the use of cookies in accordance with our Privacy Policy.\n\n      ## 4. Use of the Website\n\n      You agree to use the Website only for lawful purposes and in a manner that does not infringe the rights of, restrict, or inhibit anyone else\'s use and enjoyment of the Website. Prohibited behavior includes harassing or causing distress or inconvenience to any person, transmitting obscene or offensive content, or disrupting the normal flow of dialogue within the Website.\n\n      ## 5. Governing Law\n\n      These Terms shall be governed by and construed in accordance with the laws of the United States, without giving effect to any principles of conflicts of law.\n\n      ## 6. Changes to the Terms\n\n      We reserve the right to modify these Terms at any time. We will notify users of any changes by email. Your continued use of the Website after such changes have been notified will constitute your consent to such changes.\n\n      ## 7. Contact Information\n\n      If you have any questions about these Terms, please contact us at [email protected].\n\n      By using the Website, you acknowledge that you have read these Terms of Service and agree to be bound by them.\n\n  endpointsMenu: true\n  modelSelect: true\n  parameters: true\n  sidePanel: true\n  presets: true\n  prompts: true\n  bookmarks: true\n  multiConvo: true\n  agents: true\n  # Temporary chat retention period in hours (default: 720, min: 1, max: 8760)\n  # temporaryChatRetention: 1\n\n# Example Cloudflare turnstile (optional)\n#turnstile:\n#  siteKey: "your-site-key-here"\n#  options:\n#    language: "auto"    # "auto" or an ISO 639-1 language code (e.g. en)\n#    size: "normal"      # Options: "normal", "compact", "flexible", or "invisible"\n\n# Example Registration Object Structure (optional)\nregistration:\n  socialLogins: [\'github\', \'google\', \'discord\', \'openid\', \'facebook\', \'apple\', \'saml\']\n  # allowedDomains:\n  # - "gmail.com"\n\n\n# Example Balance settings\n# balance:\n#   enabled: false\n#   startBalance: 20000\n#   autoRefillEnabled: false\n#   refillIntervalValue: 30\n#   refillIntervalUnit: \'days\'\n#   refillAmount: 10000\n\n# speech:\n#   tts:\n#     openai:\n#       url: \'\'\n#       apiKey: \'\'\n#       model: \'\'\n#       voices: [\'\']\n\n#\n#   stt:\n#     openai:\n#       url: \'\'\n#       apiKey: \'\'\n#       model: \'\'\n\n# rateLimits:\n#   fileUploads:\n#     ipMax: 100\n#     ipWindowInMinutes: 60  # Rate limit window for file uploads per IP\n#     userMax: 50\n#     userWindowInMinutes: 60  # Rate limit window for file uploads per user\n#   conversationsImport:\n#     ipMax: 100\n#     ipWindowInMinutes: 60  # Rate limit window for conversation imports per IP\n#     userMax: 50\n#     userWindowInMinutes: 60  # Rate limit window for conversation imports per user\n\n# Example Actions Object Structure\nactions:\n  allowedDomains:\n    - "swapi.dev"\n    - "librechat.ai"\n    - "google.com"\n\n# Example MCP Servers Object Structure\n# mcpServers:\n#   everything:\n#     # type: sse # type can optionally be omitted\n#     url: http://localhost:3001/sse\n#     timeout: 60000  # 1 minute timeout for this server, this is the default timeout for MCP servers.\n#   puppeteer
1:\n#     type: stdio\n#     command: npx\n#     args:\n#       - -y\n#       - "@modelcontextprotocol/server-puppeteer"\n#     timeout: 300000  # 5 minutes timeout for this server\n#   filesystem:\n#     # type: stdio\n#     command: npx\n#     args:\n#       - -y\n#       - "@modelcontextprotocol/server-filesystem"\n#       - /home/user/LibreChat/\n#     iconPath: /home/user/LibreChat/client/public/assets/logo.svg\n#   mcp-obsidian:\n#     command: npx\n#     args:\n#       - -y\n#       - "mcp-obsidian"\n#       - /path/to/obsidian/vault\n\n# Definition of custom endpoints\nendpoints:\n  # assistants:\n  #   disableBuilder: false # Disable Assistants Builder Interface by setting to "true"\n  #   pollIntervalMs: 3000  # Polling interval for checking assistant updates\n  #   timeoutMs: 180000  # Timeout for assistant operations\n  #   # Should only be one or the other, either "supportedIds" or "excludedIds"\n  #   supportedIds: ["asst_supportedAssistantId1", "asst_supportedAssistantId2"]\n  #   # excludedIds: ["asst_excludedAssistantId"]\n  #   # Only show assistants that the user created or that were created externally (e.g. in Assistants playground).\n  #   # privateAssistants: false # Does not work with "supportedIds" or "excludedIds"\n  #   # (optional) Models that support retrieval, will default to latest known OpenAI models that support the feature\n  #   retrievalModels: ["gpt-4-turbo-preview"]\n  #   # (optional) Assistant Capabilities available to all users. Omit the ones you wish to exclude. Defaults to list below.\n  #   capabilities: ["code_interpreter", "retrieval", "actions", "tools", "image_vision"]\n  # agents:\n  #   # (optional) Default recursion depth for agents, defaults to 25\n  #   recursionLimit: 50\n  #   # (optional) Max recursion depth for agents, defaults to 25\n  #   maxRecursionLimit: 100\n  #   # (optional) Disable the builder interface for agents\n  #   disableBuilder: false\n  #   # (optional) Agent Capabilities available to all users. Omit the ones you wish to exclude. Defaults to list below.\n  #   capabilities: ["execute_code", "file_search", "actions", "tools"]\n  custom:\n    # Groq Example\n    - name: \'groq\'\n      apiKey: \'\'\n      baseURL: \'https://api.groq.com/openai/v1/\'\n      models:\n        default:\n          [\n            \'llama3-70b-8192\',\n            \'llama3-8b-8192\',\n            \'llama2-70b-4096\',\n            \'mixtral-8x7b-32768\',\n            \'gemma-7b-it\',\n          ]\n        fetch: false\n      titleConvo: true\n      titleModel: \'mixtral-8x7b-32768\'\n      modelDisplayLabel: \'groq\'\n\n    # Mistral AI Example\n    - name: \'Mistral\' # Unique name for the endpoint\n      # For "apiKey" and "baseURL", you can use environment variables that you define.\n      # recommended environment variables:\n      apiKey: \'\'\n      baseURL: \'https://api.mistral.ai/v1\'\n\n      # Models configuration\n      models:\n        # List of default models to use. At least one value is required.\n        default: [\'mistral-tiny\', \'mistral-small\', \'mistral-medium\']\n        # Fetch option: Set to true to fetch models from API.\n        fetch: true # Defaults to false.\n\n      # Optional configurations\n\n      # Title Conversation setting\n      titleConvo: true # Set to true to enable title conversation\n\n      # Title Method: Choose between "completion" or "functions".\n      # titleMethod: "completion"  # Defaults to "completion" if omitted.\n\n      # Title Model: Specify the model to use for titles.\n      titleModel: \'mistral-tiny\' # Defaults to "gpt-3.5-turbo" if omitted.\n\n      # Summarize setting: Set to true to enable summarization.\n      # summarize: false\n\n      # Summary Model: Specify the model to use if summarization is enabled.\n      # summaryModel: "mistral-tiny"  # Defaults to "gpt-3.5-turbo" if omitted.\n\n      # Force Prompt setting: If true, sends a "prompt" parameter instead of "messages".\n      # forcePrompt: false\n\n      # The label displayed for the AI model in messages.\n      modelDisplayLabel: \'Mistral\' # Default is "AI" when not set.\n\n      # Add additional parameters to the request. Default params will be overwritten.\n      # addParams:\n      # safe_prompt: true # This field is specific to Mistral AI: https://docs.mistral.ai/api/\n\n      # Drop Default params parameters from the request. See default params in guide linked below.\n      # NOTE: For Mistral, it is necessary to drop the following parameters or you will encounter a 422 Error:\n      dropParams: [\'stop\', \'user\', \'frequency_penalty\', \'presence_penalty\']\n\n    # OpenRouter Example\n    - name: \'OpenRouter\'\n      # For "apiKey" and "baseURL", you can use environment variables that you define.\n      # recommended environment variables:\n      apiKey: \'\'\n      baseURL: \'https://openrouter.ai/api/v1\'\n      models:\n        default: [\'meta-llama/llama-3-70b-instruct\']\n        fetch: true\n      titleConvo: true\n      titleModel: \'meta-llama/llama-3-70b-instruct\'\n      # Recommended: Drop the stop parameter from the request as Openrouter models use a variety of stop tokens.\n      dropParams: [\'stop\']\n      modelDisplayLabel: \'OpenRouter\'\n\n    # Portkey AI Example\n    - name: "Portkey"\n      apiKey: "dummy"\n      baseURL: \'https://api.portkey.ai/v1\'\n      headers:\n          x-portkey-api-key: \'\'\n          x-portkey-virtual-key: \'\'\n      models:\n          default: [\'gpt-4o-mini\', \'gpt-4o\', \'chatgpt-4o-latest\']\n          fetch: true\n      titleConvo: true\n      titleModel: \'current_model\'\n      summarize: false\n      summaryMo
1del: \'current_model\'\n      forcePrompt: false\n      modelDisplayLabel: \'Portkey\'\n      iconURL: https://images.crunchbase.com/image/upload/c_pad,f_auto,q_auto:eco,dpr_1/rjqy7ghvjoiu4cd1xjbf\n# fileConfig:\n#   endpoints:\n#     assistants:\n#       fileLimit: 5\n#       fileSizeLimit: 10  # Maximum size for an individual file in MB\n#       totalSizeLimit: 50  # Maximum total size for all files in a single request in MB\n#       supportedMimeTypes:\n#         - "image/.*"\n#         - "application/pdf"\n#     openAI:\n#       disabled: true  # Disables file uploading to the OpenAI endpoint\n#     default:\n#       totalSizeLimit: 20\n#     YourCustomEndpointName:\n#       fileLimit: 2\n#       fileSizeLimit: 5\n#   serverFileSizeLimit: 100  # Global server file size limit in MB\n#   avatarSizeLimit: 2  # Limit for user avatar image size in MB\n#   imageGeneration: # Image Gen settings, either percentage or px\n#     percentage: 100\n#     px: 1024\n#   # Client-side image resizing to prevent upload errors\n#   clientImageResize:\n#     enabled: false  # Enable/disable client-side image resizing (default: false)\n#     maxWidth: 1900  # Maximum width for resized images (default: 1900)\n#     maxHeight: 1900  # Maximum height for resized images (default: 1900)\n#     quality: 0.92  # JPEG quality for compression (0.0-1.0, default: 0.92)\n# # See the Custom Configuration Guide for more information on Assistants Config:\n# # https://www.librechat.ai/docs/configuration/librechat_yaml/object_structure/assistants_endpoint\n\n# Memory configuration for user memories\n# memory:\n#   # (optional) Disable memory functionality\n#   disabled: false\n#   # (optional) Restrict memory keys to specific values to limit memory storage and improve consistency\n#   validKeys: ["preferences", "work_info", "personal_info", "skills", "interests", "context"]\n#   # (optional) Maximum token limit for memory storage (not yet implemented for token counting)\n#   tokenLimit: 10000\n#   # (optional) Enable personalization features (defaults to true if memory is configured)\n#   # When false, users will not see the Personalization tab in settings\n#   personalize: true\n#   # Memory agent configuration - either use an existing agent by ID or define inline\n#   agent:\n#     # Option 1: Use existing agent by ID\n#     id: "your-memory-agent-id"\n#     # Option 2: Define agent inline\n#     # provider: "openai"\n#     # model: "gpt-4o-mini"\n#     # instructions: "You are a memory management assistant. Store and manage user information accurately."\n#     # model_parameters:\n#     #   temperature: 0.1\n  ',mountPath:"/app/librechat.yaml"}]}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-mongo"),password:c}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-meilisearch"),source:{type:"image",image:e.meilisearchImage},env:["MEILI_HOST=http://0.0.0.0:7700","MEILI_NO_ANALYTICS=true","MEILI_MASTER_KEY=".concat(i)].join("\n"),mounts:[{type:"volume",name:"meilisearch-data",mountPath:"/meili_data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-vector-db"),password:a,user:"librechat",databaseName:"librechat_vectors",image:e.vectorDbImage}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-rag-api"),source:{type:"image",image:e.ragApiImage},env:["DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-vector-db"),"RAG_PORT=8000","POSTGRES_DB=librechat_vectors","POSTGRES_USER=librechat","POSTGRES_PASSWORD=".concat(a),"OPENAI_API_KEY=".concat(e.openaiApiKey)].join("\n")}}),{services:t}}},{slug:"libredesk",meta:{name:"Libredesk",description:"Libredesk is a modern, self-hosted helpdesk and customer support platform built with Rust. It provides a comprehensive solution for managing customer inquiries, tickets, and support workflows. Libredesk features a clean web interface, multi-user support, ticket management, and integration capabilities for businesses of all sizes.",instructions:"Default credentials are System/${SystemUserPassword}",changeLog:[{date:"2025-09-24",description:"First release (v0.7.4-alpha)"},{date:"2026-02-07",description:"Updated to v1.0.1 and added encryption key generation and auto-generation of system user password."}],links:[{label:"Website",url:"https://libredesk.io"},{label:"Documentation",url:"https://docs.libredesk.io/introduction"},{label:"DockerHub",url:"https://hub.docker.com/r/libredesk/libredesk"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"libredesk"},appServiceImage:{type:"string",title:"App Service Image",default:"libredesk/libredesk:v1.0.1"},systemUserPassword:{type:"string",title:"System User Password",default:"",description:"Password must be 10-72 characters long should contain at least one uppercase letter, one lowercase letter, one number, and one special character. Auto-generated if empty."},encryptionKey:{type:"string",title:"Encryption Key",default:"",description:"Encryption key must be 32 characters long (hex string). Generate using `openssl rand -hex 16`. Auto-generated if empty."}}},benefits:[{title:"Self-Hosted Helpdesk",description:"Complete control over your customer support platform with no external dependencies or data sharing."},{title:"Modern Architecture",description:"Built with Rust for high performance, reliability, and security in customer support operations."},{title:"Multi-User Support",description:"Support for multiple agents and administrators with role-based access control."},{title:"Ticket Management",description:"Comprehensive ticket management system with status tracking, priority levels, and assignment capabilities."},{title:"Clean Web Interface",description:"Intuitive and responsive web interface that works on desktop and mobile devices."}],features:[{title:"Ticket Management",description:"Create, assign, and track customer support tickets with full lifecycle management."},{title:"User Management",description:"Multi-user support with different roles and permissions for agents and administrators."},{title:"Database Integration",description:"PostgreSQL database for reliable data storage and Redis cache for performance optimization."},{title:"File Attachments",description:"Support for file attachments in tickets and customer communications."},{title:"Configuration Management",description:"Flexible configuration through TOML files for customizing the platform behavior."},{title:"Automatic Installation",description:"Automatic database schema installation and upgrades on startup."},{title:"Health Monitoring",description:"Built-in health checks for database connectivity and service monitoring."},{title:"RESTful API",description:"Comprehensive API for integration with external systems and custom workflows."}],tags:["Helpdesk","Customer Support","Ticket Management","Self-Hosted","Web Interface"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[],i=v(),o=v(),n=e.systemUserPassword&&(!((t=e.systemUserPassword).length<10||t.length>72)&&/[A-Z]/.test(t)&&/[a-z]/.test(t)&&/[0-9]/.test(t)&&/[!@#$%^&*()_+\-=\[\]{}|;:,.<>?]/.test(t))?e.systemUserPassword:function(){for(var e="abcdefghijklmnopqrstuvwxyz",t="0123456789",a="!@#$%^&*_+-=[]{}|;:,.<>?",i=function(e){return e[Math.floor(Math.random()*e.length)]},o=i("ABCDEFGHIJKLMNOPQRSTUVWXYZ")+i(e)+i(t)+i(a),n=o.length;n<20;n++)o+=i("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*_+-=[]{}|;:,.<>?");for(var r=o.split(""),s=r.length-1;s>0;s--){var c,l=Math.floor(Math.random()*(s+1));c=[r[l],r[s]],r[s]=c[0],r[l]=c[1]}return r.join("")}(),r=e.encryptionKey||y(32),s='[app]\n# Log level: info, debug, warn, error, fatal\nlog_level = "debug"\n# Environment: dev, prod.\n# Setting to "dev" will enable color logging in terminal.\nenv = "prod"\n# Whether to automatically check for application updates on start up, app updates are shown as a banner in the admin panel.\ncheck_updates = true\n# Encryption key. Generate using `openssl rand -hex 16` must be 32 characters long.\nencryption_key = "'.concat(r,'"\n\n# HTTP server.\n[app.server]\n# Address to bind the HTTP server to.\naddress = "0.0.0.0:9000"\n# Unix socket path (leave empty to use TCP address instead)\nsocket = ""\n# Do NOT disable secure cookies in production environment if you don\'t know exactly what you\'re doing!\ndisable_secure_cookies = true\n# Request read and write timeouts.\nread_timeout = "5s"\nwrite_timeout = "5s"\n# Maximum request body size in bytes (100MB)\n# If you are using proxy, you may need to configure them to allow larger request bodies.\nmax_body_size = 104857600\n# Size of the read buffer for incoming requests\nread_buffer_size = 4096\n# Keepalive settings.\nkeepalive_timeout = "10s"\n\n# File upload provider to use, either fs or s3.\n[upload]\nprovider = "fs"\n\n# Filesystem provider.\n[upload.fs]\n# Directory where uploaded files are stored, make sure this directory exists and is writable by the application.\nupload_path = "uploads"\n\n# S3 provider.\n[upload.s3]\n# S3 endpoint URL (required only for non-AWS S3-compatible providers like MinIO).\n# Leave empty to use default AWS endpoints.\nurl = ""\n\n# AWS S3 credentials, keep empty to use attached IAM roles.\naccess_key = ""\nsecret_key = ""\n\n# AWS region, e.g., "us-east-1", "eu-west-1", etc.\nregion = "a
1p-south-1"\n# S3 bucket name where files will be stored.\nbucket = "bucket-name"\n# Optional prefix path within the S3 bucket where files will be stored.\n# Example, if set to "uploads/media", files will be stored under that path.\n# Useful for organizing files inside a shared bucket.\nbucket_path = ""\n# S3 signed URL expiry duration (e.g., "30m", "1h")\nexpiry = "30m"\n\n# Postgres.\n[db]\n# If running locally, use localhost.\nhost = "$(PROJECT_NAME)_').concat(e.appServiceName,'-db"\n# Database port, default is 5432.\nport = 5432\n# Update the following values with your database credentials.\nuser = "postgres"\npassword = "').concat(i,'"\ndatabase = "$(PROJECT_NAME)"\nssl_mode = "disable"\n# Maximum number of open database connections\nmax_open = 30\n# Maximum number of idle connections in the pool\nmax_idle = 30\n# Maximum time a connection can be reused before being closed\nmax_lifetime = "300s"\n\n# Redis.\n[redis]\n# If running locally, use localhost:6379.\naddress = "$(PROJECT_NAME)_').concat(e.appServiceName,'-redis:6379"\npassword = "').concat(o,'"\ndb = 0\n\n[message]\n# Number of workers processing outgoing message queue\noutgoing_queue_workers = 10\n# Number of workers processing incoming message queue\nincoming_queue_workers = 10\n# How often to scan for outgoing messages to process, keep it low to process messages quickly.\nmessage_outgoing_scan_interval = "50ms"\n# Maximum number of messages that can be queued for incoming processing\nincoming_queue_size = 5000\n# Maximum number of messages that can be queued for outgoing processing\noutgoing_queue_size = 5000\n\n[notification]\n# Number of concurrent notification workers\nconcurrency = 2\n# Maximum number of notifications that can be queued\nqueue_size = 2000\n\n[automation]\n# Number of workers processing automation rules\nworker_count = 10\n\n[autoassigner]\n# How often to run automatic conversation assignment\nautoassign_interval = "5m"\n\n[webhook]\n# Number of webhook delivery workers\nworkers = 5\n# Maximum number of webhook deliveries that can be queued\nqueue_size = 10000\n# HTTP timeout for webhook requests\ntimeout = "15s"\n\n[conversation]\n# How often to check for c
1onversations to unsnooze\nunsnooze_interval = "5m"\n\n[sla]\n# How often to evaluate SLA compliance for conversations\nevaluation_interval = "5m"');return a.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i}}),a.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"volume",name:"libredesk-uploads",mountPath:"/libredesk/uploads"},{type:"file",content:s,mountPath:"/libredesk/config.toml"}],env:["LIBREDESK_SYSTEM_USER_PASSWORD=".concat(n)].join("\n"),scripts:[{name:"Set System User Password",script:'printf "$LIBREDESK_SYSTEM_USER_PASSWORD\\n" | ./libredesk --set-system-user-password --config /libredesk/config.toml'}],deploy:{command:"sh -c './libredesk --install --idempotent-install --yes --config /libredesk/config.toml && ./libredesk --upgrade --yes --config /libredesk/config.toml && ./libredesk --config /libredesk/config.toml'"}}}),{services:a}}},{slug:"librenms",meta:{name:"LibreNMS",description:"LibreNMS is a fully featured network monitoring system that provides a wealth of features and device support. It includes support for multiple authentication methods, API access, alerting, and automatic discovery.",instructions:null,changeLog:[{date:"2025-04-14",description:"First Release"}],links:[{label:"Website",url:"https://www.librenms.org"},{label:"Documentation",url:"https://docs.librenms.org"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","smtpHost","smtpPort","smtpUser","smtpPassword","smtpFrom"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"librenms"},appServiceImage:{type:"string",title:"App Service Image",default:"librenms/librenms:25.3.0"},smtpHost:{type:"string",title:"SMTP Host",default:"smtp.gmail.com"},smtpPort:{type:"string",title:"SMTP Port",default:"587"},smtpUser:{type:"string",title:"SMTP User",default:"foo"},smtpPassword:{type:"string",title:"SMTP Password"},smtpFrom:{type:"string",title:"SMTP From",default:"[email protected]"}}},benefits:[{title:"Network Monitoring",description:"Monitor your network devices and services"},{title:"Auto Discovery",description:"Automatically discover and add network devices"},{title:"Alerting",description:"Get notified about network issues"},{title:"Self-Hosted",description:"Keep your monitoring data private and secure"}],features:[{title:"Device Monitoring",description:"Monitor network devices and services"},{title:"Performance Graphs",description:"View performance metrics and graphs"},{title:"Alerting System",description:"Configure alerts for network issues"},{title:"API Access",description:"Access data through REST API"},{title:"Multi-User Support",description:"Support for multiple users with different roles"}],tags:["Network Monitoring","SNMP","Syslog","Self-Hosted","Network Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=["TZ=Europe/Paris","PUID=1000","PGID=1000","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_NAME=$(PROJECT_NAME)","DB_USER=mariadb","DB_PASSWORD=".concat(a),"DB_TIMEOUT=60"];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:Fe(o).concat(["MEMORY_LIMIT=256M","MAX_INPUT_VARS=1000","UPLOAD_MAX_SIZE=16M","OPCACHE_MEM_SIZE=128M","REAL_IP_FROM=0.0.0.0/32","REAL_IP_HEADER=X-Forwarded-For","LOG_IP_VAR=remote_addr","CACHE_DRIVER=redis","SESSION_DRIVER=redis","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PASSWORD=".concat(i),"LIBRENMS_SNMP_COMMUNITY=public","LIBRENMS_WEATHERMAP=false","LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * *"]).join("\n"),mounts:[{type:"volume",name:"librenms",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-dispat
1cher"),source:{type:"image",image:e.appServiceImage},env:Fe(o).concat(["REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_PASSWORD=".concat(i),"DISPATCHER_NODE_ID=dispatcher1","SIDECAR_DISPATCHER=1"]).join("\n"),mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/librenms/"),mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-syslogng"),source:{type:"image",image:e.appServiceImage},ports:[{published:514,target:514,protocol:"tcp"},{published:514,target:514,protocol:"udp"}],env:Fe(o).concat(["SIDECAR_SYSLOGNG=1"]).join("\n"),mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/librenms/"),mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-snmptrapd"),source:{type:"image",image:e.appServiceImage},ports:[{published:162,target:162,protocol:"tcp"},{published:162,target:162,protocol:"udp"}],env:Fe(o).concat(["SIDECAR_SNMPTRAPD=1","MEMORY_LIMIT=256M","MAX_INPUT_VARS=1000","UPLOAD_MAX_SIZE=16M","OPCACHE_MEM_SIZE=128","REAL_IP_FROM=0.0.0.0/32","REAL_IP_HEADER=X-Forwarded-For","LOG_IP_VAR=remote_addr","CACHE_DRIVER=redis","SESSION_DRIVER=redis","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PASSWORD=".concat(i),"LIBRENMS_SNMP_COMMUNITY=librenmsdocker","LIBRENMS_WEATHERMAP=false","LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * *"]).join("\n"),mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/librenms/"),mountPath:"/data"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-msmtpd"),source:{type:"image",image:"crazymax/msmtpd:latest"},env:Fe(o).concat(["SIDECAR_SNMPTRAPD=1","SMTP_HOST=".concat(e.smtpHost),"SMTP_PORT=".concat(e.smtpPort),"SMTP_TLS=on","SMTP_STARTTLS=on","SMTP_TLS_CHECKCERT=on","SMTP_AUTH=on","SMTP_USER=".concat(e.smtpUser),"SMTP_PASSWORD=".concat(e.smtpPassword),"SMTP_FROM=".concat(e.smtpFrom)]).join("\n")}}),{services:t}}},{slug:"libreoffice",meta:{name:"LibreOffice",description:"LibreOffice is a free and powerful office suite app that serves as a successor to OpenOffice.org. It features a clean interface and feature-rich tools that help you unleash your creativity and enhance your productivity. The app can be accessed at http://yourhost:3000/ or https://yourhost:3001/. It is designed to deliver a true lossless image at a high framerate to your web browser. The app also supports multiple architectures, ensuring that it can be used on a variety of platforms. This app is perfect for those who need a comprehensive office suite for their daily tasks.",instructions:null,changeLog:[{date:"2022-11-14",description:"first release"},{date:"2025-07-22",description:"Version bumped to 25.2.4"},{date:"2025-12-25",description:"Version bumped to 25.2.5"},{date:"2026-02-21",description:"Version bumped to 25.8.1"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-libreoffice"},{label:"Github",url:"https://github.com/linuxserver/docker-libreoffice"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"libreoffice"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/libreoffice:25.8.1"}}},benefits:[{title:"Powerful Office Suite",description:"LibreOffice is a free and powerful office suite, a successor to OpenOffice.org. It offers a clean interface and feature-rich tools that help you unleash your creativity and enhance your productivity."},{title:"Multi-Platform Awareness",description:"The app utilizes the docker manifest for multi-platform awareness. This means that pulling the LibreOffice image should retrieve the correct image for your architecture, ensuring optimal compatibility and performance."},{title:"Accessible Anywhere",description:"The application can be accessed at your host, making it easy to work from anywhere. This flexibility allows you to stay productive no matter where you are."}],features:[{title:"Customizable Environment Variables",description:"LibreOffice offers a range of environment variables that you can customize to suit your needs. These include the internal port the container listens on, HTTP Basic auth username and password, the home directory for the file manager, and more."},{title:"Optional Run Configurations",description:"The app provides optional run configurations, including the ability to start a Docker in Docker setup inside the container, mount a GPU into the container for GPU accelerated applications, and deliver a true lossless image at a high framerate to your web browser."},{title:"User / Group Identifiers",description:"When using volumes, you can specify the user PUID and group PGID to avoid permissions issues between the host OS and the container. This ensures that any volume directories on the host are owned by the same user you specify."}],tags:["Productivity","Documents","Office Suite"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"librespeed",meta:{name:"LibreSpeed",description:"LibreSpeed is a free and open-source HTML5-based speed test application that you can host on your own server. It provides a lightweight, self-hosted alternative to commercial speed test services like Speedtest.net. LibreSpeed allows you to measure download speed, upload speed, ping, and jitter of your internet connection through a clean, modern web interface. It's perfect for network administrators, ISPs, or anyone who wants to monitor their internet connection performance without relying on third-party services. The application stores test results and provides analytics to track connection quality over time.",instructions:'Leave "Results Password" empty to auto-generate a strong password at deploy time, or set your own value if you want a fixed credential. After deployment, open LibreSpeed from your app domain and use the configured password to access historical test results.',changeLog:[{date:"2025-10-21",description:"Initial Template Release (v5.4.1)"}],links:[{label:"GitHub",url:"https://github.com/librespeed/speedtest"},{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-librespeed/"},{label:"Demo",url:"https://librespeed.org/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"librespeed"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/librespeed:5.4.1",description:"LibreSpeed Docker image from LinuxServer.io"},password:{type:"string",title:"Results Password",default:"",description:"Leave empty to auto-generate a random password, or set one manually to access test results and statistics"},customResults:{type:"boolean",title:"Enable Custom Results",default:!1,description:"Enable custom results page"},ipinfoApiKey:{type:"string",title:"IPInfo API Key",default:"",description:"Optional API key from ipinfo.io for enhanced geolocation data"}}},benefits:[{title:"Self-Hosted Speed Testing",description:"Host your own speed test server to measure internet connection performance without relying on third-party services or sharing data externally."},{title:"Privacy-Focused",description:"Keep all speed test data on your own infrastructure, ensuring complete privacy and control over your network performance metrics."},{title:"Lightweight & Fast",description:"Minimal resource usage with HTML5-based testing that works across all modern browsers without requiring plugins or additional software."},{title:"Results Tracking",description:"Store and analyze historical speed test results to monitor connection quality trends and identify performance issues over time."}],features:[{title:"Download Speed Test",description:"Accurately measure your internet download speed with configurable test parameters and detailed performance metrics."},{title:"Upload Speed Test",description:"Test your upload bandwidth with precise measurements to understand your connection's full capabilities in both directions."},{title:"Ping & Jitter Measurement",description:"Monitor connection latency and stability with ping and jitter tests to identify network quality issues beyond just bandwidth."},{title:"Results Database",description:"Automatically store test results with password-protected access for reviewing historical performance data and trends."},{title:"Clean Web Interface",description:"Modern, responsive HTML5 interface that works seamlessly across desktop and mobile devices without requiring any plugins."},{title:"Geolocation Support",description:"Optional integration with IPInfo API for enhanced geolocation data to track test results by location and ISP information."}],tags:["Speed Test","Network Tools","Self-Hosted","Performance Monitoring","Bandwidth Testing","Internet Speed","Network Diagnostics","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["PUID=1000","PGID=1000","TZ=Etc/UTC","PASSWORD=".concat(e.password||v()),"CUSTOM_RESULTS=".concat(e.customResults),"IPINFO_APIKEY=".concat(e.ipinfoApiKey||"")];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:a.join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"libretranslate",meta:{name:"LibreTranslate",description:"LibreTranslate is a free and open-source machine translation app that is entirely self-hosted. Unlike other translation apps, it does not rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open-source Argos Translate library. LibreTranslate can translate text between different languages, auto-detect the language of the input text, and even handle HTML content. It provides a simple and intuitive interface for users to input the text they want to translate, select the source and target languages, and get the translated text. With LibreTranslate, you can enjoy a reliable, accurate, and privacy-friendly translation service right at your fingertips.",instructions:null,changeLog:[{date:"2020-12-20",description:"first release"},{date:"2025-07-22",description:"Version bumped to v1.7.2"},{date:"2025-12-25",description:"Version bumped to v1.8.3"},{date:"2026-02-21",description:"Version bumped to v1.9.0"},{date:"2026-05-04",description:"Version bumped to v1.9.5"}],links:[{label:"Documentation",url:"https://github.com/LibreTranslate/LibreTranslate/blob/master/README.md"},{label:"Github",url:"https://github.com/LibreTranslate/LibreTranslate"}],contributors:[{name:"kaname-png",url:"https://github.com/kaname-png"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","chartLimit","reqLimit","bachLimit","suggestions","disableWebUI"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"libretranslate"},appServiceImage:{type:"string",title:"App Service Image",default:"libretranslate/libretranslate:v1.9.5"},chartLimit:{type:"number",title:"Character limit for each translation",default:5e3},reqLimit:{type:"number",title:"Rate request limit",default:500},bachLimit:{type:"number",title:"Bach translation limit",default:100},googleAnalytics:{type:"string",title:"Google Analytics",default:""},suggestions:{type:"boolean",title:"Translation suggestions",default:!1},disableWebUI:{type:"boolean",title:"Disable Web UI",default:!1}}},benefits:[{title:"Free and Open Source",description:"LibreTranslate is a free and open source machine translation API, which means it is accessible to everyone and can be modified to suit individual needs."},{title:"Self-Hosted",description:"Unlike other APIs, LibreTranslate doesn't rely on proprietary providers such as Google or Azure to perform translations. It is entirely self-hosted, providing full control over data privacy and security."},{title:"Powered by Argos Translate",description:"LibreTranslate's translation engine is powered by the open source Argos Translate library, ensuring reliable and accurate translations."}],features:[{title:"Simple Translation Requests",description:"LibreTranslate allows users to easily translate text from one language to another. Simply input the text, specify the source and target languages, and the API will return the translated text."},{title:"Auto Detect Language",description:"LibreTranslate can automatically detect the language of the input text. This feature is especially useful when the source language is unknown."},{title:"HTML Translation",description:"LibreTranslate supports HTML translation. This means it can translate text within HTML code while preserving the original formatting and structure."}],tags:["Translation","API","Open Source"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["LT_HOST=0.0.0.0","LT_SUGGESTIONS=".concat(e.suggestions),"LT_CHAR_LIMIT=".concat(e.chartLimit),"LT_REQ_LIMIT=".concat(e.reqLimit),"LT_BATCH_LIMIT=".concat(e.bachLimit),"LT_GA_ID=".concat(e.googleAnalytics),"LT_DISABLE_WEB_UI=".concat(e.disableWebUI)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}]}}),{services:t}}},{slug:"lidarr",meta:{name:"Lidarr",description:"Lidarr is an audio collection manager designed for Usenet and BitTorrent users. It monitors multiple RSS feeds for new music and interfaces with clients and indexers to grab, sort, and rename albums and songs. Lidarr also has the capability to automatically upgrade the quality of existing tracks in your library when a better quality format becomes available. The app features a calendar to see all your upcoming releases in one place, manual search to find all the releases and choose the ones you want, and automatic handling of failed downloads. Lidarr ensures you get the right release every time with its custom formats feature, which allows fine control over release prioritization and selection. It also supports major platforms like Windows, Linux, macOS, and others.",instructions:null,changeLog:[{date:"2024-03-18",description:"Template added"},{date:"2024-10-16",description:"Version Updated to 2.6.4"},{date:"2025-02-28",description:"Version bumped to 2.9.6"},{date:"2025-07-22",description:"Version bumped to 2.12.4"},{date:"2025-12-25",description:"Version bumped to 3.1.0"},{date:"2026-05-04",description:"Version bumped to 3.1.2"}],links:[{label:"Website",url:"https://lidarr.audio/"},{label:"Documentation",url:"https://wiki.servarr.com/lidarr"},{label:"Github",url:"https://github.com/Lidarr/Lidarr"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lidarr"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/lidarr:3.1.2"}}},benefits:[{title:"Automated Music Management",description:"Lidarr is an audio collection manager that automatically monitors multiple RSS feeds for new music, grabs, sorts, and renames albums and songs. It interfaces with clients and indexers to streamline your music collection process."},{title:"Quality Upgrades",description:"Lidarr can be configured to automatically upgrade the quality of existing tracks in your library when a better quality format becomes available. This ensures you always have the best version of your favorite music."},{title:"Failed Download Handling",description:"With Lidarr, failed downloads are a thing of the past. The app automatically blacklists the release and tries another one until it finds one that works, saving you time and frustration."}],features:[{title:"Calendar",description:"See all your upcoming releases in one convenient location. This feature allows you to keep track of your music collection and plan your listening schedule."}
1,{title:"Manual Search",description:"Find all the releases, choose the ones you want and send them right to your download client. This gives you the power to manually select and download the music you want."},{title:"Custom Formats",description:"Ensure you get the right release every time! Custom Formats allows fine control over release prioritization and selection. It can be as simple as a single preferred word or as complex as you want with multiple criteria and regex."},{title:"Integration with Download Clients",description:"Lidarr fully integrates with SABnzbd, NZBGet, QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients for seamless downloading and management of your music collection."},{title:"Metadata Importing",description:"Lidarr can import Metadata such as lyrics and album art, adding valuable information to your music collection. It also adds metadata such as artist and album information for media servers and players to use."}],tags:["Media","Download Manager","Music"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8686}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"lightdash",meta:{name:"LightDash",description:"LightDash is a modern, open-source business intelligence (BI) and data exploration tool designed to help teams visualize and understand their data. It connects directly to your existing data warehouse and provides an intuitive interface for building and sharing dashboards. With LightDash, you can create actionable insights from your data without needing advanced technical skills.",instructions:"Configure the Environmental Variables as per the requirements.",changeLog:[{date:"2025-01-10",description:"Template Release"},{date:"2025-02-28",description:"Version bumped to 0.1521.0"},{date:"2025-07-22",description:"Version bumped to 0.1826.3"},{date:"2025-12-25",description:"Version bumped to 0.2282.1"},{date:"2026-02-21",description:"Version bumped to 0.2503.0"}],links:[{label:"Documentation",url:"https://docs.lightdash.com/"},{label:"Github",url:"https://github.com/lightdash/lightdash"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","browserlessImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lightdash"},appServiceImage:{type:"string",title:"App Service Image",default:"lightdash/lightdash:0.2503.0"},browserlessImage:{type:"string",title:"Browserless Image",default:"browserless/chrome"}}},benefits:[{title:"Data Exploration Made Simple",description:"LightDash simplifies exploring and visualizing your data with an intuitive interface designed for both technical and non-technical users."},{title:"Direct Integration",description:"Connects directly to your data warehouse, ensuring real-time access to your latest data without replication."},{title:"Open Source",description:"Benefit from community-driven innovation and customization with a fully open-source solution."}],features:[{title:"Interactive Dashboards",description:"Build and share interactive dashboards for team-wide collaboration and insights."},{title:"SQL-Based Metrics",description:"Define and reuse metrics across multiple dashboards using a familiar SQL-based approach."},{title:"Role-Based Access Control",description:"Secure your data with fine-grained permissions and role-based access controls."},{title:"Data Transformation",description:"Transform and model your data directly within LightDash to meet specific analysis needs."}],tags:["Business Intelligence","Data Visualization","Open Source","Data Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PGHOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"PGPORT=5432","PGUSER=postgres","PGPASSWORD=".concat(a),"PGDATABASE=$(PROJECT_NAME)","SECURE_COOKIES=false","TRUST_PROXY=false","LIGHTDASH_SECRET=".concat(i),"PORT=8080","LIGHTDASH_LOG_LEVEL=debug","LIGHTDASH_INSTALL_ID=","LIGHTDASH_INSTALL_TYPE=docker_image","AUTH_DISABLE_PASSWORD_AUTHENTICATION=false","AUTH_ENABLE_GROUP_SYNC=false","AUTH_GOOGLE_ENABLED=false","AUTH_GOOGLE_OAUTH2_CLIENT_ID=","AUTH_GOOGLE_OAUTH2_CLIENT_SECRET=","SITE_URL=https://$(PRIMARY_DOMAIN)","EMAIL_SMTP_HOST=","EMAIL_SMTP_PORT=","EMAIL_SMTP_SECURE=false","EMAIL_SMTP_USER=","EMAIL_SMTP_PASSWORD=","EMAIL_SMTP_ALLOW_INVALID_CERT=false",'EMAIL_SMTP_SENDER_NAME="Lightdash"',"EMAIL_SMTP_SENDER_EMAIL=","ALLOW_MULTIPLE_ORGS=false","LIGHTDASH_QUERY_MAX_LIMIT=5000","LIGHTDASH_MAX_PAYLOAD=5mb","HEADLESS_BROWSER_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-browserless"),"HEADLESS_BROWSER_PORT=3000","RUDDERSTACK_WRITE_KEY=","SCHEDULER_ENABLED=true","GROUPS_ENABLED=false","POSTHOG_PROJECT_API_KEY=","POSTHOG_FE_API_HOST=","POSTHOG_BE_API_HOST="].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"dbt",mountPath:"/usr/app/dbt"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-browserless"),source:{type:"image",image:"".concat(e.browserlessImage)},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"limesurvey",meta:{name:"Limesurvey",description:"Welcome to LimeSurvey, the world's #1 survey platform designed to provide you with the best online survey tool that's fresh, quick, and anonymous. Whether you're a student, professional, or enterprise, LimeSurvey allows you to design a survey and gather insightful data, all for free. With LimeSurvey, you can create a simple questionnaire or poll, or even a sophisticated survey with complex validation rules, conditional logic, and quota management. It's the perfect alternative to Google Forms or Doodle. LimeSurvey is also the optimal online survey tool for research institutes, universities, and other educational establishments, offering free surveys, polls, and other open-source possibilities. With easy-to-use templates and an on-hand customer service team, LimeSurvey is your go-to solution for all your survey needs.",instructions:null,changeLog:[{date:"2023-01-24",description:"first release"},{date:"2025-07-22",description:"Version bumped to 6-1.6.72"},{date:"2026-02-21",description:"Version bumped to 6-1.6.74"},{date:"2026-05-04",description:"Version bumped to 6-1.6.99"}],links:[{label:"Website",url:"https://limesurvey.org/"},{label:"Documentation",url:"https://manual.limesurvey.org"},{label:"Github",url:"https://github.com/LimeSurvey/LimeSurvey"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","limesurveyUsername","limesurveyPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"limesurvey"},appServiceImage:{type:"string",title:"App Service Image",default:"tiredofit/limesurvey:6-1.6.99"},databaseServiceName:{type:"string",title:"Database Service Name",default:"limesurvey-db"},limesurveyUsername:{type:"string",title:"Username"},limesurveyPassword:{type:"string",title:"Password"}}},benefits:[{title:"Efficient Survey Creation",description:"LimeSurvey is an online survey tool that allows you to design and distribute surveys with ease. Whether you're a student, professional, or enterprise, LimeSurvey can help you gather the insights you need."},{title:"Versatile and Comprehensive",description:"From simple questionnaires to sophisticated surveys with complex validation rules, conditional logic, and quota management, LimeSurvey provides all the tools you need to reach your audience effectively."},{title:"Optimal Tool for Education",description:"LimeSurvey is the perfect tool for research institutes, universities, and other educational establishments. With our free surveys, polls, and other open-source possibilities, you can gather valuable data for your studies."},{title:"Customizable for Corporates",description:"LimeSurvey can be tailored to meet the needs of corporate clients, offering custom response limits, upload storage, support, and more. Tell us what you need, and we'll provide the solution."}],features:[{title:"Unlimited Answers",description:"With LimeSurvey, there's no limit to the number of responses you can collect. This allows you to gather as much data as you need for your research or business."},{title:"80+ Languages",description:"LimeSurvey supports over 80 languages, making it a truly global tool. This feature allows you to reach and understand audiences from all around the world."},{title:"User Management and Rights System",description:"LimeSurvey comes with a comprehensive user management and rights system. This allows you to control who has access to your surveys and what they can do with them."},{title:"Participant Management",description:"LimeSurvey provides a robust participant management system. This feature allows you to manage your survey participants effectively, ensuring that you get the most out of your data collection efforts."}],tags:["Analytics","Business Apps","Educational"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_USER=mariadb","DB_PASS=".concat(a),"DB_NAME=$(PROJECT_NAME)","ADMIN_USER=".concat(e.limesurveyUsername),"ADMIN_PASS=".concat(e.limesurveyPassword),"DEBUG=FALSE"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/www/html/upload"},{type:"volume",name:"logs",mountPath:"/www/logs"},{type:"volume",name:"custom-assets",mountPath:"/assets/custom"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"lingva",meta:{name:"Lingva Translate",description:"Lingva Translate is a free, open-source alternative front-end for Google Translate. Supports 100+ languages via scraping\u2014no direct Google access, no user tracking. Built with Next.js and ChakraUI. Provides REST API for translation, audio, and language detection. Privacy-focused translation.",instructions:"After deployment, access the web UI on your assigned domain. Set the site\ndomain to your public URL (e.g. https://lingva.yourdomain.com) for correct\nAPI links. Use the REST API at /api/v1/:source/:target/:query for translations.\n",changeLog:[{date:"2026-03-17",description:"First Release"}],links:[{label:"Website",url:"https://lingva.thedaviddelta.com"},{label:"GitHub",url:"https://github.com/TheDavidDelta/lingva-translate"},{label:"Docker Hub",url:"https://hub.docker.com/r/thedaviddelta/lingva-translate"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lingva"},appServiceImage:{type:"string",title:"App Service Image",default:"thedaviddelta/lingva-translate:latest"},siteDomain:{type:"string",title:"Site Domain",description:"Your public URL (e.g. https://lingva.yourdomain.com). Leave blank to use assigned domain."},defaultTheme:{type:"string",title:"Default Theme",default:"light",enum:["light","dark"]},defaultSourceLang:{type:"string",title:"Default Source Language",default:"auto",description:"Initial source language (auto for detection)"},defaultTargetLang:{type:"string",title:"Default Target Language",default:"en"}}},benefits:[{title:"Privacy-Focused",description:"No direct Google access; no user tracking"},{title:"100+ Languages",description:"Full Google Translate language support"},{title:"REST API",description:"Translation, audio, and language detection endpoints"},{title:"Self-Hosted",description:"Your own translation front-end"}],features:[{title:"Web Interface",description:"Clean UI for text translation"},{title:"API Endpoints",description:"/api/v1/:source/:target/:query, /api/v1/audio/:lang/:query"},{title:"Theme Support",description:"Light or dark theme"},{title:"Language Detection",description:"Auto-detect source language"}],tags:["Translation","Google Translate","Privacy","Open Source","Self-hosted","API"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a,i,o=[],n=["site_domain=".concat(e.siteDomain||"$(PRIMARY_DOMAIN)"),"force_default_theme=".concat(null!==(t=e.defaultTheme)&&void 0!==t?t:"light"),"default_source_lang=".concat(null!==(a=e.defaultSourceLang)&&void 0!==a?a:"auto"),"default_target_lang=".concat(null!==(i=e.defaultTargetLang)&&void 0!==i?i:"en")];return o.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:n.join("\n")}}),{services:o}}},{slug:"linkding",meta:{name:"linkding",description:"Linkding is a self-hosted bookmark manager that allows you to efficiently manage and organize your bookmarks. With a clean and optimized user interface, you can easily add, share, and edit bookmarks. The app also allows you to add notes to your bookmarks using Markdown and provides a 'read it later' functionality. It automatically generates titles, descriptions, and icons for your bookmarked websites and creates snapshots of them on the Internet Archive Wayback Machine. You can also import and export bookmarks in Netscape HTML format. The app offers light and dark themes for your convenience. It also provides a REST API for developing third-party apps and an admin panel for user self-service and raw data access.",instructions:'If the login fails with a error 500, please restart the "linkding" app service. This can be caused by the database not being properly reachable at linkding\'s first start.',changeLog:[{date:"2023-03-18",description:"Template created (v1.17.2)"},{date:"2024-10-16",description:"Updated Version to (1.9.0)"},{date:"2025-02-28",description:"Version bumped to 1.38.1"},{date:"2025-07-22",description:"Version bumped to 1.41.0"},{date:"2025-12-25",description:"Version bumped to 1.44.2"},{date:"2026-02-21",description:"Version bumped to 1.45.0"}],links:[{label:"Github",url:"https://github.com/sissbruecker/linkding"},{label:"Demo",url:"https://demo.linkding.link/"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","linkdingSuperuserName","linkdingSuperuserPassword","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"linkding"},appServiceImage:{type:"string",title:"App Service Image",default:"sissbruecker/linkding:1.45.0"},linkdingSuperuserName:{type:"string",title:"Superuser Name"},linkdingSuperuserPassword:{type:"string",title:"Superuser Password"},linkdingDisableBackgroundTasks:{type:"boolean",title:"Disable background tasks",default:!1},linkdingDisableURLValidation:{type:"boolean",title:"Disable URL validation",default:!1},databaseType:{type:"string",title:"Database Type",default:"sqlite",oneOf:[{enum:["sqlite"],title:"SQLite"},{enum:["postgres"],title:"PostgreSQL"}]},databaseServiceName:{type:"string",title:"Database Service Name (Can be ignored if SQLite)",default:"linkding-db"}}},benefits:[{title:"Self-Hosted Bookmark Manager",description:"Linkding provides a self-hosted solution for managing your bookmarks. It offers a clean and minimalistic user interface optimized for readability, making it easy to manage and organize your bookmarks."},{title:"Fast and Easy Setup",description:"Designed to be minimal, fast, and easy to set up, Linkding can be quickly deployed using Docker. It supports SQLite as a default database with PostgreSQL as an optional choice."},{title:"Read it Later Functionality",description:"Linkding comes with a 'Read it Later' feature that allows you to save bookmarks for later reading. This feature is particularly useful for users who come across interesting content but don't have time to read it immediately."},{title:"Share Bookmarks",description:"Linkding allows you to share your bookmarks with other users. This feature is especially useful for teams working on a project together or for individuals who want to share interesting finds with friends or family."}],features:[{title:"Organize Bookmarks with Tags",description:"Linkding allows you to organize your bookmarks using tags. This feature makes it easy to categorize and find your bookmarks."},{title:"Add Notes using Markdown",description:"Linkding supports Markdown, a lightweight markup language, for adding notes to your bookmarks. This feature allows you to add context or additional information to your bookmarks."},{title:"Bulk Editing",description:"Linkding provides a bulk editing feature, allowing you to make changes to multiple bookmarks at once. This feature can save you time when you need to update or organize your bookmarks."},{title:"Automatically Provides Titles, Descriptions and Icons",description:"Linkding automatically provides titles, descriptions, and icons for bookmarked websites. This feature saves you the hassle of manually entering this information."},{title:"Import and Export Bookmarks",description:"Linkding supports importing and exporting bookmarks in Netscape HTML format. This feature makes it easy to migrate your bookmarks to and from other bookmark managers."},{title:"Browser Extensions",description:"Linkding offers extensions for Firefox and Chrome, as well as a bookmarklet. These tools make it easy to add and manage bookmarks directly from your browser."}],tags:["Bookmarks","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=["LD_DB_ENGINE=".concat(e.databaseType),"LD_SUPERUSER_NAME=".concat(e.linkdingSuperuserName),"LD_SUPERUSER_PASSWORD=".concat(e.linkdingSuperuserPassword),"LD_DISABLE_BACKGROUND_TASKS=".concat(e.linkdingDisableBackgroundTasks),"LD_DISABLE_URL_VALIDATION=".concat(e.linkdingDisableURLValidation)];return"postgres"===e.databaseType&&(i.push("LD_DB_DATABASE=$(PROJECT_NAME)","LD_DB_USER=postgres","LD_DB_PASSWORD=".concat(a),"LD_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"LD_DB_PORT=5432"),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}})),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:i.join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:9090}],mounts:[{type:"volume",name:"data",mountPath:"/etc/linkding/data"}]}}),{services:t}}},{slug:"linkedout",meta:{name:"LinkedOut",description:"A comprehensive LinkedIn automation platform that helps streamline your LinkedIn outreach and engagement. The platform combines a modern Next.js frontend for managing campaigns and contacts, a robust PocketBase backend for secure data storage and user management, and powerful n8n workflow automation for handling LinkedIn interactions and follow-ups. With optional ngrok tunneling support for local development and testing, and easy deployment via Docker and Easypanel, LinkedOut provides everything needed to automate and scale your LinkedIn presence effectively.",instructions:null,changeLog:[{date:"2025-07-16",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/maxt-n8n/linkedout#readme"},{label:"GitHub",url:"https://github.com/maxt-n8n/linkedout"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","backendServiceImage","n8nServiceImage","ngrokServiceImage","ngrokAuthToken","pbAdminEmail","pbAdminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"linkedout"},appServiceImage:{type:"string",title:"App Service Image",default:"dockeriddonuts/easypanel-linkedout-frontend:1.0"},backendServiceImage:{type:"string",title:"Backend Service Image",default:"dockeriddonuts/easypanel-linkedout-backend:1.0"},n8nServiceImage:{type:"string",title:"n8n Service Image",default:"n8nio/n8n:1.102.3"},ngrokServiceImage:{type:"string",title:"ngrok Service Image",default:"ngrok/ngrok:3.23.3-alpine"},ngrokAuthToken:{type:"string",title:"ngrok Auth Token",default:null,description:"create a token for ngrok service"},pbAdminEmail:{type:"string",title:"PocketBase Admin Email",default:"[email protected]"},pbAdminPassword:{type:"string",title:"PocketBase Admin Password",default:"changeme123"}}},benefits:[{title:"LinkedIn Automation Platform",description:"LinkedOut provides a comprehensive platform for automating LinkedIn activities including outreach, connection management, and workflow automation through an intuitive web interface."},{title:"Modern Tech Stack",description:"Built with Next.js frontend, PocketBase backend, and n8n workflow automation, providing a robust and scalable architecture for LinkedIn automation needs."},{title:"Workflow Automation",description:"Integrated n8n workflow automation allows you to create complex automation workflows for LinkedIn activities, data processing, and integration with other services."}],features:[{title:"LinkedIn Outreach Automation",description:"Automate your LinkedIn outreach campaigns with customizable messaging, connection requests, and follow-up sequences to maximize your networking efforts."},{title:"PocketBase Backend",description:"Powerful backend database with built-in authentication, real-time subscriptions, and REST API for storing and managing LinkedIn automation data and user information."},{title:"n8n Workflow Engine",description:"Advanced workflow automation engine that enables complex automation scenarios, webhook integrations, and custom logic for LinkedIn automation workflows."},{title:"Optional ngrok Tunneling",description:"Optional ngrok integration provides secure tunneling for external access to your n8n w
1orkflows, enabling webhook callbacks and remote workflow management."}],tags:["LinkedIn","Automation","Workflow","Social Media"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-frontend"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["NEXT_PUBLIC_POCKETBASE_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-pocketbase.$(EASYPANEL_HOST)"),"NEXT_PUBLIC_N8N_WEBHOOK_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-n8n.$(EASYPANEL_HOST)")].join("\n"),mounts:[{type:"volume",name:"frontend-data",mountPath:"/app/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-pocketbase"),source:{type:"image",image:e.backendServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8090}],env:["PB_ADMIN_EMAIL=".concat(e.pbAdminEmail),"PB_ADMIN_PASSWORD=".concat(e.pbAdminPassword)].join("\n"),mounts:[{type:"volume",name:"pb-data",mountPath:"/pb_data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-n8n"),source:{type:"image",image:e.n8nServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5678}],env:["N8N_HOST=0.0.0.0","N8N_PORT=5678","N8N_PROTOCOL=http","N8N_PATH=/","N8N_USER_MANAGEMENT_DISABLED=true","N8N_DIAGNOSTICS_ENABLED=false","N8N_PUBLIC_API_DISABLED=false","WEBHOOK_URL=https://$(PRIMARY_DOMAIN)","DB_TYPE=sqlite","DB_SQLITE_PATH=/home/node/.n8n/database.sqlite"].join("\n"),mounts:[{type:"volume",name:"n8n-data",mountPath:"/home/node/.n8n"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-ngrok"),source:{type:"image",image:e.ngrokServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4040}],env:["NGROK_AUTHTOKEN=".concat(e.ngrokAuthToken)].join("\n"),deploy:{command:"./entrypoint.sh http $(PROJECT_NAME)_".concat(e.appServiceName,"-n8n:5678")}}}),{services:t}}},{slug:"linksnatch",meta:{name:"Linksnatch",description:"Linksnatch is a link management application that helps you organize and track your bookmarks and URLs. It provides a simple interface for managing and categorizing your links.",instructions:null,changeLog:[{date:"2025-04-11",description:"First Release"}],links:[{label:"GitHub",url:"https://github.com/amitmerchant1990/linksnatch"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"linksnatch"},appServiceImage:{type:"string",title:"App Service Image",default:"varunsridharan/linksnatch:1.0"}}},benefits:[{title:"Link Management",description:"Organize and manage your bookmarks efficiently"},{title:"Simple Interface",description:"User-friendly interface for easy link management"},{title:"Categorization",description:"Organize links into categories and tags"},{title:"Self-Hosted",description:"Keep your bookmarks private and secure"}],features:[{title:"Link Storage",description:"Store and manage your bookmarks"},{title:"Categories",description:"Organize links into categories"},{title:"Tags",description:"Add tags to links for better organization"},{title:"Search",description:"Search through your saved links"},{title:"Export",description:"Export your bookmarks in various formats"}],tags:["Bookmark Manager","Link Management","Organization","Self-Hosted","Web Application"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"linkstack",meta:{name:"LinkStack",description:"LinkStack is a powerful open-source alternative to Linktree, designed to provide an efficient solution for managing and sharing links online. It offers a highly customizable link sharing platform with an intuitive, user-friendly interface. Unlike other link management platforms, LinkStack allows users to host their links on their own web server or web hosting provider, giving them complete control over their online presence. This makes LinkStack an ideal solution for businesses and organizations looking to manage multiple links. With LinkStack, users can easily link to their own custom page and provide their followers with access to all the links they need in one convenient location. LinkStack also offers a self-hosted option for users who want complete control over their data without having it sold to third-party companies. The platform can be easily implemented through a simple drag and drop process, eliminating the need for complex terminal commands or source code manipulation. LinkStack is committed to providing a free, privacy-focused solution for managing and sharing links online, without sacrificing user privacy and control over their data.",instructions:"Use the SQLite DB type in the installation wizard",changeLog:[{date:"2023-5-22",description:"first release"}],links:[{label:"Github",url:"https://github.com/linkstackorg/linkstack"},{label:"Website",url:"https://linkstack.org"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","serverAdmin"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"linkstack"},appServiceImage:{type:"string",title:"App Service Image",default:"linkstackorg/linkstack:latest"},serverAdmin:{type:"string",title:"Server Admin",default:"[email protected]"}}},benefits:[{title:"Efficient Link Management",description:"LinkStack provides an efficient solution for managing and sharing links online. It allows users to overcome the limitation of only being able to add one link on social media platforms, providing a convenient location for all necessary links."},{title:"Complete Control",description:"LinkStack offers flexibility by allowing users to host their links on their own web server or web hosting provider. This gives users complete control over their online presence and ensures that their links are easily accessible."},{title:"Privacy-Focused",description:"LinkStack is committed to providing a free and privacy-focused solution for managing and sharing links online. It offers a self-hosted option for users who want complete control over their data without having it sold to third-party companies."}],features:[{title:"Customizable Link Sharing Platform",description:"LinkStack is a highly customizable link sharing platform with an intuitive, easy to use user interface. It offers a website similar to Linktree, but with more flexibility and control."},{title:"User-Friendly Admin Panel",description:"LinkStack features a user-friendly Admin Panel that makes managing and accessing other users' links easy. Ideal for businesses and organizations looking to manage multiple links."},{title:"Custom Themes",description:"LinkStack allows users to customize the look of their instance with themes. Themes can be easily added to the LinkStack instance on the Admin Panel."},{title:"Automatic Updater",description:"LinkStack features an automatic one-click updater. This updater allows users to update their installation with just one click, ensuring they always have the latest features and security updates."}],tags:["Link Management","Customizable","Privacy-Focused"],logo:"logo.svg",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png","screenshot4.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SERVER_ADMIN=".concat(e.serverAdmin),"HTTPS_SERVER_NAME=$(PRIMARY_DOMAIN)","HTTP_SERVER_NAME=$(PRIMARY_DOMAIN)","FORCE_HTTPS=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"htdocs",mountPath:"/htdocs"}]}}),{services:t}}},{slug:"linkwarden",meta:{name:"LinkWarden",description:"LinkWarden is a powerful, self-hosted service designed for managing and archiving bookmarks. It provides an intuitive interface for organizing and accessing your saved links, supports advanced features for enhanced productivity, and offers detailed link preservation options. With LinkWarden, you can maintain control over your bookmarks and ensure they remain accessible.",instructions:"Configure Environment Variables as per your needs.",changeLog:[{date:"2025-01-16",description:"Template Release"},{date:"2025-07-22",description:"Version bumped to v2.11.5"},{date:"2025-12-25",description:"Version bumped to v2.13.4"},{date:"2026-02-21",description:"Version bumped to v2.13.5"},{date:"2026-05-08",description:"Version bumped to v2.14.1"}],links:[{label:"Documentation",url:"https://linkwarden.app/docs"},{label:"Github",url:"https://github.com/linkwarden/linkwarden"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"linkwarden"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/linkwarden/linkwarden:v2.14.1"}}},benefits:[{title:"Advanced Bookmark Management",description:"LinkWarden allows you to organize, manage, and preserve your bookmarks efficiently through its intuitive web interface."},{title:"Self-Hosted Solution",description:"Stay in control of your bookmarks with a self-hosted service, ensuring privacy and customization."},{title:"Enhanced Productivity",description:"Access advanced features like tag management, link archiving, and note-taking to streamline your workflow."}],features:[{title:"Bookmark Archiving",description:"Preserve web pages and links with offline access for long-term reliability."},{title:"Tag and Folder Organization",description:"Organize your bookmarks effectively with tags and folders for quick retrieval."},{title:"Shareable Collections",description:"Create and share bookmark collections with team members or friends."},{title:"Analytics Dashboard",description:"Gain insights into bookmark usage and access trends for better resource management."}],tags:["Bookmark Manager","Self-Hosted","Productivity","Archiving"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_SECRET=".concat(i),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"# Additional Optional Settings","PAGINATION_TAKE_COUNT=","STORAGE_FOLDER=","AUTOSCROLL_TIMEOUT=","NEXT_PUBLIC_DISABLE_REGISTRATION=","NEXT_PUBLIC_CREDENTIALS_ENABLED=","DISABLE_NEW_SSO_USERS=","RE_ARCHIVE_LIMIT=","MAX_LINKS_PER_USER=","ARCHIVE_TAKE_COUNT=","BROWSER_TIMEOUT=","IGNORE_UNAUTHORIZED_CA=","IGNORE_HTTPS_ERRORS=","IGNORE_URL_SIZE_LIMIT=","NEXT_PUBLIC_DEMO=","NEXT_PUBLIC_DEMO_USERNAME=","NEXT_PUBLIC_DEMO_PASSWORD=","NEXT_PUBLIC_ADMIN=","NEXT_PUBLIC_MAX_FILE_BUFFER=","MONOLITH_MAX_BUFFER=","MONOLITH_CUSTOM_OPTIONS=","PDF_MAX_BUFFER=","SCREENSHOT_MAX_BUFFER=","READABILITY_MAX_BUFFER=","PREVIEW_MAX_BUFFER=","IMPORT_LIMIT=","PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH=","MAX_WORKERS=","DISABLE_PRESERVATION=","NEXT_PUBLIC_RSS_POLLING_INTERVAL_MINUTES=","RSS_SUBSCRIPTION_LIMIT_PER_USER=","# AI Settings","NEXT_PUBLIC_OLLAMA_ENDPOINT_URL=","OLLAMA_MODEL=","# AWS S3 Settings","SPACES_KEY=","SPACES_SECRET=","SPACES_ENDPOINT=","SPACES_BUCKET_NAME=","SPACES_REGION=","SPACES_FORCE_PATH_STYLE=","# SMTP Settings","NEXT_PUBLIC_EMAIL_PROVIDER=","EMAIL_FROM=","EMAIL_SERVER=","BASE_URL=","# Proxy settings","PROXY=","PROXY_USERNAME=","PROXY_PASSWORD=","PROXY_BYPASS=","# PDF archive settings","PDF_MARGIN_TOP=","PDF_MARGIN_BOTTOM=","#################","# SSO Providers #","#################","# 42 School","NEXT_PUBLIC_FORTYTWO_ENABLED=","FORTYTWO_CUSTOM_NAME=","FORTYTWO_CLIENT_ID=","FORTYTWO_CLIENT_SECRET=","# Apple","NEXT_PUBLIC_APPLE_ENABLED=","APPLE_CUSTOM_NAME=","APPLE_ID=","APPLE_SECRET=","# Atlassian","NEXT_PUBLIC_ATLASSIAN_ENABLED=","ATLASSIAN_CUSTOM_NAME=","ATLASSIAN_CLIENT_ID=","ATLASSIAN_CLIENT_SECRET=","ATLASSIAN_SCOPE=","# Auth0","NEXT_PUBLIC_AUTH0_ENABLED=","AUTH0_CUSTOM_NAME=","AUTH0_ISSUER=","AUTH0_CLIENT_SECRET=","AUTH0_CLIENT_ID=","# Authelia","NEXT_PUBLIC_AUTHELIA_ENABLED=","AUTHELIA_CLIENT_ID=","AUTHELIA_CLIENT_SECRET=","AUTHELIA_WELLKNOWN_URL=","# Authentik","NEXT_PUBLIC_AUTHENTIK_ENABLED=","AUTHENTIK_CUSTOM_NAME=","AUTHENTIK_ISSUER=","AUTHENTIK_CLIENT_ID=","AUTHENTIK_CLIENT_SECRET=","# Azure AD B2C","NEXT_PUBLIC_AZURE_AD_B2C_ENABLED=","AZURE_AD_B2C_TENANT_NAME=","AZURE_AD_B2C_CLIENT_ID=","AZURE_AD_B2C_CLIENT_SECRET=","AZURE_AD_B2C_PRIMARY_USER_FLOW=","# Azure AD","NEXT_PUBLIC_AZURE_AD_ENABLED=","AZURE_AD_CLIENT_ID=","AZURE_AD_CLIENT_SECRET=","AZURE_AD_TENANT_ID=","# Battle.net","NEXT_PUBLIC_BATTLENET_ENABLED=","BATTLENET_CUSTOM_NAME=","BATTLENET_CLIENT_ID=","BATTLENET_CLIENT_SECRET=","BATTLENET_ISSUER=","# Box","NEXT_PUBLIC_BOX_ENABLED=","BOX_CUSTOM_NAME=","BOX_CLIENT_ID=","BOX_CLIENT_SECRET=","# Bungie","NEXT_PUBLIC_BUNGIE_ENABLED=","BUNGIE_CUSTOM_NAME=","BUNGIE_CLIENT_ID=","BUNGIE_CLIENT_SECRET=","BUNGIE_API_KEY=","# Cognito","NEXT_PUBLIC_COGNITO_ENABLED=","COGNITO_CUSTOM_NAME=","COGNITO_CLIENT_ID=","COGNITO_CLIENT_SECRET=","COGNITO_ISSUER=","# Coinbase","NEXT_PUBLIC_COINBASE_ENABLED=","COINBASE_CUSTOM_NAME=","COINBASE_CLIENT_ID=","COINBASE_CLIENT_SECRET=","# Discord","NEXT_PUBLIC_DISCORD_ENABLED=","DISCORD_CUSTOM_NAME=","DISCORD_CLIENT_ID=","DISCORD_CLIENT_SECRET=","# Dropbox","NEXT_PUBLIC_DROPBOX_ENABLED=","DROPBOX_CUSTOM_NAME=","DROPBOX_CLIENT_ID=","DROPBOX_CLIENT_SECRET=","# DuendeIndentityServer6","NEXT_PUBLIC_DUENDE_IDS6_ENABLED=","DUENDE_IDS6_CUSTOM_NAME=","DUENDE_IDS6_CLIENT_ID=","DUENDE_IDS6_CLIENT_SECRET=","DUENDE_IDS6_ISSUER=","# EVE Online","NEXT_PUBLIC_EVEONLINE_ENABLED=","EVEONLINE_CUSTOM_NAME=","EVEONLINE_CLIENT_ID=","EVEONLINE_CLIENT_SECRET=","# Facebook","NEXT_PUBLIC_FACEBOOK_ENABLED=","FACEBOOK_CUSTOM_NAME=","FACEBOOK_CLIENT_ID=","FACEBOOK_CLIENT_SECRET=","# FACEIT","NEXT_PUBLIC_FACEIT_ENABLED=","FACEIT_CUSTOM_NAME=","FACEIT_CLIENT_ID=","FACEIT_CLIENT_SECRET=","# Foursquare","NEXT_PUBLIC_FOURSQUARE_ENABLED=","FOURSQUARE_CUSTOM_NAME=","FOURSQUARE_CLIENT_ID=","FOURSQUARE_CLIENT_SECRET=","FOURSQUARE_APIVERSION=","# Freshbooks","NEXT_PUBLIC_FRESHBOOKS_ENABLED=","FRESHBOOKS_CUSTOM_NAME=","FRESHBOOKS_CLIENT_ID=","FRESHBOOKS_CLIENT_SECRET=","# FusionAuth","NEXT_PUBLIC_FUSIONAUTH_ENABLED=","FUSIONAUTH_CUSTOM_NAME=","FUSIONAUTH_CLIENT_ID=","FUSIONAUTH_CLIENT_SECRET=","FUSIONAUTH_ISSUER=","FUSIONAUTH_TENANT_ID=","# GitHub","NEXT_PUBLIC_GITHUB_ENABLED=","GITHUB_CUSTOM_NAME=","GITHUB_ID=","GITHUB_SECRET=","# GitLab","NEXT_PUBLIC_GITLAB_ENABLED=","GITLAB_CUSTOM_NAME=","GITLAB_CLIENT_ID=","GITLAB_CLIENT_SECRET=","# Google","NEXT_PUBLIC_GOOGLE_ENABLED=","GOOGLE_CUSTOM_NAME=","GOOGLE_CLIENT_ID=","GOOGLE_CLIENT_SECRET=","# HubSpot","NEXT_PUBLIC_HUBSPOT_ENABLED=","HUBSPOT_CUSTOM_NAME=","HUBSPOT_CLIENT_ID=","HUBSPOT_CLIENT_SECRET=","# IdentityServer4","NEXT_PUBLIC_IDS4_ENABLED=","IDS4_CUSTOM_NAME=","IDS4_CLIENT_ID=","IDS4_CLIENT_SECRET=","IDS4_ISSUER=","# Kakao","NEXT_PUBLIC_KAKAO_ENABLED=","KAKAO_CUSTOM_NAME=","KAKAO_CLIENT_ID=","KAKAO_CLIENT_SECRET=","# Keycloak","NEXT_PUBLIC_KEYCLOAK_ENABLED=","KEYCLOAK_CUSTOM_NAME=","KEYCLOAK_ISSUER=","KEYCLOAK_CLIENT_ID=","KEYCLOAK_CLIENT_SECRET=","# LINE","NEXT_PUBLIC_LINE_ENABLED=","LINE_CUSTOM_NAME=","LINE_CLIENT_ID=","LINE_CLIENT_SECRET=","# LinkedIn","NEXT_PUBLIC_LINKEDIN_ENABLED=","LINKEDIN_CUSTOM_NAME=","LINKEDIN_CLIENT_ID=","LINKEDIN_CLIENT_SECRET=","# Mailchimp","NEXT_PUBLIC_MAILCHIMP_ENABLED=","MAILCHIMP_CUSTOM_NAME=","MAILCHIMP_CLIENT_ID=","MAILCHIMP_CLIENT_SECRET=","# Mail.ru","NEXT_PUBLIC_MAILRU_ENABLED=","MAILRU_CUSTOM_NAME=","MAILRU_CLIENT_ID=","MAILRU_CLIENT_SECRET=","# Naver","NEXT_PUBLIC_NAVER_ENABLED=","NAVER_CUSTOM_NAME=","NAVER_CLIENT_ID=","NAVER_CLIENT_SECRET=","# Netlify","NEXT_PUBLIC_NETLIFY_ENABLED=","NETLIFY_CUSTOM_NAME=","NETLIFY_CLIENT_ID=","NETLIFY_CLIENT_SECRET=","# Okta","NEXT_PUBLIC_OKTA_ENABLED=","OKTA_CUSTOM_NAME=","OKTA_CLIENT_ID=","OKTA_CLIENT_SECRET=","OKTA_ISSUER=","# OneLogin","NEXT_PUBLIC_ONELOGIN_ENABLED=","ONELOGIN_CUSTOM_NAME=","ONELOGIN_CLIENT_ID=","ONELOGIN_CLIENT_SECRET=","ONELOGIN_ISSUER=","# Osso","NEXT_PUBLIC_OSSO_ENABLED=","OSSO_CUSTOM_NAME=","OSSO_CLIENT_ID=","OSSO_CLIENT_SECRET=","OSSO_ISSUER=","# osu!","NEXT_PUBLIC_OSU_ENABLED=","OSU_CUSTOM_NAME=","OSU_CLIENT_ID=","OSU_CLIENT_SECRET=","# Patreon","NEXT_PUBLIC_PATREON_ENABLED=","PATREON_CUSTOM_NAME=","PATREON_CLIENT_ID=","PATREON_CLIENT_SECRET=","# Pinterest","NEXT_PUBLIC_PINTEREST_ENABLED=","PINTEREST_CUSTOM_NAME=","PINTEREST_CLIENT_ID=","PINTEREST_CLIENT_SECRET=","# Pipedrive","NEXT_PUBLIC_PIPEDRIVE_ENABLED=","PIPEDRIVE_CUSTOM_NAME=","PIPEDRIVE_CLIENT_ID=","PIPEDRIVE_CLIENT_SECRET=","# Reddit","NEXT_PUBLIC_REDDIT_ENABLED=","REDDIT_CUSTOM_NAME=","REDDIT_CLIENT_ID=","REDDIT_CLIENT_SECRET=","# Salesforce","NEXT_PUBLIC_SALESFORCE_ENABLED=","SALESFORCE_CUSTOM_NAME=","SALESFORCE_CLIENT_ID=","SALESFORCE_CLIENT_SECRET=","# Slack","NEXT_PUBLIC_SLACK_ENABLED=","SLACK_CUSTOM_NAME=","SLACK_CLIENT_ID=","SLACK_CLIENT_SECRET=","# Spotify","NEXT_PUBLIC_SPOTIFY_ENABLED=","SPOTIFY_CUSTOM_NAME=","SPOTIFY_CLIENT_ID=","SPOTIFY_CLIENT_SECRET=","# Strava","NEXT_PUBLIC_STRAVA_ENABLED=","STRAVA_CUSTOM_NAME=","STRAVA_CLIENT_ID=","STRAVA_CLIENT_SECRET=","# Todoist","NEXT_PUBLIC_TODOIST_ENABLED=","TODOIST_CUSTOM_NAME=","TODOIST_CLIENT_ID=","TODOIST_CLIENT_SECRET=","# Twitch","NEXT_PUBLIC_TWITCH_ENABLED=","TWITCH_CUSTOM_NAME=","TWITCH_CLIENT_ID=","TWITCH_CLIENT_SECRET=","# United Effects","NEXT_PUBLIC_UNITED_EFFECTS_ENABLED=","UNITED_EFFECTS_CUSTOM_NAME=","UNITED_EFFECTS_CLIENT_ID=","UNITED_EFFECTS_CLIENT_SECRET=","UNITED_EFFECTS_ISSUER=","# VK","NEXT_PUBLIC_VK_ENABLED=","VK_CUSTOM_NAME=","VK_CLIENT_ID=","VK_CLIENT_SECRET=","# Wikimedia","NEXT_PUBLIC_WIKIMEDIA_ENABLED=","WIKIMEDIA_CUSTOM_NAME=","WIKIMEDIA_CLIENT_ID=","WIKIMEDIA_CLIENT_SECRET=","# Wordpress.com","NEXT_PUBLIC_WORDPRESS_ENABLED=","WORDPRESS_CUSTOM_NAME=","WORDPRESS_CLIENT_ID=","WORDPRESS_CLIENT_SECRET=","# Yandex","NEXT_PUBLIC_YANDEX_ENABLED=","YANDEX_CUSTOM_NAME=","YANDEX_CLIENT_ID=","YANDEX_CLIENT_SECRET=","# Zitadel","NEXT_PUBLIC_ZITADEL_ENABLED=","ZITADEL_CUSTOM_NAME=","ZITADEL_CLIENT_ID=","ZITADEL_CLIENT_SECRET=","ZITADEL_ISSUER=","# Zoho","NEXT_PUBLIC_ZOHO_ENABLED=","ZOHO_CUSTOM_NAME=","ZOHO_CLIENT_ID=","ZOHO_CLIENT_SECRET=","# Zoom","NEXT_PUBLIC_ZOOM_ENABLED=","ZOOM_CUSTOM_NAME=","ZOOM_CLIENT_ID=","ZOOM_CLIENT_SECRET="].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/data/data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"listmonk",meta:{name:"Listmonk",description:"Listmonk is a self-hosted, high-performance mailing list and newsletter manager. It is designed to manage millions of subscribers across various single and double opt-in lists, with custom JSON attributes for each subscriber. The app allows you to query and segment subscribers with SQL expressions and offers a fast bulk importer for easy integration with external CRMs and subscriber databases. Listmonk also provides a simple API for sending transactional messages to subscribers using pre-defined templates. These messages can be sent via email, SMS, Whatsapp, or any medium via Messenger interfaces. The app also includes simple analytics and visualization tools, a powerful templating system for creating dynamic email templates, and a media manager for uploading images for email campaigns. Listmonk is free, open-source, and designed for high performance, with a single binary application that runs everywhere with a minimal CPU and memory footprint.",instructions:null,changeLog:[{date:"2023-2-3",description:"first release"},{date:"2025-02-28",description:"Version bumped to v4.1.0"},{date:"2025-07-22",description:"Version bumped to v5.0.3"},{date:"2025-12-25",description:"Version bumped to v5.1.0"}],links:[{label:"Website",url:"https://listmonk.app/"},{label:"Documentation",url:"https://listmonk.app/docs/"},{label:"Github",url:"https://github.com/knadh/listmonk"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"},{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","adminUsername","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"listmonk"},appServiceImage:{type:"string",title:"App Service Image",default:"listmonk/listmonk:v5.1.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"listmonk-db"},adminUsername:{type:"string",title:"Admin Username"},adminPassword:{type:"string",title:"Admin Password"}}},benefits:[{title:"High Performance",description:"Listmonk is a high-performance mailing list and newsletter manager that can handle millions of subscribers with ease. It is designed to be efficient and fast, ensuring that your campaigns reach your audience quickly and effectively."},{title:"Customizable",description:"With Listmonk, you have the power to customize your newsletters to your liking. It supports powerful, dynamic email templates with the Go templating language, allowing you to create unique and engaging content for your subscribers."},{title:"Privacy Focused",description:"Listmonk respects the privacy of your subscribers. It allows subscribers to permanently blocklist themselves, export all their data, and to wipe all their data in a single click, ensuring that their privacy is always protected."}],features:[{title:"Mailing Lists Management",description:"Manage millions of subscribers across many single and double opt-in lists with custom JSON attributes for each subscriber. Query and segment subscribers with SQL expressions."},{title:"Transactional Mails",description:"Listmonk provides a simple API to send arbitrary transactional messages to subscribers using pre-defined templates. Send messages as e-mail, SMS, Whatsapp messages or any medium via Messenger interfaces."},{title:"Analytics",description:"Listmonk comes with simple analytics and visualizations. Connect external visualization programs to the database easily with the simple table structure."},{title:"Templating",description:"Create powerful, dynamic e-mail templates with the Go templating language. Use template expressions, logic, and 100+ functions in subject lines and content."},{title:"Performance",description:"Listmonk is designed for high performance. It is multi-threaded, high-throughput, multi-SMTP email queues. It has throughput and sliding window rate limiting for fine grained control."},{title:"Media Management",description:"Use the media manager to upload images for e-mail campaigns on the server's filesystem, Amazon S3, or any S3 compatible (Minio) backend."},{title:"Extensibility",description:"More than just e-mail campaigns. Connect HTTP webhooks to send SMS, Whatsapp, FCM notifications, or any type of messages."}],tags:["Email","Analytics","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["LISTMONK_app__address=0.0.0.0:9000","LISTMONK_db__host=$(PROJECT_NAME)_".concat(e.databaseServiceName),"LISTMONK_db__user=postgres","LISTMONK_db__password=".concat(a),"LISTMONK_db__port=5432","LISTMONK_db__database=$(PROJECT_NAME)","LISTMONK_app__admin_username=".concat(e.adminUsername),"LISTMONK_app__admin_password=".concat(e.adminPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"volume",name:"data",mountPath:"/listmonk/uploads"}],deploy:{command:"./listmonk --install --idempotent --yes && ./listmonk --upgrade --yes && ./listmonk"}}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:14",password:a}}),{services:t}}},{slug:"litecart",meta:{name:"LiteCart",description:"LiteCart is a free and open-source e-commerce platform that provides a complete solution for creating and managing online stores. It features a user-friendly interface, customizable themes, and essential e-commerce functionality including product management, order processing, and customer management. LiteCart is built with PHP and MySQL, making it easy to deploy and maintain.",instructions:null,changeLog:[{date:"2024-04-04",description:"First Release"},{date:"2026-05-04",description:"Version bumped to v0.2.6"}],links:[{label:"Website",url:"https://www.litecart.net/"},{label:"Documentation",url:"https://www.litecart.net/en/wiki/"},{label:"Github",url:"https://github.com/litecart/litecart"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"litecart"},appServiceImage:{type:"string",title:"App Service Image",default:"shurco/litecart:v0.2.6"}}},benefits:[{title:"User-Friendly",description:"Intuitive interface and easy-to-use admin panel for managing your online store."},{title:"Complete E-commerce Solution",description:"Provides all essential features for running an online store including product management, order processing, and customer management."},{title:"Customizable",description:"Offers customizable themes and extensions to meet your specific business needs."},{title:"Open Source",description:"Free and open-source platform with an active community for support and improvements."},{title:"Easy Deployment",description:"Simple deployment process with Docker, making it easy to set up and maintain your online store."}],features:[{title:"Product Management",description:"Manage products with detailed information, categories, and inventory tracking."},{title:"Order Processing",description:"Process orders with payment integration, shipping options, and order status tracking."},{title:"Customer Management",description:"Manage customers with profiles, addresses, and order history."},{title:"Payment Integration",description:"Integrate with popular payment gateways for secure transactions."},{title:"Shipping Integration",description:"Integrate with shipping carriers for accurate shipping calculations."}],tags:["E-commerce","Online Store","Shopping Cart","PHP","MySQL"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"base",mountPath:"/lc_base"},{type:"volume",name:"digitals",mountPath:"/lc_digitals"},{type:"volume",name:"uploads",mountPath:"/lc_uploads"},{type:"volume",name:"site",mountPath:"/site"}]}}),{services:t}}},{slug:"litellm",meta:{name:"LiteLLM",description:"LiteLLM is a lightweight, self-hosted library designed for integrating language models like GPT into your applications. It provides an easy-to-use interface for sending and receiving prompts and responses, with support for multiple model configurations, API keys, and detailed debugging options. With LiteLLM, you can streamline your AI workflows while maintaining full control over your data and configurations.",instructions:"Use the provided master-key as the password for UI login.",changeLog:[{date:"2026-05-19",description:"Updated to v1.85.0"},{date:"2025-01-06",description:"Initial Template Release for LiteLLM"},{date:"2025-02-28",description:"Version bumped to main-v1.61.20-nightly"},{date:"2025-12-25",description:"Version bumped to main-v1.80.11.rc.1"}],links:[{label:"Documentation",url:"https://docs.litellm.ai/docs/"},{label:"Github",url:"https://github.com/berriai/litellm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"litellm"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/berriai/litellm:v1.85.0"}}},benefits:[{title:"Easy Integration",description:"LiteLLM simplifies the process of integrating language models into your applications with minimal setup."},{title:"Self-Hosted Flexibility",description:"Maintain full control over your AI integrations by hosting LiteLLM on your own infrastructure."},{title:"Detailed Debugging",description:"Enable detailed logs and debugging to optimize and troubleshoot your AI workflows."}],features:[{title:"Multi-Model Support",description:"Configure and use multiple language models easily within the same setup."},{title:"API Key Management",description:"Securely manage API keys and other sensitive information through environment variables."},{title:"Debugging Tools",description:"Access detailed logs to monitor requests, responses, and configurations."},{title:"Lightweight Setup",description:"Run LiteLLM with minimal resource requirements for efficient AI integration."}],tags:["Language Models","Self-Hosted","AI Integration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-app"),env:["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"STORE_MODEL_IN_DB=True","LITELLM_MASTER_KEY=".concat(i),"LITELLM_SALT_KEY=".concat(i)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"livebook",meta:{name:"Livebook",description:"Livebook is a web application for writing interactive and collaborative code notebooks for Elixir. It features an intuitive and interactive workflow for data science and machine learning in Elixir, with support for rich output including charts, maps, tables, and more. Livebook allows you to create, share, and collaborate on notebooks that combine narrative, code, and results in a single document.",instructions:null,changeLog:[{date:"2025-06-17",description:"Initial template release"}],links:[{label:"Documentation",url:"https://livebook.dev/"},{label:"GitHub",url:"https://github.com/livebook-dev/livebook"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","livebookPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"livebook"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/livebook-dev/livebook:0.16.2",description:"Livebook Docker image"},livebookPassword:{type:"string",title:"Livebook Password",description:"Password must be at least 12 characters long."}}},benefits:[{title:"Interactive Development",description:"Write and execute Elixir code in an interactive notebook environment with rich output support."},{title:"Collaborative",description:"Share and collaborate on notebooks with team members in real-time."},{title:"Data Science Ready",description:"Built-in support for data visualization, charts, maps, and machine learning workflows in Elixir."},{title:"Persistent Storage",description:"Your notebooks and data are stored persistently in mounted volumes."}],features:[{title:"Rich Output",description:"Support for charts, maps, tables, images, and interactive widgets directly in notebooks."},{title:"Code Execution",description:"Execute Elixir code cells with real-time output and error handling."},{title:"File Management",description:"Built-in file explorer and management for organizing notebooks and data files."},{title:"Export Options",description:"Export notebooks in various formats including standalone Elixir scripts."}],tags:["Development","Elixir","Notebook","Data Science","Interactive"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["LIVEBOOK_PASSWORD=".concat(e.livebookPassword),"LIVEBOOK_SECRET_KEY_BASE=".concat(a),"LIVEBOOK_DEFAULT_RUNTIME=standalone"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"livebook-data",mountPath:"/data"}]}}),{services:t}}},{slug:"livestreamdvr",meta:{name:"LiveStreamDVR",description:"LiveStreamDVR (formerly TwitchAutomator) is a powerful tool for automatically recording and archiving live streams from Twitch. It provides a web interface to manage recordings, schedule streams to record, and organize your VOD library.",instructions:"After installation, access the web interface through the provided domain to start configuring your stream recordings.",changeLog:[{date:"2024-04-09",description:"First Release"}],links:[{label:"Github",url:"https://github.com/MrBrax/LiveStreamDVR"}],contributors:[{name:"MrBrax",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"livestreamdvr"},appServiceImage:{type:"string",title:"App Service Image",default:"mrbrax/twitchautomator:master"}}},benefits:[{title:"Automated Recording",description:"Automatically record live streams from your favorite Twitch channels."},{title:"Web Interface",description:"Manage your recordings through an intuitive web interface."},{title:"VOD Library",description:"Build and organize your personal VOD library."},{title:"Scheduling",description:"Schedule recordings in advance for upcoming streams."},{title:"Storage Management",description:"Efficiently manage your recorded content with built-in storage tools."}],features:[{title:"Stream Recording",description:"Record live streams in their original quality."},{title:"Channel Management",description:"Add and manage multiple Twitch channels."},{title:"Recording Schedule",description:"Set up automatic recording schedules."},{title:"Storage Options",description:"Configure storage locations and manage space."},{title:"Web Dashboard",description:"Monitor and control recordings through a web interface."}],tags:["Twitch","Streaming","Recording","VOD","Archive"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["NODE_ENV=production","TCD_ENABLE_FILES_API=0","TCD_EXPOSE_LOGS_TO_PUBLIC=0","TCD_MIGRATE_OLD_VOD_JSON=0"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/usr/local/share/twitchautomator/data"}]}}),{services:t}}},{slug:"llana",meta:{name:"llana",description:"Llana is a lightweight no-code API wrapper that exposes a REST API for any database within minutes. Stop wasting time building endpoints, just connect your database and start playing. Open source, free to use, and n
1o vendor lock-in.",instructions:null,changeLog:[{date:"2024-12-10",description:"First release"},{date:"2025-07-22",description:"Version bumped to v1.32"}],links:[{label:"Website",url:"https://llana.io/"},{label:"GitHub",url:"https://github.com/juicyllama/llana"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","dbHostname","dbUsername","dbPassword","dbPort","dbName","jwtSecret"],properties:{appServiceName:{type:"string",title:"Application Service Name",default:"llana"},appServiceImage:{type:"string",title:"Application Service Image",default:"juicyllama/llana:v1.32"},databaseType:{type:"string",title:"Database Type",default:"postgresql",oneOf:[{enum:["postgresql"],title:"PostgreSQL"},{enum:["mysql"],title:"MySQL"}]},dbHostname:{type:"string",title:"Database Hostname"},dbUsername:{type:"string",title:"Database Username"},dbPassword:{type:"string",title:"Database Password"},dbPort:{type:"string",title:"Database Port"},dbName:{type:"string",title:"Database Name"},jwtSecret:{type:"string",title:"JWT Secret",description:"Provide a 32-character long JWT secret."}}},benefits:[{title:"No-Code API Generation",description:"Automatically generate REST APIs for your database within minutes without writing any code. Connect, configure, and go!"},{title:"Open Source and Free",description:"Llana is open-source, free to use, and ensures no vendor lock-in, giving you full control of your data and infrastructure."},{title:"Lightweight and Fast",description:"Designed for high performance with minimal resource usage, Llana is perfect for both small and large-scale applications."}],features:[{title:"Instant REST API",description:"Generate REST APIs for any database instantly. Expose endpoints to query, insert, update, and delete records."},{title:"Multi-Database Support",description:"Connect to PostgreSQL, MySQL, and other popular databases seamlessly."},{title:"Authentication and Security",description:"Secure your API with JWT-based authentication and configurable security rules."},{title:"Easy Configuration",description:"Set up Llana with a simple configuration file. No complex coding required."},{title:"Vendor Lock-In Free",description:"Run Llana on your own servers or infrastru
1cture without being tied to any platform."},{title:"Extendable",description:"Customize and extend Llana to fit your application's needs through open-source contributions."}],tags:["API","No-Code","Database","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URI=".concat(e.databaseType,"://").concat(e.dbUsername,":").concat(e.dbPassword,"@").concat(e.dbHostname,":").concat(e.dbPort,"/").concat(e.dbName),"JWT_KEY=".concat(e.jwtSecret),"DOMAIN=$(PRIMARY_DOMAIN)","SOFT_DELETE_COLUMN=deletedAt"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"lldap",meta:{name:"LLDAP",description:"LLDAP (Lightweight LDAP) is a simple, lightweight, high-performance LDAP server designed for authentication in small to medium-sized deployments. It provides an intuitive web UI for user management and a complete implementation of LDAP search and bind operations. LLDAP is perfect for self-hosted applications that require LDAP authentication without the complexity of full-featured LDAP servers like OpenLDAP. It stores user data in an embedded SQLite database by default but also supports PostgreSQL, making it easy to set up and maintain. With features like password hashing, account creation/deletion, group management, and MFA support, LLDAP offers a modern solution for identity management in your self-hosted infrastructure.",instructions:'Login using the username "admin" and the password you would decide.',changeLog:[{date:"2025-03-22",description:"Initial template release"},{date:"2025-07-22",description:"Version bumped to 2025-07-22"},{date:"2025-12-25",description:"Version bumped to 2025-12-24"},{date:"2026-02-21",description:"Version bumped to 2026-01-31"},{date:"2026-05-08",description:"Version bumped to 2026-05-05"}],links:[{label:"GitHub",url:"https://github.com/nitnelave/lldap"},{label:"Docker Hub",url:"https://hub.docker.com/r/nitnelave/lldap"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminPassword","exposedPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lldap"},appServiceImage:{type:"string",title:"App Service Image",default:"lldap/lldap:2026-05-05"},adminPassword:{type:"string",title:"Admin Password",default:"adminPassword"},exposedPort:{type:"string",title:"Exposed Port",default:"3890"}}},benefits:[{title:"Simple User Management",description:"Manage users and groups through an intuitive web UI without needing to understand LDAP complexities."},{title:"Lightweight and Fast",description:"Designed for performance and minimal resource usage while providing all essential LDAP functionality."},{title:"Easy Integration",description:"Seamlessly connect with applications that support LDAP authentication, including Nextcloud, Jellyfin, and many others."}],features:[{title:"Web-Based Administration",description:"Create and manage users, groups, and permissions through a modern web interface without LDAP expertise."},{title:"LDAP Standard Compliance",description:"Full implementation of LDAP search and bind operations for compatibility with existing applications."},{title:"Multi-Factor Authentication",description:"Enhanced security with time-based one-time password (TOTP) support for two-factor authentication."},{title:"Password Policy Enforcement",description:"Configure password requirements including minimum length, complexity, and expiration policies."}],tags:["LDAP","Authentication","Identity Management","User Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["LLDAP_JWT_SECRET=".concat(a),"LLDAP_LDAP_BASE_DN=dc=example,dc=org","LLDAP_LDAP_USER_PASS=".concat(e.adminPassword),"LLDAP_HTTP_PORT=17170","LLDAP_LDAP_PORT=3389","RUST_LOG=info"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:17170}],mounts:[{type:"volume",name:"lldap-data",mountPath:"/data"}],ports:[{published:Number(e.exposedPort),target:3890}]}}),{services:t}}},{slug:"lms",meta:{name:"LMS",description:"LMS (Lightweight Music Server) is a self-hosted music streaming software that provides access to your music collection from anywhere using a web interface. It features Subsonic/OpenSubsonic API support, multi-valued tags, artist relationships, MusicBrainz integration, ListenBrainz support, recommendation engine, and comprehensive music discovery features.",instructions:null,changeLog:[{date:"2025-09-12",description:"Template Release (v3.70.0)"},{date:"2025-12-25",description:"Version bumped to 3.73.0"},{date:"2026-02-21",description:"Version bumped to 3.74.0"},{date:"2026-05-08",description:"Version bumped to 3.76.0"}],links:[{label:"Demo",url:"https://lms-demo.poupon.dev"},{label:"Github",url:"https://github.com/epoupon/lms"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lms"},appServiceImage:{type:"string",title:"App Service Image",default:"epoupon/lms:3.76.0"}}},benefits:[{title:"Subsonic/OpenSubsonic API Support",description:"Full compatibility with Subsonic and OpenSubsonic APIs, allowing you to use any compatible music client or mobile app with your LMS server."},{title:"Advanced Music Discovery",description:"Powerful recommendation engine with tag-based filters, radio mode, and intelligent suggestions to help you discover new music from your collection."},{title:"MusicBrainz Integration",description:"Seamless integration with MusicBrainz identifiers to handle duplicated artist and release names, ensuring accurate metadata and organization."}],features:[{title:"Multi-Valued Tags Support",description:"Support for multi-valued tags including genre, mood, artists, and custom tags for advanced music organization and filtering capabilities."},{title:"Artist Relationships",description:"Comprehensive artist relationship support including composer, conductor, lyricist, mixer, performer, producer, and remixer roles."},{title:"ListenBrainz Integration",description:"Full ListenBrainz support for scrobbling, synchronizing listens, and synchronizing 'love' feedbacks to enhance your music discovery."},{title:"Release Groups Support",description:"Support for different versions of albums such as remasters, reissues, and compilations with proper grouping and organization."},{title:"Audio Transcoding",description:"Built-in audio transcoding for compatibility and reduced bandwidth, supporting various audio formats and quality settings."},{title:"User Management",description:"Comprehensive user management with multiple authentication backends, allowing secure access control for different users."}],tags:["Music Streaming","Subsonic","MusicBrainz","ListenBrainz","Self-Hosted","Audio Streaming"],logo:null,screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5082}],mounts:[{type:"volume",name:"music",mountPath:"/music"},{type:"volume",name:"data",mountPath:"/var/lms"}]}}),{services:t}}},{slug:"lobechat",meta:{name:"LobeChat",description:"LobeChat is an open-source, AI-powered chat application designed to integrate with OpenAI services. It provides a seamless user experience, combining conversational AI capabilities with a customizable and extensible architecture. LobeChat is ideal for both personal and professional use cases, offering robust features for modern AI chat applications.",instructions:"Configure your OpenAI API key and proxy URL to start using the application.",changeLog:[{date:"2024-12-16",description:"First release"},{date:"2025-02-28",description:"Version bumped to 1.66.5"},{date:"2025-07-22",description:"Version bumped to 1.103.0"},{date:"2026-02-21",description:"Version bumped to 1.143.3"}],links:[{label:"Website",url:"https://lobehub.com/"},{label:"Compose Docs",url:"https://lobehub.com/docs/self-hosting/server-database/docker-compose"},{label:"Documentation",url:"https://lobehub.com/docs/usage/start"},{label:"Github",url:"https://github.com/lobehub/lobe-chat"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","openAiKey","openAiProxy","accessCode"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lobechat"},appServiceImage:{type:"string",title:"App Service Image",default:"lobehub/lobe-chat:1.143.3"},openAiKey:{type:"string",title:"OpenAI API Key",default:"sk-xxxx",description:"OpenAI API Key for enabling AI functionalities."},openAiProxy:{type:"string",title:"OpenAI Proxy",default:"https://api-proxy.com/v1",description:"Proxy URL for accessing OpenAI API securely."},accessCode:{type:"string",title:"Access Code",default:"lobe66",description:"Access code for secure authentication to the chat service."}}},benefits:[{title:"AI-Powered Conversations",description:"LobeChat leverages OpenAI's powerful models to provide intelligent, real-time conversational experiences for users."},{title:"Easy Integration with OpenAI",description:"Simplify AI setup with quick integration of OpenAI API keys and proxy configurations, allowing users to get started effortlessly."},{title:"Full Customization",description:"LobeChat offers extensive options for customizing chat workflows, user interfaces, and integration points for enhanced flexibility."}],features:[{title:"OpenAI Integration",description:"Seamlessly connect to OpenAI services for delivering cutting-edge conversational AI capabilities in your chat applications."},{title:"Access Control with Secure Codes",description:"Protect your chat application with access codes, ensuring only authorized users can interact with the AI service."},{title:"Multi-Platform Support",description:"LobeChat works across platforms, including web and containerized environments, providing versatility in deployment."},{title:"Extensible Architecture",description:"Built for developers, LobeChat's architecture allows you to add new integrations, APIs, or features with minimal effort."},{title:"User-Friendly UI",description:"LobeChat includes a clean, intuitive interface for a smooth user experience, enabling quick adoption and usage."}],tags:["AI Chat","OpenAI Integration","Customizable","Open Source","Conversational AI"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["OPENAI_API_KEY=".concat(e.openAiKey),"OPENAI_PROXY_URL=".concat(e.openAiProxy),"ACCESS_CODE=".concat(e.accessCode)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3210}]}}),{services:t}}},{slug:"localai",meta:{name:"LocalAI",description:"LocalAI is a drop-in replacement REST API that's compatible with OpenAI API specifications for local inferencing. It allows you to run LLMs, generate images, audio (and not only) locally or on-premises with consumer grade hardware, supporting multiple model families and not requiring GPU.",instructions:null,changeLog:[{date:"2025-06-10",description:"Template Release"}],links:[{label:"Website",url:"https://localai.io/"},{label:"Documentation",url:"https://localai.io/docs/"},{label:"Github",url:"https://github.com/mudler/LocalAI"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","debugMode"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"localai"},appServiceImage:{type:"string",title:"App Service Image",default:"localai/localai:v2.29.0-aio-cpu"},debugMode:{type:"boolean",title:"Debug Mode",default:!1}}},benefits:[{title:"OpenAI API Compatible",description:"Drop-in replacement for OpenAI API that works with existing applications."},{title:"Local Inference",description:"Run AI models locally without sending data to external services."},{title:"Multiple Model Support",description:"Supports various model families including LLMs, image generation, and audio."}],features:[{title:"Local LLM Hosting",description:"Host and run large language models locally on your hardware."},{title:"API Compatibility",description:"Full compatibility with OpenAI API specifications for easy integration."},{title:"Multi-Modal Support",description:"Support for text generation, image creation, audio processing, and more."},{title:"GPU Acceleration",description:"Optional GPU support for faster inference with NVIDIA CUDA."}],tags:["AI","LLM","OpenAI","Local Inference","Machine Learning"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.debugMode?"true":"false";return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DEBUG=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"models",mountPath:"/build/models"}]}}),{services:t}}},{slug:"logchimp",meta:{name:"LogChimp",description:"LogChimp is an open-source feedback and changelog platform that lets you collect product feedback, publish updates, and keep users informed from a single place. It provides an API, a web UI, and a themed frontend for your users to submit ideas, vote, and read announcements. Built with PostgreSQL and Valkey (Redis), it supports self-hosted deployments with migrations, background processing, and email notifications.",instructions:null,changeLog:[{date:"2025-12-23",description:"Template Release"},{date:"2026-05-08",description:"Version bumped to 0.9.0"}],links:[{label:"Website",url:"https://logchimp.codecarrot.net"},{label:"Documentation",url:"https://docs.logchimp.codecarrot.net/platform/what-is-logchimp"},{label:"GitHub",url:"https://github.com/logchimp/logchimp"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","apiImage","themeImage","valkeyImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"logchimp"},apiImage:{type:"string",title:"API Image",default:"ghcr.io/logchimp/logchimp/api:0.9.0"},themeImage:{type:"string",title:"Theme Image",default:"ghcr.io/logchimp/logchimp/theme:0.9.0"},valkeyImage:{type:"string",title:"Valkey Image",default:"valkey/valkey:9.0.4-alpine3.23"}}},benefits:[{title:"Unified Feedback & Changelog",description:"Collect feedback, votes, and publish changelog updates from one platform."},{title:"Self-Hosted Ownership",description:"Keep feedback data, API, and frontend under your control on your own infra."},{title:"Ready-to-Run Stack",description:"Ships with PostgreSQL, Valkey (Redis), migrations job, API, and theme UI."},{title:"Notifications & Email",description:"Supports mail configuration for notifications to keep users informed."}],features:[{title:"Feedback Boards",description:"Collect ideas and feature requests, let users vote, and prioritize work."},{title:"API + Themed Frontend",description:"Separate API service and themed UI for users to browse updates and submit feedback."},{title:"Database Migrations",description:"Dedicated migrator job to keep the database schema up to date."},{title:"Cache Layer",description:"Valkey/Redis cache for performance and background jobs."},{title:"Email Support",description:"Configure SMTP credentials to send notifications and updates."}],tags:["Feedback","Changelog","Product Management","Self-Hosted","PostgreSQL"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(64),o=y(32);return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-cache"),source:{type:"image",image:e.valkeyImage},deploy:{command:"valkey-server --save 60 1 --loglevel warning --dir /data"},mounts:[{type:"volume",name:"cache",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),source:{type:"image",image:e.apiImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["NODE_ENV=production","PORT=8000","LOGCHIMP_API_HOST=$(PRIMARY_DOMAIN)","LOGCHIMP_IS_SELF_HOSTED=true","LOGCHIMP_SECRET_KEY=".concat(i),"LOGCHIMP_MACHINE_SIGNATURE=".concat(o),"LOGCHIMP_WEB_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-theme.$(EASYPANEL_HOST)"),"LOGCHIMP_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"LOGCHIMP_DB_DATABASE=$(PROJECT_NAME)","LOGCHIMP_DB_PORT=5432","LOGCHIMP_DB_USER=postgres","LOGCHIMP_DB_PASSWORD=".concat(a),"LOGCHIMP_DB_SSL=false","LOGCHIMP_VALKEY_URL=$(PROJECT_NAME)_".concat(e.appServiceName,"-cache:6379"),"LOGCHIMP_MAIL_HOST=","LOGCHIMP_MAIL_USER=","LOGCHIMP_MAIL_PASSWORD=","LOGCHIMP_MAIL_PORT="].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-theme"),source:{type:"image",image:e.themeImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["NODE_ENV=production","PORT=3000","VITE_API_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)"),"VITE_IS_SELF_HOSTED=true"].join("\n")}}),{services:t}}},{slug:"logseq",meta:{name:"Logseq",description:"Logseq is a powerful tool designed to enhance your note-taking and task management experience. It allows you to connect your notes, increasing your understanding and productivity. With features like PDF Annotations, Flashcards, and Whiteboards, it caters to a wide range of users including students, academics, writers, project managers, and developers. Logseq helps you capture, structure, and review your class notes with ease using the Linked References, Queries, and Search features. It also aids in memorizing facts and insights using the Flashcards feature. You can organize your thoughts and ideas, and quickly turn them into outlines using Block References. The app also offers tips and tricks to improve your note-taking skills, whether you're a beginner, intermediate, or expert. With Logseq, you can create your own processes, generate tables of relevant information, and always find what you're looking for. It also helps you stay on top of your relationships, conversations, and meetings, making it a safe space for your thoughts. Logseq is designed to store your interests, questions, ideas, favorite quotes, reminders, reading and meeting notes easily and future-proof. It also offers real-time, encrypted file syncing so you'll always have your notes backed up and securely available on any device. The Whiteboards feature provides a new canvas for your thoughts, allowing you to connect, associate and understand in new ways.",instructions:null,changeLog:[{date:"2023-5-23",description:"first release"}],links:[{label:"Website",url:"https://logseq.com"},{label:"Documentation",url:"https://docs.logseq.com"},{label:"Github",url:"https://github.com/logseq/logseq"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"logseq"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/logseq/logseq-webapp"}}},benefits:[{title:"Enhanced Productivity",description:"This app is designed to boost your productivity by keeping all your notes, tasks, and ideas in one place. It helps you stay organized, remember facts, and outline essays with ease."},{title:"Efficient Task Management",description:"The app provides an efficient way to manage your tasks. It allows you to capture, structure, and review all your class notes with ease using the Linked References, Queries, and Search features."},{title:"Improved Learning",description:"The app enhances your learning by allowing you to remember facts and insights using the Flashcards feature. It also helps you organize your thoughts and ideas, and quickly turn them into outlines using Block References."},{title:"Better Communication",description:"The app helps you stay on top of your relationships, conversations, and meetings. It is designed to store your interests, questions, ideas, favorite quotes, reminders, reading and meeting notes easily."}],features:[{title:"Task Management",description:"Capture, structure, and review all of your class notes with ease using the Linked References, Queries, and Search features."},{title:"Flashcards",description:"Remember facts and insights using the Flashcards feature."},{title:"Outline Creation",description:"Organize your thoughts and ideas, and quickly turn them into outlines using Block References."},{title:"Journaling",description:"Get in the habit of writing thoughts down every day. Think in sections, use indentation, and always find what you\u2019re looking for."},{title:"Data Control",description:"The app is privacy-first, meaning you own your data locally forever. It is also open source and free forever for personal use."},{title:"Whiteboards",description:"Place any of your thoughts from the knowledge base or new ones next to each other on an infinite canvas to connect, associate and understand in new ways."}],tags:["Notes","Productivity"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"logto",meta:{name:"Logto",description:"Logto is an Auth0 alternative designed for modern apps and SaaS products. It offers a seamless developer experience and is well-suited for individuals and growing companies.",instructions:null,changeLog:[{date:"2024-6-21",description:"first release"},{date:"2025-02-28",description:"Version bumped to 1.25"},{date:"2025-12-25",description:"Version bumped to 1.34"},{date:"2026-02-21",description:"Version bumped to 1.36"},{date:"2026-05-08",description:"Version bumped to 1.39.0"}],links:[{label:"Website",url:"https://logto.io/"},{label:"Documentation",url:"https://docs.logto.io/"},{label:"Github",url:"https://github.com/logto-io/logto"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"logto"},appServiceImage:{type:"string",title:"App Service Image",default:"svhd/logto:1.39.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"logto-db"}}},benefits:[{title:"Comprehensive frontend-to-backend identity solution",description:"Logto offers a comprehensive identity solution covering both the front and backend, complete with pre-built infrastructure and enterprise-grade solutions"},{title:"Full customization",description:"The ready-to-use Management API offers a wide range of features for Logto's identity-related back-end services, ideal for customization."},{title:"Multi-tenancy",description:"Logto provides B2B solutions like organizations(multi-tenancy),Enterprise SSO(SAML and OIDC),MFA etc. It also helps you integrate your existing application with Logto workflow."}],features:[{title:"Out-of-the-box infrastructure",description:"Logto Includes a ready-to-use Management API, serving as your authentication provider, thus eliminating the need for extra implementation."},{title:"Enterprise-ready solutions",description:"Logto Implements role-based access control (RBAC) for scalable role authorization, catering to a wide range of use cases. Enables single sign-on (SSO) and multi-factor authentication (MFA) without extra coding."},{title:"Webhook Integration",description:"Logto Webhook enables you to effortlessly receive real-time updates regarding specific events, such as user registration, sign-in, or password reset. You no longer need to continuously poll for updates."},{title:"MFA, or Multi-Factor Authentication",description:"Logto offers a minimal-effort configuration process, allowing you to enable MFA with a single click. Our comprehensive MFA flows prioritize security and balance user experience."}],tags:["Identity Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TRUST_PROXY_HEADER=1","DB_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"ENDPOINT=https://$(EASYPANEL_DOMAIN)","ADMIN_ENDPOINT=https://admin-$(EASYPANEL_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80},{host:"admin-$(EASYPANEL_DOMAIN)",port:3002}],deploy:{command:"npm run cli db seed -- --swe && npm start"}}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:16",password:a}}),{services:t}}},{slug:"lollypop",meta:{name:"Lollypop",description:"Lollypop is a self-hosted, high-performance music library manager and player. It is designed to handle extensive music collections, offering a sleek and modern interface for browsing, organizing, and playing your favorite tracks. The app supports multiple audio formats, playlists, and smart sorting options. Lollypop integrates seamlessly with online services to fetch album artwork, lyrics, and artist information. It also provides a simple API for managing playlists and controlling playback remotely. Lollypop is open-source, free, and designed to run efficiently on minimal hardware, making it a lightweight yet powerful solution for all your music needs.",instructions:null,changeLog:[{date:"2024-12-30",description:"First Release"},{date:"2025-07-22",description:"Version bumped to 1.4.40"},{date:"2026-02-21",description:"Version bumped to 1.4.45"}],links:[{label:"Website",url:"https://lollypop.app/"},{label:"Documentation",url:"https://lollypop.app/docs/"},{label:"Github",url:"https://github.com/linuxserver/lollypop"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lollypop"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/lollypop:1.4.45"}}},benefits:[{title:"Modern Interface",description:"Lollypop features a sleek and modern interface that makes it easy to browse, organize, and play your music collection."},{title:"Multi-Format Support",description:"Supports multiple audio formats, allowing you to play all your favorite tracks without any compatibility issues."},{title:"Lightweight",description:"Lollypop is designed to run efficiently on minimal hardware, making it a perfect choice for users looking for a lightweight music player."}],features:[{title:"Music Library Management",description:"Organize and browse your music library with smart sorting options, playlists, and metadata fetching for tracks."},{title:"Remote API",description:"Lollypop provides a simple API to manage playlists and control playback remotely from other devices."},{title:"Extensibility",description:"Integrate with online services to fetch album artwork, lyrics, and artist information for an enriched listening experience."},{title:"Performance",description:"Lollypop is optimized for high performance and minimal resource usage, ensuring smooth playback and library management."},{title:"Open Source",description:"Free and open-source software, allowing the community to contribute to its features and enhancements."}],tags:["Music","Player","Library Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"loonflow",meta:{name:"Loonflow",description:"Loonflow is a comprehensive workflow management system that provides end-to-end workflow automation and process management capabilities. Built with Django and React, Loonflow offers a complete solution for designing, executing, and monitoring business workflows. The system consists of a PostgreSQL database for data persistence, Redis for task queue management, a Django backend API, a React frontend UI, and Celery workers for asynchronous task processing. Perfect for organizations looking to automate business processes and manage complex workflows with a self-hosted solution.",instructions:"You can change the lanaguage by clicking the admin icon, click the first option, and then change it to American English in the dropdown.",changeLog:[{date:"2025-01-22",description:"Initial Template Release"}],links:[{label:"GitHub",url:"https://github.com/blackholll/loonflow"},{label:"Documentation",url:"https://loonflow.readthedocs.io/en/r3.0/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","backendImage","uiImage","postgresDb","adminEmail","adminName","adminPassword","tenantName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"loonflow"},backendImage:{type:"string",title:"Backend Image",default:"blackholll/loonflow-backend:r3.0.1"},uiImage:{type:"string",title:"UI Image",default:"blackholll/loonflow-ui:r3.0.1"},postgresDb:{type:"string",title:"PostgreSQL Database Name",default:"loonflow"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]",description:"Email address for the Django superuser"},adminName:{type:"string",title:"Admin Name",default:"admin",description:"Username for the Django superuser"},adminPassword:{type:"string",title:"Admin Password",default:"admin123",description:"Password for the Django superuser"},tenantName:{type:"string",title:"Tenant Name",default:"Default Tenant",description:"Name of the tenant/organization"}}},benefits:[{title:"Workflow Automation",description:"Design and execute complex business workflows with visual workflow designer and automated process execution."},{title:"Self-Hosted Solution",description:"Maintain complete control over your workflow data and processes with a self-hosted deployment."},{title:"Scalable Architecture",description:"Built with microservices architecture including separate backend, frontend, and task worker services for scalability."},{title:"Task Queue Management",description:"Redis-powered task queue with Celery workers for reliable asynchronous task processing and workflow execution."}],features:[{title:"Workflow Designer",description:"Visual workflow designer for creating and managing complex business processes with drag-and-drop interface."},{title:"PostgreSQL Database",description:"Reliable PostgreSQL database for persistent storage of workflow definitions, execution history, and system data."},{title:"Redis Task Queue",description:"Redis-based task queue for managing asynchronous workflow tasks and ensuring reliable task execution."},{title:"Celery Workers",description:"Dedicated Celery worker service for processing workflow tasks with configurable concurrency and queue management."},{title:"Django Backend API",description:"Robust Django REST API backend with automatic database migrations and superuser creation on startup."},{title:"React Frontend UI",description:"Modern React-based user interface for workflow management, monitoring, and administration."},{title:"Multi-Tenant Support",description:"Built-in multi-tenant support with configurable tenant names and domains for organizational isolation."}],tags:["Workflow","Automation","Process Management","Self-Hosted","Django","Celery","Enterprise"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=e.adminPassword||v();t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-pg"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}});var n=["DB_NAME=".concat(e.postgresDb),"DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-pg"),"DB_USER=postgres","DB_PASS=".concat(a),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PASS=".concat(i),"DJANGO_SUPERUSER_PASSWORD=".concat(o),"TENANT_NAME=".concat(e.tenantName),"TENANT_DOMAIN=http://$(PRIMARY_DOMAIN)"];t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-backend"),source:{type:"image",image:e.backendImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:n.join("\n"),deploy:{command:'sh -c "python manage.py makemigrations && python manage.py migrate && python manage.py createsuperuser --noinput --email '.concat(e.adminEmail," --name ").concat(e.adminName,' || true && gunicorn --bind 0.0.0.0:8000 --workers 4 --chdir /app/loonflow --pythonpath /app/loonflow --access-logfile - --error-logfile - --log-level info loonflow.wsgi:application"')}}});var r=["DB_NAME=$(PROJECT_NAME)","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-pg"),"DB_USER=postgres","DB_PASS=".concat(a),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PASS=".concat(i)];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-task"),source:{type:"image",image:e.backendImage},env:r.join("\n"),deploy:{command:'sh -c "cd /app/loonflow && celery -A tasks worker -l info -c 8 -Q loonflow"'}}
1}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-ui"),source:{type:"image",image:e.uiImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"lowcoder",meta:{name:"Lowcoder",description:"Open-source low-code platform to build internal tools with minimal effort.",instructions:null,changeLog:[{date:"2025-05-26",description:"First release"},{date:"2026-05-08",description:"Version bumped to 2.7.6"}],links:[{label:"Website",url:"https://lowcoder.org/"},{label:"Documentation",url:"https://docs.lowcoder.org/"},{label:"Github",url:"https://github.com/lowcoder-org/lowcoder"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","apiServiceImage","nodeServiceImage","frontendImage","superuserUsername","superuserPassword","smtpHost","smtpPort","smtpUsername","smtpPassword","notificationSender"],properties:{appServiceName:{type:"string",title:"Service Name",default:"lowcoder"},apiServiceImage:{type:"string",title:"API Service Image",default:"lowcoderorg/lowcoder-ce-api-service:2.7.6"},nodeServiceImage:{type:"string",title:"Node Service Image",default:"lowcoderorg/lowcoder-ce-node-service:2.7.6"},frontendImage:{type:"string",title:"Frontend Image",default:"lowcoderorg/lowcoder-ce-frontend:2.7.6"},superuserUsername:{type:"string",title:"Superuser Username",default:"admin@localhost"},superuserPassword:{type:"string",title:"Superuser Password",default:"password"},smtpHost:{type:"string",title:"SMTP Host",default:"smtp.gmail.com"},smtpPort:{type:"string",title:"SMTP Port",default:"587"},smtpUsername:{type:"string",title:"SMTP Username",default:"[email protected]"},smtpPassword:{type:"string",title:"SMTP Password",default:"your-password"},notificationSender:{type:"string",title:"Notification Email Sender",default:"info@localhost"}}},benefits:[{title:"Build Internal Tools Fast",description:"Create applications without extensive coding knowledge."},{title:"Connect to Multiple Data Sources",description:"Integrate with databases, APIs, and other services."},{title:"Self-Hosted Solution",description:"Complete control over your data and infrastructure."}],features:[{title:"Visual Development",description:"Drag-and-drop interface for building applications."},{title:"Data Integration",description:"Connect to various data sources with minimal configuration."},{title:"User Management",description:"Built-in authentication and user permission controls."},{title:"Customizable Components",description:"Extensive library of UI components and templates."}],tags:["Low-Code","Internal Tools","Application Builder","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(32),r=y(32);return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api-service"),source:{type:"image",image:e.apiServiceImage},env:["LOWCODER_PUBLIC_URL=https://$(PRIMARY_DOMAIN)","LOWCODER_PUID=9001","LOWCODER_PGID=9001","LOWCODER_MONGODB_URL=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-mongodb:27017/$(PROJECT_NAME)?authSource=admin"),"LOWCODER_REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-redis:6379"),"LOWCODER_NODE_SERVICE_URL=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-node-service:6060"),"LOWCODER_MAX_QUERY_TIMEOUT=120","LOWCODER_MAX_REQUEST_SIZE=20m","LOWCODER_EMAIL_AUTH_ENABLED=true","LOWCODER_EMAIL_SIGNUP_ENABLED=true","LOWCODER_CREATE_WORKSPACE_ON_SIGNUP=true","LOWCODER_DB_ENCRYPTION_PASSWORD=".concat(o),"LOWCODER_DB_ENCRYPTION_SALT=".concat(n),"LOWCODER_CORS_DOMAINS=*","LOWCODER_MAX_ORGS_PER_USER=100","LOWCODER_MAX_MEMBERS_PER_ORG=1000","LOWCODER_MAX_GROUPS_PER_ORG=100","LOWCODER_MAX_APPS_PER_ORG=1000","LOWCODER_MAX_DEVELOPERS=50","LOWCODER_API_KEY_SECRET=".concat(r),"LOWCODER_PLUGINS_DIR=../plugins","LOWCODER_API_RATE_LIMIT=50","LOWCODER_WORKSPACE_MODE=SAAS","LOWCODER_MARKETPLACE_PRIVATE_MODE=true","LOWCODER_ADMIN_SMTP_HOST=".concat(e.smtpHost),"LOWCODER_ADMIN_SMTP_PORT=".concat(e.smtpPort),"LOWCODER_ADMIN_SMTP_USERNAME=".concat(e.smtpUsername),"LOWCODER_ADMIN_SMTP_PASSWORD=".concat(e.smtpPassword),"LOWCODER_ADMIN_SMTP_AUTH=true","LOWCODER_ADMIN_SMTP_SSL_ENABLED=false","LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED=true","LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED=true","LOWCODER_EMAIL_NOTIFICATIONS_SENDER=".concat(e.notificationSender),"LOWCODER_
1SUPERUSER_USERNAME=".concat(e.superuserUsername),"LOWCODER_SUPERUSER_PASSWORD=".concat(e.superuserPassword)].join("\n"),mounts:[{type:"volume",name:"stacks",mountPath:"/lowcoder-stacks"},{type:"volume",name:"assets",mountPath:"/lowcoder/assets"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-node-service"),source:{type:"image",image:e.nodeServiceImage},env:["LOWCODER_PUID=9001","LOWCODER_PGID=9001","LOWCODER_API_SERVICE_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-api-service:8080")].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-frontend"),source:{type:"image",image:e.frontendImage},env:["LOWCODER_PUID=9001","LOWCODER_PGID=9001","LOWCODER_MAX_REQUEST_SIZE=20m","LOWCODER_MAX_QUERY_TIMEOUT=120","LOWCODER_API_SERVICE_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-api-service:8080"),"LOWCODER_NODE_SERVICE_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-node-service:6060")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"assets",mountPath:"/lowcoder/assets"}]}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-mongodb"),password:a,image:"mongo:7.0"}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"lubelogger",meta:{name:"LubeLogger",description:"LubeLogger is a self-hosted vehicle maintenance and service tracking application that helps you keep comprehensive records of all your vehicle's maintenance activities, repairs, and modifications. Designed for car enthusiasts, fleet managers, and anyone who wants to maintain detailed service histories, LubeLogger provides an intuitive web interface to log oil changes, tire rotations, repairs, upgrades, and more. The application allows you to track multiple vehicles, set maintenance reminders based on mileage or time intervals, and maintain a complete history of all service records with costs and notes. With support for uploading receipts and documents, you can keep all your vehicle maintenance information in one centralized location. LubeLogger features automatic odometer tracking, service interval reminders, cost analysis and reporting, tax deduction calculations for business use, and comprehensive search and filtering capabilities. Built with ASP.NET, it provides a responsive web interface that works seamlessly across desktop and mobile devices, allowing you to update maintenance records from anywhere. Perfect for vehicle owners who want to maintain detailed service histories, car collectors managing multiple vehicles, fleet managers tracking maintenance across multiple assets, mechanics and auto shops offering service tracking to customers, or anyone preparing to sell a vehicle and wanting to demonstrate a complete maintenance history to potential buyers.",instructions:null,changeLog:[{date:"2025-12-02",description:"Template Release"},{date:"2026-02-21",description:"Version bumped to v1.6.6"}],links:[{label:"Website",url:"https://lubelogger.com"},{label:"GitHub",url:"https://github.com/hargata/lubelog"},{label:"Documentation",url:"https://docs.lubelogger.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lubelogger"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/hargata/lubelogger:v1.6.6"}}},benefits:[{title:"Complete Maintenance History",description:"Keep detailed records of all maintenance, repairs, and modifications for all your vehicles in one centralized, searchable location."},{title:"Service Reminders",description:"Set automatic reminders based on mileage or time intervals to never miss important maintenance tasks like oil changes or inspections."},{title:"Cost Tracking & Analysis",description:"Track all maintenance costs, analyze spending patterns, and calculate tax deductions for business vehicle use."},{title:"Self-Hosted Privacy",description:"Keep your vehicle information and maintenance records private on your own infrastructure without relying on third-party services."}],features:[{title:"Multi-Vehicle Support",description:"Track maintenance records for unlimited vehicles including cars, motorcycles, trucks, boats, and other motorized assets."},{title:"Comprehensive Service Logging",description:"Log all types of maintenance activities including oil changes, tire rotations, brake work, repairs, modifications, and general inspections."},{title:"Odometer Tracking",description:"Automatically track odometer readings over time and calculate mileage-based service intervals for accurate maintenance scheduling."},{title:"Maintenance Reminders",description:"Configure reminders based on mileage intervals, time periods, or both to ensure timely maintenance and prevent missed service appointments."},{title:"Document Storage",description:"Upload and store receipts, invoices, service records, and other documents directly with each maintenance entry for complete documentation."},{title:"Cost Analysis",description:"View detailed cost breakdowns by vehicle, service type, or time period with built-in reporting and visualization tools."},{title:"Tax Calculation",description:"Calculate business mileage and maintenance deductions for tax purposes with detailed reporting for business vehicle use."},{title:"Mobile-Friendly Interface",description:"Responsive web design allows you to log maintenance records and check service history from any device, anywhere."},{title:"Search & Filter",description:"Powerful search and filtering capabilities let you quickly find specific maintenance records across all vehicles and time periods."},{title:"Export Capabilities",description:"Export your maintenance records and reports in various formats for backup, analysis, or sharing with mechanics and potential buyers."}],tags:["Productivity","Vehicle Management","Maintenance Tracking","Self-Hosted","Fleet Management","Record Keeping"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/App/data"},{type:"volume",name:"keys",mountPath:"/root/.aspnet/DataProtection-Keys"}]}}),{services:t}}},{slug:"lute-v3",meta:{name:"Lute v3",description:"Lute (Learning Using Texts) is a free, open-source web application for learning foreign languages through reading. Import or paste texts in any language, click unknown words to look them up, save definitions and translations, and watch your comprehension grow as the app tracks each term's learning status. It ships with built-in support for many European languages as well as optional parsers for Japanese (MeCab) and Mandarin. All data is stored in a local SQLite database \u2014 no account, no cloud, no subscription required.",instructions:'Open the app at your domain after deployment. On first launch, Lute presents a built-in tutorial. Go to Settings to add your languages, then create a Book and paste or import a text to start reading. Two image variants are available \u2014 choose "lean" if you are not studying Japanese or Mandarin (saves ~550 MB). The full image includes MeCab and Mandarin parsers. Data is persisted in two volumes; /lute_data (database and user images) and /lute_backup (auto-backups). Both must be mounted or the container will refuse to start.',changeLog:[{date:"2026-06-25",de
1scription:"First Release"}],links:[{label:"Website",url:"https://luteorg.github.io/lute-manual/"},{label:"GitHub",url:"https://github.com/LuteOrg/lute-v3"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"lute-v3"},appServiceImage:{type:"string",title:"App Service Image",default:"jzohrab/lute3:3.10.1"}}},benefits:[{title:"Learn Languages Through Real Reading",description:"Read authentic texts in your target language. Click any word to look it up, save a translation and status, and Lute colours each word by how well you know it \u2014 giving you instant comprehension feedback as you read."},{title:"Fully Self-Hosted, No Account Required",description:"Everything runs locally in a single container with a SQLite database. There is no sign-up, no cloud sync, and no subscription \u2014 your vocabulary data stays on your server forever."},{title:"Supports Dozens of Languages",description:"Built-in parsers cover most European languages. The full image adds MeCab for Japanese and a Mandarin parser, making Lute suitable for a wide range of language learners."},{title:"Anki Integration",description:"Export saved terms directly to Anki via AnkiConnect so you can reinforce vocabulary you have encountered in real texts with spaced-repetition flashcard review."}],features:[{title:"Interactive Reading Pane",description:"Words are colour-coded by learning status (1\u20135 or well-known). Click a word to open an inline definition form and lookup pane with dictionary results; multi-word terms can be selected by shift-click."},{title:"Term Tracking",description:"Every word you look up is saved with a status, translation, tags, and parent form. Terms automatically advance through statuses as you mark them known during reading sessions."},{title:"Books and Text Import",description:"Organise reading material as Books. Import plain text files, paste text directly, or use URLs \u2014 Lute splits long texts into pages automatically."},{title:"Built-in Dictionary Lookup",description:"The reading pane embeds dictionary lookups (FreeDictionary, DeepL, and others you configure) in a side panel so you never need to leave the page."},{title:"Audio Support",description:"Attach audio files to books and listen while you read. Lute supports sentence-level audio alignment for immersive listening-reading practice."}],tags:["Education","Language Learning","Self-Hosted","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5001}],mounts:[{type:"volume",name:"data",mountPath:"/lute_data"},{type:"volume",name:"backup",mountPath:"/lute_backup"}]}}),{services:t}}},{slug:"lychee",meta:{name:"Lychee",description:"Lychee is a free, self-hosted photo-management tool designed to make managing your photos a breeze. It allows you to upload, move, rename, describe, delete, and search your photos all in one place, right from your browser. With Lychee, you can easily share your photos and albums with just one click, and even protect them with passwords for added security. The app also allows you to view your images in full-screen mode, navigate using your keyboard, and make your photos public for others to enjoy. Lychee supports batch editing with desktop-like multi-select and displays your EXIF and IPTC Metadata. You can import your photos from various sources, tag them, or mark them as important. Lychee is designed with a beautiful, intuitive interface and is perfect for photographers as it offers unlimited storage, no compression, and no loss in data.",instructions:"Lychee takes a few minutes to get ready. Sit back, relax, and have a coffee!",changeLog:[{date:"2022-10-28",description:"first release"},{date:"2025-12-25",description:"Version bumped to v6.10.4"}],links:[{label:"Website",url:"https://lycheeorg.github.io/"},{label:"Documentation",url:"https://lycheeorg.github.io/docs/"},{label:"Github",url:"https://github.com/LycheeOrg/Lychee"},{label:"Demo",url:"https://lycheeorg.github.io/demo/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lychee"},appServiceImage:{type:"string",title:"App Service Image",default:"lycheeorg/lychee:v6.10.4"},databaseType:{type:"string",title:"Database Type",default:"sqlite",oneOf:[{enum:["sqlite"],title:"SQLite"}]}}},benefits:[{title:"Self-Hosted Photo Management",description:"Lychee is a free photo-management tool that runs on your server or web-space, giving you full control over your photos. Your photos are stored securely and you never have to depend on someone else."},{title:"Easy Photo Management",description:"With Lychee, managing your photos has never been easier. You can upload, move, rename, describe, delete or search your photos in seconds, all in one place, right from your browser."},{title:"Effortless Sharing",description:"Sharing your photos is as easy as a single click. Every photo and album is ready for the public, and you can also protect albums with passwords if you want. You have full control over your photos."},{title:"View and Enjoy Your Photos",description:"Lychee allows you to view all your images in full-screen mode, navigate forward and backward using your keyboard, or let others enjoy your photos by making them public."},{title:"Open Source and Secure",description:"Lychee is completely open-source and secure. Your server, your data, your rules. You are in full control of your photos."},{title:"Designed for Photographers",description:"Lychee is the perfect place to store all your photos. There is no storage limit, no compression, and no loss in data. It even supports and displays your EXIF and IPTC Metadata."}],features:[{title:"Upload and Create Albums",description:"With Lychee, you can easily upload your photos or create a new album for them."},{title:"See All Information from Your Photos",description:"Lychee allows you to see all the information from your photos, including EXIF and IPTC Metadata, which are always available one click away."},{title:"Batch Editing",description:"Lychee supports batch editing with desktop-like multi-select, making it easy to manage your photos."},{title:"Share Your Photos",description:"You can share your albums or photos with your favorite service. With just one click, you can make your photos public for your audience."},{title:"Import Photos",description:"Lychee allows you to import your photos from various sources, including your local computer, server, via URL, or even from your Dropbox."},{title:"Tag Your Photos",description:"Never lose one of your photos in the depth of your albums. With Lychee, you can tag them or mark them as important."}],tags:["Gallery","Photo Management","Self-hosted"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[],a=[];return"sqlite"===e.databaseType&&a.push("DB_CONNECTION=sqlite"),t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"conf",mountPath:"/conf"},{type:"volume",name:"sym",mountPath:"/sym"},{type:"volume",name:"uploads",mountPath:"/uploads"}]}}),{services:t}}},{slug:"lynx",meta:{name:"Lynx",description:"Lynx is a robust URL shortener application designed to simplify and streamline your web browsing experience. Built using the MEVN stack, Lynx offers a user-friendly interface and the ability to redirect the root path for a more personalized touch. The app also features a unique admin interface, providing you with full control over your shortened URLs. With Lynx, you can easily manage and customize your links, each of which includes a slug, destination, and id. The app also supports multiple users, integrates with ShareX, and offers two-factor authentication for enhanced security. Lynx is the sleek, powerful URL shortener you've been looking for.",instructions:"Registration is disabled by default, but the first registration will always be allowed.",changeLog:[{date:"2023-3-15",description:"first release"},{date:"2025-02-28",description:"Version bumped to 1.10.1"}],links:[{label:"Demo",url:"https://demo.getlynx.dev/"},{label:"Github",url:"https://github.com/Lynx-Shortener/Lynx/"},{label:"Website",url:"https://getlynx.dev"},{label:"Docs",url:"https://docs.getlynx.dev"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"lynx"},appServiceImage:{type:"string",title:"App Service Image",default:"jackbailey/lynx:1.10.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"lynx-db"}}},benefits:[{title:"Efficient URL Management",description:"Lynx offers a sleek and powerful solution for shortening and managing your URLs. It simplifies the process of sharing long and complex URLs by converting them into shorter and more manageable links."},{title:"User-Friendly Interface",description:"The application features a simple and intuitive user interface, making it easy for users to create, manage, and share shortened URLs."},{title:"Secure Access",description:"With features like multi-user support and 2FA, Lynx ensures secure access to your shortened URLs. Each user has their own account with a unique username and password."}],features:[{title:"URL Shortening",description:"Lynx allows you to shorten your URLs, making them easier to share and remember. Each shortened URL includes a unique slug that serves as the path in the source URL."},{title:"Admin Interface",description:"Lynx provides an admin interface where you can manage your shortened URLs. You also have the option to redirect the root path."},{title:"ShareX Integration",description:"Lynx supports integration with ShareX, allowing you to easily share your shortened URLs."},{title:"Multi-User Support",description:"Lynx supports multiple users, each with their own account. This allows for secure and organized management of shortened URLs."},{title:"Two-Factor Authentication (2FA)",description:"For added security, Lynx supports two-factor authentication. This ensures that only authorized users can access their respective accounts."}],tags:["URL Shortener","Web Tools"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v(),i=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NODE_ENV=production","DB_USER=mongo","DB_PASSWORD=".concat(a),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_PORT=27017","JWT_KEY=".concat(i),"URL_LENGTH=8","URL_SET=standard","URL_ONLY_UNIQUE=false","HOME_REDIRECT=/dash/overview","FORCE_FRONTEND_REDIRECT=false","ENABLE_REGISTRATION=false","DOMAIN=https://$(PRIMARY_DOMAIN)","DEMO=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"mongo",data:{serviceName:e.databaseServiceName,image:"mongo:4",password:a}}),{services:t}}},{slug:"mageai",meta:{name:"Mage-AI",description:"Mage-AI is a powerful open-source data pipeline tool designed to simplify and accelerate building, deploying, and managing machine learning workflows. It empowers data engineers and scientists with a unified platform to seamlessly create pipelines for data ingestion, transformation, and model deployment. With Mage-AI's user-friendly interface and robust features, it becomes an essential tool for teams aiming to deliver AI solutions efficiently and effectively.",instructions:null,changeLog:[{date:"2024-12-31",description:"First Release"},{date:"2025-06-05",description:"Update to 0.9.76"},{date:"2025-12-29",description:"Update to 0.9.78"},{date:"2026-02-21",description:"Update to 0.9.79"}],links:[{label:"Website",url:"https://docs.mage.ai/introduction/overview"},{label:"Documentation",url:"https://docs.mage.ai/"},{label:"Github",url:"https://github.com/mage-ai/mage-ai"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","projectName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mage-ai"},appServiceImage:{type:"string",title:"App Service Image",default:"mageai/mageai:0.9.79"},projectName:{type:"string",title:"Project Name",default:"my-first-project"}}},benefits:[{title:"Unified Data Workflows",description:"Mage-AI provides a single interface to design and execute complex data pipelines, streamlining the machine learning process."},{title:"Easy Integration",description:"Integrates seamlessly with existing tools and platforms, enabling flexible and scalable pipeline deployments."},{title:"Open-Source Advantage",description:"Leverage the power of open-source development for maximum customization and community support."},{title:"User-Friendly Interface",description:"A web-based interface simplifies the creation and management of pipelines without extensive coding knowledge."},{title:"Scalable Architecture",description:"Scales efficiently to handle projects of any size, from small experiments to enterprise-level solutions."}],features:[{title:"Data Pipeline Automation",description:"Automate data ingestion, transformation, and processing tasks to reduce manual effort and improve productivity."},{title:"Customizable Components",description:"Easily customize and extend pipeline components to meet your specific project requirements."},{title:"Real-Time Monitoring",description:"Monitor pipeline performance in real-time with detailed metrics and logs."},{title:"Model Deployment",description:"Simplify model deployment to production environments with Mage-AI's integrated tools."},{title:"Seamless Cloud Integration",description:"Supports deployment on popular cloud platforms for flexible and scalable infrastructure."},{title:"Collaborative Environment",description:"Enables team collaboration with shared pipelines and configurations."},{title:"Version Control",description:"Built-in version control helps track changes and revert to previous states when needed."},{title:"Multi-Language Support",description:"Supports Python, SQL, and other languages for building diverse and robust pipelines."},{title:"Advanced Orchestration",description:"Schedule, run, and manage multiple pipelines with ease using advanced orchestration features."},{title:"Lightweight Deployment",description:"Deploy lightweight containers with minimal resource consumption for high performance."}],tags:["Data Pipelines","Machine Learning","AI","Automation","Data Engineering","Model Deployment","Open-Source","Scalable","Cloud"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["USER_CODE_PATH=/home/src/".concat(e.projectName),"PROJECT_NAME=".concat(e.projectName)].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"mage start ${PROJECT_NAME}"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6789}],mounts:[{type:"volume",name:"config",mountPath:"/home/src/"}]}}),{services:t}}},{slug:"mailcrab",meta:{name:"MailCrab",description:"MailCrab is an email test server designed for development purposes. It is an accept-all SMTP server that provides a web interface for viewing and inspecting all incoming emails. You can view formatted mail, download attachments, view headers, or view the complete raw mail contents. The app runs on all amd64 and arm64 platforms using docker. The backend server and the frontend of the app are both written in Rust. The backend receives email over an unencrypted connection on a configurable port, and all email is stored in memory while the application is running. The frontend initially performs a call to receive all existing email metadata and then subscribes for new messages using the websocket connection. When opening a message, the endpoint is used to retrieve the complete message body and raw email. The backend also accepts a few commands over the websocket, to mark a message as opened, to delete a single message or delete all messages.",instructions:null,changeLog:[{date:"2022-11-5",description:"first release"},{date:"2024-10-18",description:"Updated version to 1.3.0"},{date:"2025-02-28",description:"Version bumped to v1.4.0"},{date:"2025-07-22",description:"Version bumped to v1.6.1"},{date:"2025-12-29",description:"Version bumped to v1.6.2"},{date:"2026-02-21",description:"Version bumped to v1.6.4"},{date:"2026-05-04",description:"Version bumped to v1.6.5"}],links:[{label:"Github",url:"https://github.com/tweedegolf/mailcrab"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mailcrab"},appServiceImage:{type:"string",title:"App Service Image",default:"marlonb/mailcrab:v1.6.5"}}},benefits:[{title:"Efficient Email Testing",description:"MailCrab is an email test server that allows developers to efficiently test their email functionalities during development. It accepts all SMTP server emails, making it a versatile tool for various email testing scenarios."},{title:"Comprehensive Email Inspection",description:"With MailCrab, you can view and inspect all incoming emails in a user-friendly web interface. It allows you to view formatted mail, download attachments, view headers, or see the complete raw mail contents, providing a comprehensive overview of your email tests."},{title:"Lightweight and Versatile",description:"MailCrab is a lightweight app, with just a 7.77 MB docker image, making it easy to deploy and run. It is also versatile, running on all amd64 and arm64 platforms using docker."}],features:[{title:"Accept-all SMTP Server",description:"MailCrab operates as an accept-all SMTP server, allowing you to test a wide range of email functionalities."},{title:"Web Interface",description:"The app provides a web interface where you can view and inspect all incoming emails, offering a user-friendly way to manage your email tests."},{title:"Email Inspection Tools",description:"MailCrab offers tools to view formatted mail, download attachments, view headers, or see the complete raw mail contents, giving you a detailed insight into your email tests."},{title:"Cross-Platform Compatibility",description:"MailCrab is compatible with all amd64 and arm64 platforms using docker, making it a versatile tool for various development environments."}],tags:["Email"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1080}],ports:[{published:1025,target:1025}]}}),{services:t}}},{slug:"maildev",meta:{name:"Maildev",description:"Maildev is a simple, self-hosted SMTP server designed for testing and debugging emails in development environments. It captures all outgoing emails and provides a web-based UI to view, inspect, and test them. Maildev supports real-time email updates, allowing developers to see emails as they are sent. It also includes an API for programmatic access to emails and supports multiple inboxes for testing different email scenarios. Maildev is lightweight, easy to set up, and works seamlessly in local development and CI
1/CD pipelines.",instructions:null,changeLog:[{date:"2025-02-03",description:"First Release"},{date:"2025-06-05",description:"Update to 2.2.1"}],links:[{label:"Documentation",url:"https://github.com/maildev/maildev"},{label:"Github",url:"https://github.com/maildev/maildev"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"maildev"},appServiceImage:{type:"string",title:"App Service Image",default:"maildev/maildev:2.2.1"}}},benefits:[{title:"Email Testing Without Spam",description:"Maildev captures all outgoing emails, preventing them from being sent to real recipients, making it ideal for development and testing environments."},{title:"Web-Based Email Viewer",description:"The Maildev web UI provides a simple interface for viewing and debugging emails, including support for HTML, plain text, and attachments."},{title:"API for Automated Testing",description:"Maildev includes an API that allows developers to programmatically retrieve and manage emails, enabling automated email testing in CI/CD pipelines."}],features:[{title:"Real-Time Email Monitoring",description:"Maildev updates emails in real-time, allowing developers to see messages instantly as they are sent from their applications."},{title:"Multiple Inbox Support",description:"Maildev supports multiple email inboxes, making it useful for testing scenarios that require sending and receiving emails across different addresses."},{title:"SMTP Server for Local Development",description:"Maildev provides an SMTP server that can be configured in local applications to capture outgoing emails without external email services."},{title:"HTML and Plain Text Email Rendering",description:"Emails sent to Maildev can be viewed in both HTML and plain text formats, ensuring correct rendering across different email clients."},{title:"Docker and Kubernetes Ready",description:"Maildev can be easily deployed using Docker or Kubernetes, making it a convenient choice for modern development workflows."}],tags:["Email","Development","Testing","Debugging"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TZ=Asia/Shanghai","MAILDEV_WEB_PORT=1080","MAILDEV_SMTP_PORT=1025"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:1080},{host:"smtp-$(EASYPANEL_DOMAIN)",port:1025}]}}),{services:t}}},{slug:"mailhog",meta:{name:"Mailhog",description:"MailHog is an intuitive email testing tool designed for developers. It allows you to configure your application to use MailHog for SMTP delivery, enabling you to view your outgoing emails in a user-friendly web UI. The app also offers the option to release messages to real SMTP servers for delivery. With MailHog, you can view messages in the web UI or retrieve them using the JSON API. It supports SMTP AUTH and PIPELINING, and provides real-time updates using EventSource. MailHog also includes a Chaos Monkey for failure testing and HTTP basic authentication for its UI and API. It's lightweight, portable, and requires no installation.",instructions:null,changeLog:[{date:"2022-10-31",description:"first release"}],links:[{label:"Github",url:"https://github.com/mailhog/MailHog/"}],contributors:[{name:"Rub\xe9n Robles",url:"https://github.com/D8vjork"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mailhog"},appServiceImage:{type:"string",title:"App Service Image",default:"mailhog/mailhog:v1.0.1"}}},benefits:[{title:"Efficient Email Testing",description:"MailHog is a powerful tool for developers, allowing you to easily test your outgoing SMTP server. It provides a simple way to view your outgoing emails in a web-based user interface, ensuring that your email system is working as expected."},{title:"Flexible Email Release",description:"With MailHog, you have the option to release your emails to real SMTP servers for delivery. This gives you the flexibility to test your emails in a controlled environment before sending them out to actual recipients."},{title:"Multi-Platform Compatibility",description:"Built with Go, MailHog runs without installation on multiple platforms. This makes it a versatile tool that can be used in a variety of development environments."}],features:[{title:"Web UI for Email Viewing",description:"MailHog provides a web interface where you can view your messages in plain text, HTML, or source form. This makes it easy to inspect your outgoing emails and ensure they are formatted correctly."},{title:"JSON API for Message Retrieval",description:"MailHog includes a JSON API that allows you to list, retrieve, and delete messages. This provides a convenient way to manage your test emails and keep your testing environment clean."},{title:"Real-time Updates",description:"MailHog supports real-time updates using EventSource. This means you can see changes to your outgoing emails as they happen, helping you to identify and fix issues more quickly."},{title:"Support for SMTP AUTH and PIPELINING",description:"MailHog implements RFC5321, including support for SMTP AUTH (RFC4954) and PIPELINING (RFC2920). This ensures that your test emails are sent in accordance with established email protocols."},{title:"In-memory Message Storage",description:"MailHog stores messages in-memory, providing a lightweight and efficient way to manage your test emails. It also supports MongoDB and file-based storage for message persistence."}],tags:["Email"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8025}],ports:[{published:1025,target:1025}]}}),{services:t}}},{slug:"mailpit",meta:{name:"Mailpit",description:"Mailpit is a modern email testing tool designed for developers. It allows you to configure your application to use Mailpit for SMTP delivery, enabling you to view your outgoing emails in a user-friendly web UI. The app also offers the option to forward messages to real SMTP servers for delivery. With Mailpit, you can view messages in the web UI or retrieve them using the JSON API. It supports SMTP AUTH and PIPELINING and provides real-time updates using WebSocket. Mailpit also includes message search functionality, custom SMTP configurations, and HTTP basic authentication for its UI and API. It's lightweight, portable, and easy to deploy.",instructions:null,changeLog:[{date:"2025-01-13",description:"First Release"},{date:"2025-02-28",description:"Version bumped to v1.22"},{date:"2025-07-22",description:"Version bumped to v1.27"},{date:"2025-12-29",description:"Version bumped to v1.28"},{date:"2026-02-21",description:"Version bumped to v1.29"},{date:"2026-05-04",description:"Version bumped to v1.29.7"}],links:[{label:"Github",url:"https://github.com/axllent/mailpit"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mailpit"},appServiceImage:{type:"string",title:"App Service Image",default:"axllent/mailpit:v1.29.7"}}},benefits:[{title:"Efficient Email Testing",description:"Mailpit is a powerful tool for developers, allowing you to easily test your outgoing SMTP server. It provides a simple way to view your outgoing emails in a web-based user interface, ensuring that your email system is working as expected."},{title:"Flexible Email Forwarding",description:"With Mailpit, you have the option to forward your emails to real SMTP servers for delivery. This gives you the flexibility to test your emails in a controlled environment before sending them out to actual recipients."},{title:"Multi-Platform Compatibility",description:"Built with Go, Mailpit runs without installation on multiple platforms. This makes it a versatile tool that can be used in a variety of development environments."}],features:[{title:"Web UI for Email Viewing",description:"Mailpit provides a web interface where you can view your messages in plain text, HTML, or source form. This makes it easy to inspect your outgoing emails and ensure they are formatted correctly."},{title:"JSON API for Message Retrieval",description:"Mailpit includes a JSON API that allows you to list, retrieve, and delete messages. This provides a convenient way to manage your test emails and keep your testing environment clean."},{title:"Real-time Updates",description:"Mailpit supports real-time updates using WebSocket. This means you can see changes to your outgoing emails as they happen, helping you to identify and fix issues more quickly."},{title:"Support for SMTP AUTH and PIPELINING",description:"Mailpit implements RFC5321, including support for SMTP AUTH (RFC4954) and PIPELINING (RFC2920). This ensures that your test emails are sent in accordance with established email protocols."},{title:"In-memory Message Storage",description:"Mailpit stores messages in-memory, providing a lightweight and efficient way to manage your test emails. It also supports file-based storage for message persistence."},{title:"Advanced Search Functionality",description:"Mailpit includes powerful search capabilities, allowing you to quickly find specific emails or content within messages."}],tags:["Email","Email Testing","SMTP Testing Server"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8025}],ports:[{published:1025,target:1025}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"managerio",meta:{name:"Manager.io",description:"Manager.io is a versatile accounting software designed for small businesses. It allows you to manage your finances, track expenses, issue invoices, and generate comprehensive financial reports. The software supports multi-currency transactions, inventory tracking, payroll management, and tax calculations. With Manager.io, you can handle all your business accounting needs through an intuitive and user-friendly interface. It's available for desktop, server, and cloud deployment, offering flexibility and scalability for businesses of all sizes.",instructions:null,changeLog:[{date:"2025-01-10",description:"first release"}],links:[{label:"Official Website",url:"https://www.manager.io/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"managerio"},appServiceImage:{type:"string",title:"App Service Image",default:"cronet/manager.io:latest"}}},benefits:[{title:"Comprehensive Financial Management",description:"Manager.io provides a robust platform for managing all aspects of your business finances, from tracking expenses to generating detailed financial reports."},{title:"Multi-Platform Availability",description:"Manager.io is available for desktop, server, and cloud deployments, offering flexibility to work in various environments."},{title:"Intuitive User Interface",description:"The software is designed with a user-friendly interface that simplifies accounting tasks for business owners and accountants alike."}],features:[{title:"Multi-Currency Support",description:"Manager.io supports multi-currency transactions, making it ideal for businesses dealing with international clients or suppliers."},{title:"Inventory Management",description:"The software includes inventory tracking features, enabling you to manage stock levels, costs, and reordering."},{title:"Payroll Management",description:"With built-in payroll functionality, Manager.io helps you calculate wages, taxes, and generate pay slips."},{title:"Tax Reporting",description:"Manager.io simplifies tax calculations and reporting, ensuring compliance with local tax regulations."},{title:"Data Backup and Restore",description:"Manager.io allows you to back up your data securely and restore it easily in case of data loss."}],tags:["Accounting","Business Management","Finance"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"manticore-search",meta:{name:"Manticore Search",description:"Manticore Search is an easy to use open source fast database for search. It helps thousands of companies from small to large, such as Craigslist, to search and filter petabytes of text data on a single or hundreds of nodes, do stream full-text filtering, add auto-complete, spell correction, more-like-this, faceting and other search-related technologies to their websites and applications.",instructions:"The configuration file within the instance can be found at /etc/manticoresearch/manticore.conf. To apply custom settings, ensure that this file is mounted to your own configuration file. The ports are 9306/9308/9312 for SQL/HTTP/Binary, expose them depending on how you are going to use Manticore.",changeLog:[{date:"2025-04-03",description:"Initial template release"},{date:"2025-07-22",description:"Version bumped to 13.2.3"},{date:"2025-12-29",description:"Version bumped to 15.1.0"},{date:"2026-02-23",description:"Version bumped to 17.5.100"}],links:[{label:"Website",url:"https://manticoresearch.com/"},{label:"Documentation",url:"https://manual.manticoresearch.com/"},{label:"GitHub",url:"https://github.com/manticoresoftware/manticoresearch"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"manticore-search"},appServiceImage:{type:"string",title:"Manticore Image",default:"manticoresearch/manticore:17.5.100"}}},benefits:[{title:"High Performance",description:"Fast search and filtering of petabytes of text data."},{title:"Scalable",description:"Works on single node or scales to hundreds of nodes."},{title:"Production Ready",description:"Used by companies like Craigslist for large-scale search."},{title:"Feature Rich",description:"Built-in support for advanced search features."}],features:[{title:"Full-text Search",description:"Advanced full-text search and filtering capabilities."},{title:"Auto-complete",description:"Built-in support for search suggestions."},{title:"Spell Correction",description:"Automatic spelling correction for search queries."},{title:"Faceting",description:"Support for faceted search and filtering."},{title:"More-like-this",description:"Find similar content based on search results."}],tags:["Search","Database","Full-text Search","Analytics","Open Source","High Performance","Scalable"],logo:null,screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9308}],mounts:[{type:"volume",name:"manticore_data",mountPath:"/var/lib/manticore"}]}}),{services:t}}},{slug:"many-notes",meta:{name:"Many Notes",description:"Many Notes is a Markdown note-taking web application designed for simplicity. Create or import vaults and organize your thoughts right away. It uses a database to power features like search, links, backlinks and tags, but your files are also saved to the filesystem as plain Markdown, giving you full control over your vault structure. Supports multiple users, multiple vaults per user, vault collaboration, an advanced Markdown editor with automatic saving, PDF export, and OAuth login.",instructions:"Register the first account after deployment to become its admin, since registration is open by default. APP_URL is set to your assigned domain automatically \u2014 if the app ever shows a blank white screen after changing the domain, it almost always means APP_URL no longer matches the address you're visiting, so redeploy after any domain change to keep it in sync.",changeLog:[{date:"2026-07-30",description:"first release"}],links:[{label:"Website",url:"https://many-notes.com"},{label:"GitHub",url:"https://github.com/brufdev/many-notes"},{label:"Documentation",url:"https://github.com/brufdev/many-notes/blob/main/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"many-notes"},appServiceImage:{type:"string",title:"App Service Image",default:"brufdev/many-notes:0.16"}}},benefits:[{title:"Files You Own",description:"Notes are saved as plain Markdown files, not locked in a database"},{title:"Multiple Vaults",description:"Organize notes into as many separate vaults as you need"},{title:"Self-Hosted",description:"Keep every note on your own server, with no cloud dependency"}],features:[{title:"Advanced Markdown Editor",description:"Fast writing with automatic saving, no save button required"},{title:"Links, Backlinks and Tags",description:"Connect related notes and navigate between them instantly"},{title:"Fast Search",description:"Typo-tolerant full-text search across every vault"},{title:"Vault Collaboration",description:"Invite other users to access and edit shared vaults"}],tags:["Notes","Productivity","Markdown","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["APP_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),mounts:[{type:"volume",name:"database",mountPath:"/var/www/html/database/sqlite"},{type:"volume",name:"logs",mountPath:"/var/www/html/storage/logs"},{type:"volume",name:"private",mountPath:"/var/www/html/storage/app/private"},{type:"volume",name:"typesense",mountPath:"/var/www/html/typesense"}]}}),{services:t}}},{slug:"mastodon",meta:{name:"Mastodon",description:"Mastodon is a unique social networking app that puts control back in your hands. It allows you to curate your own home feed, free from algorithms or ads, ensuring you see only what matters most to you. The app supports a wide range of content types, including audio, video, and picture posts, polls, content warnings, and more, enabling you to express yourself freely online. Mastodon is decentralized and open-source, meaning each server is a completely independent entity, yet able to interoperate with others to form a global social network. The app respects your agency, never serving ads or pushing profiles, and is built on open web protocols, allowing it to interact with any other platform that implements ActivityPub. With Mastodon, you have the power to manage your audience, moderate content, and create a social media experience that truly reflects you.",instructions:'To create an admin account, type "tootctl accounts create username --email [email protected] --confirmed --role Owner" on the console.',changeLog:[{date:"2023-03-26",description:"First Release"},{date:"2025-07-22",description:"Version bumped to v4.4.1"},{date:"2025-12-29",description:"Version bumped to v4.5.3"},{date:"2026-02-21",description:"Version bumped to v4.5.6"},{date:"2026-05-04",description:"Version bumped to v4.5.9"}],links:[{label:"Website",url:"https://joinmastodon.org"},{label:"Docs",url:"https://docs.joinmastodon.org"},{label:"Github",url:"https://github.com/mastodon/mastodon"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{enableStreaming:{type:"boolean",title:"Enable Streaming Service",default:!1},smtpServer:{type:"string",title:"SMTP Server"},smtpPort:{type:"number",title:"SMTP Port",default:587},smtpLogin:{type:"string",title:"SMTP Login"},smtpPassword:{type:"string",title:"SMTP Password"},smtpFromAddress:{type:"string",title:"SMTP From Address",default:"[email protected]"}
1,appServiceName:{type:"string",title:"App Service Name",default:"mastodon"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/mastodon/mastodon:v4.5.9"}}},benefits:[{title:"Control Your Own Social Media Experience",description:"Mastodon gives you the power to curate your own home feed, without interference from algorithms or ads. Your timeline is filled with what matters to you most, not what a corporation thinks you should see."},{title:"Decentralized and Independent",description:"Each Mastodon server is a completely independent entity, yet able to interoperate with others to form one global social network. This decentralization ensures that instant global communication doesn't belong to one company."},{title:"Respect for Your Agency",description:"Mastodon respects your agency. Your feed is curated and created by you. We will never serve ads or push profiles for you to see. That means your data and your time are yours and yours alone."}],features:[{title:"Follow Across Servers",description:"Follow anyone across any Mastodon server from a single account and receive their posts in chronological order. Make your corner of the internet a little more like you."},{title:"Moderation Your Way",description:"Each server creates their own rules and regulations, which are enforced locally and not top-down like corporate social media. Join a server with the rules you agree with, or host your own."},{title:"Unparalleled Creativity",description:"Mastodon supports audio, video and picture posts, accessibility descriptions, polls, content warnings, animated avatars, custom emojis, thumbnail crop control, and more, to help you express yourself online."},{title:"Interoperable",description:"Built on open web protocols, Mastodon can speak with any other platform that implements ActivityPub. With one account you get access to a whole universe of social apps\u2014the fediverse."}],tags:["Social Networking"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],i=v(),o=v(),n=a(2474).createECDH("prime256v1");n.generateKeys();var r=["LOCAL_DOMAIN=$(PRIMARY_DOMAIN)","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PASSWORD=".concat(o),"REDIS_PORT=6379","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_USER=postgres","DB_NAME=$(PROJECT_NAME)","DB_PASS=".concat(i),"DB_PORT=5432","ES_ENABLED=false","ES_HOST=localhost","ES_PORT=9200","ES_USER=elastic","ES_PASS=password","SECRET_KEY_BASE=".concat(y(64)),"OTP_SECRET=".concat(y(64)),"VAPID_PRIVATE_KEY=".concat(n.getPrivateKey("base64")),"VAPID_PUBLIC_KEY=".concat(n.getPublicKey("base64")),"SMTP_SERVER=".concat(e.smtpServer||""),"SMTP_PORT=".concat(e.smtpPort||587),"SMTP_LOGIN=".concat(e.smtpLogin||""),"SMTP_PASSWORD=".concat(e.smtpPassword||""),"SMTP_FROM_ADDRESS=".concat(e.smtpFromAddress||"[email protected]"),"S3_ENABLED=false","S3_BUCKET=files.example.com","AWS_ACCESS_KEY_ID=","AWS_SECRET_ACCESS_KEY=","S3_ALIAS_HOST=files.example.com","IP_RETENTION_PERIOD=31556952","SESSION_RETENTION_PERIOD=31556952"];return e.enableStreaming&&(r.push("STREAMING_API_BASE_URL=https://$(PRIMARY_DOMAIN)"),t.push({type:"app",data:{serviceName:e.appServiceName+"-streaming",source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}],env:r.join("\n"),deploy:{command:"node ./streaming"}}})),t.push({type:"app",data:{serviceName:e.appServiceName+"-web",source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:r.join("\n"),deploy:{command:'bash -c "bundle exec rails db:migrate; bundle exec rails db:seed; rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"'},mounts:[{type:"volume",name:"public",mountPath:"/mastodon/public"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName+"-sidekiq",source:{type:"image",image:e.appServiceImage},env:r.join("\n"),deploy:{command:"bundle exec sidekiq"},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/public"),mountPath:"/mastodon/public"}]}}),t.push({type:"postgres",data:{serviceName:e.appServiceName+"-db",password:i}}),t.push({type:"redis",data:{serviceName:e.appServiceName+"-redis",password:o}}),{services:t}}}
1,{slug:"mathesar",meta:{name:"Mathesar",description:"Mathesar is an open-source database GUI that makes PostgreSQL accessible to non-technical users. It provides an intuitive interface for working with databases without requiring SQL knowledge. Users can visually create and edit tables, modify schemas, browse and manipulate data, and collaborate with team members. Built on PostgreSQL, it leverages the power and reliability of this proven database while adding user-friendly features like spreadsheet-like data editing, relationship visualization, and automated schema management. Mathesar is perfect for teams that need to work with data collaboratively but don't have extensive database expertise. As a self-hosted solution, it gives organizations complete control over their data and infrastructure. Whether you're managing content, organizing research data, or building internal tools, Mathesar makes database operations approachable while maintaining the full capabilities of PostgreSQL.",instructions:null,changeLog:[{date:"2025-10-20",description:"Initial Release (v0.6.0)"},{date:"2026-05-08",description:"Version bumped to v0.10.0"}],links:[{label:"Website",url:"https://www.mathesar.org"},{label:"Documentation",url:"https://docs.mathesar.org"},{label:"Github",url:"https://github.com/mathesar-foundation/mathesar"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceImage"],properties:{appServiceName:{type:"string",title:"Service Name",default:"mathesar"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"mathesar/mathesar:0.10.1"},databaseServiceImage:{type:"string",title:"Database Image Service",default:"pgautoupgrade/pgautoupgrade:18.2-trixie"}}},benefits:[{title:"Empower non-technical teams",description:"Collaborate on real PostgreSQL databases with an intuitive UI for tables, data entry, and schema changes without writing SQL."},{title:"Own your data",description:"Self-hosted deployment ensures full control and compliance; no vendor lock-in."},{title:"Built on PostgreSQL",description:"Leverages proven Postgres features (constraints, types, relationships) while keeping your database accessible from any other tool."}],features:[{title:"Table and schema editing",description:"Create and edit tables, columns, data types, constraints, and relationships visually."},{title:"Data browsing and filtering",description:"Browse, search, sort, and filter data with a familiar spreadsheet-like experience."},{title:"File uploads and attachments",description:"Upload CSV/TSV and manage attachments; optionally configure S3-compatible storage."},{title:"Access control and SSO",description:"Configure users and roles; supports OIDC-based SSO for centralized auth."},{title:"Production-ready proxy",description:"Ships with a Caddy-based reverse proxy for static files and HTTPS."}],tags:["Database GUI","PostgreSQL","No-code/Low-code","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(50);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DJANGO_SETTINGS_MODULE=config.settings.production","ALLOWED_HOSTS=*","DEBUG=false","SECRET_KEY=".concat(i),"WEB_CONCURRENCY=3","POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"POSTGRES_PORT=5432","FILE_STORAGE_DICT={}","OIDC_CONFIG_DICT={}"].join("\n"),mounts:[{type:"volume",name:"static",mountPath:"/code/static"},{type:"volume",name:"media",mountPath:"/code/media"},{type:"volume",name:"secrets",mountPath:"/code/.secrets"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),image:e.databaseServiceImage,password:a}}),{services:t}}},{slug:"matomo",meta:{name:"Matomo",description:"Matomo is a powerful web analytics platform that allows you to take full control of your data. As a leading global web analytics solution, it is trusted on over 1 million websites across more than 190 countries. Matomo provides an ethical alternative to other analytics platforms, ensuring the protection of your data and your customers' privacy. With Matomo, you have 100% data ownership, meaning you know exactly where your data is stored and what's happening to it. The platform offers a comprehensive range of features that provide actionable insights and a complete picture of your customers. It allows you to securely track personal data in accordance with privacy laws, and offers 100% accurate reporting for impactful decision-making. Matomo can be customised and extended to meet your every need, and it comes with no data limitations, allowing for an unlimited number of websites, users, and segments.",instructions:null,changeLog:[{date:"2022-09-28",description:"first release"},{date:"2025-02-28",description:"Version bumped to 5.2.2"},{date:"2025-06-05",description:"Update to 5.3.2"},{date:"2025-12-29",description:"Version bumped to 5.6.2"},{date:"2026-02-21",description:"Version bumped to 5.7.1"}],links:[{label:"Website",url:"https://matomo.org/"},{label:"Documentation",url:"https://matomo.org/guide/installation-maintenance/matomo-on-premise-self-hosted/"},{label:"Github",url:"https://github.com/matomo-org/matomo"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"matomo"},appServiceImage:{type:"string",title:"App Service Image",default:"matomo:5.7.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"matomo-db"}}},benefits:[{title:"Data Privacy",description:"Matomo is a Google Analytics alternative that prioritizes your data and your customers' privacy. It allows you to take back control with 100% data ownership, ensuring that you know where your data is stored and what's happening to it, without external influence."},{title:"Boost Website Performance",description:"Matomo helps to enhance your website performance by providing real-time data, features, and reports. It allows you to make impactful decisions based on accurate reporting."},{title:"Data Ownership and Privacy Protection",description:"With Matomo, you are in full control of your data. It ensures your business stays GDPR and CCPA compliant, protecting your user\u2019s privacy."}],features:[{title:"Google Analytics Importer",description:"Matomo allows you to import your historical Google Analytics data directly into your Matomo platform, ensuring no loss of valuable information."},{title:"Tracking Personal Data",description:"Matomo enables you to securely track personal data in accordance with privacy laws, a feature unavailable with Google Analytics."},{title:"100% Accurate Data",description:"Matomo provides 100% accurate data, allowing you to make decisions based on complete and reliable reporting."},{title:"Open Source",description:"Matomo is an open-source platform, ensuring transparency and security. It has been thoroughly tested by hundreds of contributors."},{title:"No Data Limitations",description:"With Matomo, you can track an unlimited number of websites, users, and segments. There\u2019s also no limitation on how much data you store."},{title:"Easy to Use",description:"Matomo features a user-friendly interface that allows you to easily navigate and get the data you need, faster."},{title:"Enhanced Insights",description:"Matomo offers a comprehensive range of features that provide actionable insights and a complete picture of your customers."},{title:"Customizable",description:"Matomo can be customized and extended to meet your every need, allowing you to create the tool of your dreams."}],tags:["Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MATOMO_DATABASE_ADAPTER=mysql","MATOMO_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"MATOMO_DATABASE_TABLES_PREFIX=matomo_","MATOMO_DATABASE_USERNAME=mariadb","MATOMO_DATABASE_PASSWORD=".concat(a),"MATOMO_DATABASE_DBNAME=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"html",mountPath:"/var/www/html"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"matrix-synapse",meta:{name:"Matrix Synapse",description:"Matrix is an open network designed for secure, decentralised communication. This app allows you to chat with friends, family, communities, and co-workers, providing a cozy, safe, and supercharged environment for your conversations. You can reclaim your space and build advanced, rich communication applications on top of Matrix. The app is part of a rich ecosystem that includes clients, servers, bots, and application services. It's an open-source project, generously hosted by UpCloud. With Matrix, you can start a conversation, build apps, and explore the vast possibilities of a decentralised communication network.",instructions:'To create a user, simply execute the command "register_new_matrix_user -c data/homeserver.yaml" via console connection.',changeLog:[{date:"2023-03-28",description:"First Release"},{date:"2024-10-18",description:"Updated version to v1.99.0"},{date:"2025-06-05",description:"Update to v1.131.0"},{date:"2025-12-29",description:"Version bumped to v1.144.0"},{date:"2026-02-21",description:"Version bumped to v1.147.1"},{date:"2026-04-08",description:"Version bumped to v1.152.1"}],links:[{label:"Website",url:"https://matrix.org"},{label:"Docs",url:"https://matrix-org.github.io/synapse"},{label:"Github",url:"https://github.com/matrix-org/synapse"},{label:"Docker",url:"https://hub.docker.com/r/matrixdotorg/synapse"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{reportStats:{type:"boolean",title:"Report Stats",default:!0}
1,appServiceName:{type:"string",title:"App Service Name",default:"synapse"},appServiceImage:{type:"string",title:"App Service Image",default:"matrixdotorg/synapse:v1.152.1"},databaseType:{type:"string",title:"Database Type",default:"postgres",oneOf:[{enum:["postgres"],title:"PostgreSQL"},{enum:["sqlite"],title:"SQLite"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"synapse-db"}}},benefits:[{title:"Secure and Decentralised Communication",description:"Matrix provides a secure, open network for decentralised communication. It allows you to chat with friends, family, communities, and co-workers, ensuring your conversations are safe and private."},{title:"Reclaim Your Space",description:"Matrix allows you to build advanced, rich communication applications. It offers a cozy, safe, and supercharged place for your community, giving you the power to reclaim your digital space."},{title:"Rich Ecosystem",description:"Matrix is a rich ecosystem of clients, servers, bots, and application services. It provides a versatile platform for building a variety of communication applications."}],features:[{title:"Open Network",description:"Matrix provides an open network for secure, decentralised communication. You can start a conversation with anyone, anywhere, without worrying about security or privacy."},{title:"Build Advanced Applications",description:"Matrix allows you to build advanced, rich communication applications. It provides a robust platform for developers to create a variety of applications, from simple chatbots to complex communication systems."},{title:"Rich Ecosystem",description:"Matrix offers a rich ecosystem of clients, servers, bots, and application services. This ecosystem provides a wide range of tools and resources for developers to build and enhance their applications."}],tags:["Chat","Communication","Social Networking"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[],a=["SYNAPSE_SERVER_NAME=$(PRIMARY_DOMAIN)","SYNAPSE_REPORT_STATS=".concat(e.reportStats?"yes":"no"),"SYNAPSE_NO_TLS=yes"];if("postgres"===e.databaseType){var i=v();t.push({type:"app",data:{serviceName:e.databaseServiceName,source:{type:"image",image:"postgres"},env:["POSTGRES_USER=synapse","POSTGRES_PASSWORD=".concat(i),"POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/var/lib/postgresql/data"}]}}),a.push("POSTGRES_PASSWORD=".concat(i),"POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName))}return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8008}],env:a.join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}],deploy:{command:"/start.py migrate_config && /start.py"}}}),{services:t}}},{slug:"mattermost",meta:{name:"Mattermost",description:"Mattermost is a secure collaboration platform designed to enhance the efficiency and productivity of technical and operational teams. It offers a range of features including team messaging, custom integrations, audio and screen sharing, and workflow automation. Mattermost is designed to improve time to response by 90%, decrease incident resolution time, and increase information availability by executing complex workflows faster and at a higher quality. It also helps in avoiding costly outages and downtime by decreasing the frequency and severity of system failures. The platform is built for enterprise scalability and can be deployed in air gapped networks and BYOD environments. It is also cloud neutral and offers self-host deployment options. Mattermost is open source and can be customized to fit your workflow with robust integrations or by building your own with its App Framework, Plugins, and open APIs.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2022-10-12",description:"ablity to define custom docker image version"},{date:"2022-11-29",description:"Update mattermost to 7.5.1"},{date:"2023-1-26",description:"Update mattermost to 7.7"},{date:"2024-10-19",description:"Update mattermost to 10.0"},{date:"2025-02-28",description:"Version bumped to release-9"},{date:"2025-12-29",description:"Version bumped to 11.1.2"},{date:"2026-02-21",description:"Version bumped to 11.3.2"},{date:"2026-05-21",description:"Version bumped to 11.7.1"}],links:[{label:"Website",url:"https://mattermost.com/"},{label:"Github",url:"https://github.com/mattermost/"}],contributors:[{name:"Bedeoan Raul",url:"https://github.com/bedeoan"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Peter Fodor",url:"https://github.com/fodurrr"},{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mattermost"},appServiceImage:{type:"string",title:"App Service Image",default:"mattermost/mattermost-team-edition:11.7.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"mattermost-db"}}},benefits:[{title:"Secure Collaboration",description:"Mattermost Version 8.0 provides a secure workspace for operational and engineering teams to collaborate effectively. It improves response time by 90% and decreases incident resolution time, ensuring full data control."},{title:"Avoid Outages and Downtime",description:"The app helps in avoiding costly outages and downtime by decreasing the frequency and severity of system failures."},{title:"Increase Information Availability",description:"Mattermost increases information availability by executing complex workflows faster at higher quality, enhancing productivity."}],features:[{title:"Team Messaging",description:"Mattermost offers team messaging feature for seamless communication within teams."},{title:"Custom Integrations",description:"The app provides custom integrations to fit your workflow, making it flexible and extensible."},{title:"Audio & Screen Sharing",description:"Mattermost supports audio and screen sharing, facilitating better collaboration."},{title:"Workflow Automation",description:"The app is designed to automate workflows, increasing efficiency and productivity."},{title:"Data Control",description:"Mattermost offers full control over your data with built-in identity and access controls, granular admin controls, and advanced compliance auditing & reporting."}],tags:["Chat","Collaboration","Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/mattermost/data"},{type:"volume",name:"logs",mountPath:"/mattermost/logs"},{type:"volume",name:"config",mountPath:"/mattermost/config"},{type:"volume",name:"plugins",mountPath:"/mattermost/plugins"},{type:"volume",name:"client-plugins",mountPath:"/mattermost/client/plugins"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8065}],deploy:{replicas:1,command:null,zeroDowntime:!0},env:["MM_SQLSETTINGS_DRIVERNAME=postgres","MM_SQLSETTINGS_DATASOURCE=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"DOMAIN=https://$(PRIMARY_DOMAIN)"].join("\n")}}),{services:t}}},{slug:"mautic",meta:{name:"Mautic",description:"Mautic is a powerful marketing automation platform designed to revolutionize the way businesses engage with their audience. Offering a comprehensive suite of features, Mautic enables marketers to automate and optimize their marketing strategies. The platform excels in open-source flexibility, allowing users to customize and extend its capabilities according to their unique needs. With a focus on lead tracking and nurturing, Mautic provides valuable insights into user behavior, enabling personalized and targeted campaigns for effective customer acquisition and retention. Its multi-channel marketing support ensures seamless engagement across various platforms, from email campaigns to social media interactions. Mautic's robust campaign management tools, email marketing module, analytics, and reporting features contribute to a data-driven approach, empowering marketers to refine their strategies and achieve optimal return on investment. Integration capabilities further enhance its functionality, ensuring a connected marketing ecosystem. Whether you're a marketing professional or a business owner, Mautic serves as a centralized solution to elevate and streamline your marketing efforts, fostering innovation and success.",instructions:null,changeLog:[{date:"2024-01-22",description:"first release"}],links:[{label:"Website",url:"https://www.mautic.org"},{label:"Github",url:"https://github.com/mautic/mautic"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mautic"},appServiceImage:{type:"string",title:"App Service Image",default:"mautic/mautic:v4-apache"},databaseServiceName:{type:"string",title:"Database Service Name",default:"mautic-db"}}},benefits:[{title:"Marketing Automation",description:"Mautic is a robust marketing automation platform that empowers businesses to streamline and optimize their marketing processes. It facilitates the automation of repetitive tasks, allowing marketers to focus on strategy and creative aspects, ultimately enhancing overall marketing efficiency."},{title:"Open Source Flexibility",description:"With Mautic being an open-source platform, users have the flexibility to customize and extend its functionality according to their specific needs. This open architecture fosters innovation and ensures that businesses can tailor their marketing automation workflows to match their unique requirements."},{title:"Lead Tracking and Nurturing",description:"Mautic excels in lead tracking and nurturing, providing comprehensive insights into user behavior. Marketers can create personalized and targeted campaigns, nurturing leads through the sales funnel with dynamic content and automated engagement, resulting in more effective customer acquisition and retention."},{title:"Multi-Channel Marketing",description:"Mautic supports multi-channel marketing, allowing businesses to engage with their audience across various platforms seamlessly. Whether it's email campaigns, social media interactions, or web personalization, Mautic provides a unified platform to orchestrate cohesive and synchronized marketing efforts."}],features:[{title:"Campaign Management",description:"Mautic offers robust campaign management tools, enabling marketers to design, execute, and track marketing campaigns with ease. This includes drip campaigns, lead scoring, and A/B testing for optimized performance."},{title:"Email Marketing",description:"The platform includes a powerful email marketing module, allowing users to create and send personalized emails, track engagement, and analyze campaign performance. Mautic's email marketing tools contribute to building meaningful connections with the audience."},{title:"Analytics and Reporting",description:"Mautic provides in-depth analytics and reporting features, offering valuable insights into campaign effectiveness and user behavior. Marketers can make data-driven decisions to refine their strategies and enhance overall marketing ROI."},{title:"Integration Capabilities",description:"Mautic seamlessly integrates with a variety of third-party tools and platforms, providing users with a holistic view of their marketing ecosystem. This includes CRM integration, social media platforms, and other essential marketing tools for a connected and cohesive marketing stack."}],tags:["Marketing Automation","Open Source","Lead Nurturing","Multi-Channel Marketing"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MAUTIC_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"MAUTIC_DB_USER=mysql","MAUTIC_DB_PASSWORD=".concat(a),"MAUTIC_DB_NAME=$(PROJECT_NAME)","MAUTIC_RUN_CRON_JOBS=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"mautic_data",mountPath:"/var/www/html"}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"mautic5",meta:{name:"Mautic 5",description:"Mautic 5 is an open-source, comprehensive marketing automation platform that empowers businesses to manage and optimize customer engagement strategies. It enables marketers to streamline their workflows by automating marketing tasks such as email campaigns, SMS messaging, social media outreach, and lead generation. Mautic 5 offers detailed analytics, campaign tracking, and personalized communication, ensuring an efficient marketing strategy for businesses of all sizes. With its intuitive interface and powerful features, Mautic 5 helps businesses maximize customer engagement while reducing manual effort.",instructions:null,changeLog:[{date:"2024-10-12",description:"Version 5.1.1 (First Release)"},{date:"2025-06-05",description:"Update to 5.2.6"},{date:"2025-07-22",description:"Update to 6.0.3-20250721-apache"},{date:"2025-12-29",description:"Version bumped to 6.0.7-20251229-apache"},{date:"2026-05-18",description:"Update to 7.1.1-apache"}
1],links:[{label:"Github",url:"https://github.com/mautic/mautic"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","databaseServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"mautic5"},appServiceImage:{type:"string",title:"App Service Image",default:"mautic/mautic:7.1.1-apache"},databaseServiceName:{type:"string",title:"Database Service Name",default:"mautic5-db"}}},benefits:[{title:"Seamless Marketing Automation",description:"Mautic 5 enables businesses to automate marketing tasks, improving efficiency and reducing the time needed for manual campaign management."},{title:"Multi-Channel Campaigns",description:"Mautic 5 supports email, SMS, and social media campaigns, giving marketers the ability to engage with customers across multiple platforms."},{title:"Open-Source Flexibility",description:"Being open-source, Mautic 5 allows businesses to customize the platform according to their specific marketing needs, offering full control and transparency."}],features:[{title:"Advanced Campaign Management",description:"Mautic 5 allows users to create, monitor, and analyze complex marketing campaigns with ease, optimizing customer engagement."},{title:"Personalization and Segmentation",description:"With Mautic 5, marketers can personalize communications and segment their audience for more targeted outreach, improving campaign effectiveness."},{title:"Detailed Analytics",description:"Mautic 5 provides in-depth insights into marketing performance, helping businesses make data-driven decisions to enhance customer engagement."}],tags:["Marketing","Automation","Open-Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:["DOCKER_MAUTIC_LOAD_TEST_DATA=false","DOCKER_MAUTIC_RUN_MIGRATIONS=true","MAUTIC_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"MAUTIC_DB_PORT=3306","MAUTIC_DB_DATABASE=$(PROJECT_NAME)","MAUTIC_DB_USER=mysql","MAUTIC_DB_PASSWORD=".concat(a),"MAUTIC_PORT=8001","MAUTIC_MESSENGER_DSN_EMAIL=doctrine://default","MAUTIC_MESSENGER_DSN_HIT=doctrine://default"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"cron",mountPath:"/opt/mautic/cron"},{type:"volume",name:"images",mountPath:"/var/www/html/docroot/media/images"},{type:"volume",name:"files",mountPath:"/var/www/html/docroot/media/files"},{type:"volume",name:"logs",mountPath:"/var/www/html/var/logs"},{type:"volume",name:"config",mountPath:"/var/www/html/config"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-cron"),env:["DOCKER_MAUTIC_ROLE=mautic_cron","MAUTIC_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"MAUTIC_DB_PORT=3306","MAUTIC_DB_DATABASE=$(PROJECT_NAME)","MAUTIC_DB_USER=mysql","MAUTIC_DB_PASSWORD=".concat(a),"MAUTIC_PORT=8001","MAUTIC_MESSENGER_DSN_EMAIL=doctrine://default","MAUTIC_MESSENGER_DSN_HIT=doctrine://default"].join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/cron"),mountPath:"/opt/mautic/cron"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/config"),mountPath:"/var/www/html/config"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/logs"),mountPath:"/var/www/html/var/logs"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/files"),mountPath:"/var/www/html/docroot/media/files"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/images"),mountPath:"/var/www/html/docroot/media/images"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:["DOCKER_MAUTIC_ROLE=mautic_worker","DOCKER_MAUTIC_WORKERS_CONSUME_EMAIL=2","DOCKER_MAUTIC_WORKERS_CONSUME_HIT=2","DOCKER_MAUTIC_WORKERS_CONSUME_FAILED=2","MAUTIC_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"MAUTIC_DB_PORT=3306","MAUTIC_DB_DATABASE=$(PROJECT_NAME)","MAUTIC_DB_USER=mysql","MAUTIC_DB_PASSWORD=".concat(a),"MAUTIC_PORT=8001","MAUTIC_MESSENGER_DSN_EMAIL=doctrine://default","MAUTIC_MESSENGER_DSN_HIT=doctrine://default"].join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/cron"),mountPath:"/opt/mautic/cron"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/config"),mountPath:"/var/www/html/config"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/logs"),mountPath:"/var/www/html/var/logs"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/files"),mountPath:"/var/www/html/docroot/media/files"},{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-web/volumes/images"),mountPath:"/var/www/html/docroot/media/images"}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,image:"mysql:8",password:a}}),{services:t}}},{slug:"maxun",meta:{name:"Maxun",description:"Maxun is a self-hosted data automation platform that combines a modern frontend with a backend capable of browser automation (Playwright), file storage via MinIO, and PostgreSQL persistence. It lets you run data collection and integration workflows with headless Chromium, store assets in S3-compatible storage, and manage everything from a web interface. Ideal for teams who need a self-hosted automation stack with database, object storage, and browser automation included.",instructions:null,changeLog:[{date:"2025-12-15",description:"Template Release"},{date:"2026-05-08",description:"Version bumped to v0.0.49"}],links:[{label:"GitHub",url:"https://github.com/getmaxun"},{label:"Website",url:"https://www.maxun.dev/?ref=ghread"},{label:"Documentation",url:"https://docs.maxun.dev/?ref=ghread"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","backendImage","frontendImage","minioImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"maxun"},backendImage:{type:"string",title:"Backend Image",default:"getmaxun/maxun-backend:v0.0.49"},frontendImage:{type:"string",title:"Frontend Image",default:"getmaxun/maxun-frontend:v0.0.49"},minioImage:{type:"string",title:"Minio Image",default:"minio/minio:RELEASE.2025-07-23T15-54-02Z"}}},benefits:[{title:"Full Stack Included",description:"Ships with backend, frontend, PostgreSQL, and MinIO for a complete automation stack."},{title:"Headless Browser Ready",description:"Playwright enabled for browser automation with sensible defaults for Docker."},{title:"Object Storage Built-In",description:"MinIO provides S3-compatible storage for assets and automation outputs."},{title:"Self-Hosted Control",description:"Keep data, storage, and automation private on your own infrastructure."}],features:[{title:"PostgreSQL Persistence",description:"Production-grade database for Maxun data and automation results."},{title:"MinIO S3 Storage",description:"Store files, exports, and automation artifacts in S3-compatible storage."},{title:"Playwright Support",description:"Headless Chromium with required flags for running inside containers."},{title:"Web UI",description:"Frontend served separately with configurable public URL and backend URL."}],tags:["Automation","Playwright","PostgreSQL","MinIO","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v(),n=v()+v(),r=v()+v(),s=v()+v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),source:{type:"image",image:e.minioImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3},{host:"$(EASYPANEL_DOMAIN)",port:9001,path:"/console"}],env:["MINIO_ROOT_USER=".concat(i),"MINIO_ROOT_PASSWORD=".concat(o)].join("\n"),mounts:[{type:"volume",name:"minio",mountPath:"/data"}],deploy:{command:"minio server /data --console-address :9001"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-backend"),source:{type:"image",image:e.backendImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["NODE_ENV=production","JWT_SECRET=".concat(n),"DB_NAME=$(PROJECT_NAME)","DB_USER=postgres","DB_PASSWORD=".concat(a),"DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=5432","ENCRYPTION_KEY=".concat(r),"SESSION_SECRET=".concat(s),"MINIO_ENDPOINT=$(PROJECT_NAME)_".concat(e.appServiceName,"-minio"),"MINIO_PORT=9000","MINIO_CONSOLE_PORT=9001","MINIO_ACCESS_KEY=".concat(i),"MINIO_SECRET_KEY=".concat(o),"BACKEND_PORT=8080","FRONTEND_PORT=3000","BACKEND_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-backend.$(EASYPANEL_HOST)"),"PUBLIC_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-frontend.$(EASYPANEL_HOST)"),"VITE_BACKEND_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-backend.$(EASYPANEL_HOST)"),"VITE_PUBLIC_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-frontend.$(EASYPANEL_HOST)"),"PLAYWRIGHT_BROWSERS_PATH=/ms-playwright","PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0","CI=true","CONTAINER=true","CHROMIUM_FLAGS=--disable-gpu --no-sandbox --headless=new","BROWSER_WS_PORT=3001","BROWSER_HEALTH_PORT=3002","BROWSER_WS_HOST=browser"].join("\n"),mounts:[{type:"volume",name:"backend-data",mountPath:"/var/lib/maxun"},{type:"volume",name:"playwright",mountPath:"/ms-playwright"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-frontend"),source:{type:"image",image:e.frontendImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5173}],mounts:[{type:"file",mountPath:"/app/vite.config.js",content:"import { defineConfig } from 'vite';\nimport react from '@vitejs/plugin-react';\nimport dotenv from 'dotenv';\ndotenv.config();\n\nexport default defineConfig(() => {\n  const publicUrl = process.env.VITE_PUBLIC_URL || 'http://localhost:5173';\n                                                       \n  const allowedHosts = process.env.VITE_ALLOWED_HOSTS             \n  ? process.env.VITE_ALLOWED_HOSTS.split(',').map(h => h.trim())\n  : []                                                                                 \n  return {                                                                             \n    define: {                                                                          \n      'import.meta.env.VITE_BACKEND_URL': JSON.stringify(process.env.VITE_BACKEND_URL),\n      'import.meta.env.VITE_PUBLIC_URL': JSON.stringify(publicUrl),                    \n    },                                                             \n    server: {                                 \n      host: new URL(publicUrl).hostname,      \n      port: parseInt(new URL(publicUrl).port),        \n      allowedHosts,                                                                                   \n    },                                                \n    build: {                                          \n      outDir: 'build', \n      manifest: true,             \n      chunkSizeWarningLimit: 1024,\n    },                            \n    plugins: [react()],           \n  };                              \n});                    "}],env:["VITE_ALLOWED_HOSTS=$(EASYPANEL_DOMAIN)","PUBLIC_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-frontend.$(EASYPANEL_HOST)"),"BACKEND_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-backend.$(EASYPANEL_HOST)"),"VITE_BACKEND_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-backend.$(EASYPANEL_HOST)")].join("\n")}}),{services:t}}},{slug:"maybe-finance",meta:{name:"Maybe Finance",description:"Maybe Finance is a modern, self-hosted finance management tool designed for tracking personal or business finances efficie
1ntly. It provides a clean and user-friendly interface, supports integrations for extended functionality, and offers detailed analytics for insights into your financial data. With Maybe Finance, you can take control of your finances, track expenses, and make informed decisions.",instructions:null,changeLog:[{date:"2024-11-25",description:"Template Release"},{date:"2025-06-05",description:"Update to 0.5.0"},{date:"2025-07-22",description:"Update to sha-347c0a790693031fdd3b32792b5b6792693d1805"},{date:"2025-12-29",description:"Version bumped to sha-77b5469832758d1cbee1a940f3012a1ae1c74cd3"}],links:[{label:"GitHub",url:"https://github.com/maybe-finance/maybe"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"maybe"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/maybe-finance/maybe:sha-77b5469832758d1cbee1a940f3012a1ae1c74cd3"}}},benefits:[{title:"Financial Control",description:"Maybe Finance helps you track expenses, budgets, and savings to keep your finances in check."},{title:"Self-Hosted Privacy",description:"Host Maybe Finance on your infrastructure to ensure full control and privacy over your financial data."},{title:"Custom Insights",description:"Generate detailed analytics to gain deeper insights into your financial trends and behavior."}],features:[{title:"Expense Tracking",description:"Keep a record of your expenses and categorize them for better budgeting."},{title:"API Integrations",description:"Connect Maybe Finance with other tools using its flexible API for seamless data flow."},{title:"Custom Reports",description:"Create detailed financial reports with insights into income, expenses, and savings."},{title:"Secure and Reliable",description:"Enjoy a secure, self-hosted platform for managing sensitive financial information."}],tags:["Finance Management","Self-Hosted","Analytics","Budgeting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SELF_HOSTED=true","RAILS_FORCE_SSL=false","RAILS_ASSUME_SSL=false","GOOD_JOB_EXECUTION_MODE=async","SECRET_KEY_BASE=".concat(o),"DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-postgres"),"POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/1")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"storage",mountPath:"/rails/storage"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-sidekiq"),env:["SELF_HOSTED=true","RAILS_FORCE_SSL=false","RAILS_ASSUME_SSL=false","GOOD_JOB_EXECUTION_MODE=async","SECRET_KEY_BASE=".concat(o),"DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-postgres"),"POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/1")].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"bundle exec sidekiq"}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"mazanoke",meta:{name:"Mazanoke",description:'Mazanoke is a self-hosted local image optimizer that runs in your browser. It works offline and keeps your images private without ever leaving your device. Created for everyday people and designed to be shared with family and friends, it serves as an alternative to questionable "free" online tools.',instructions:null,changeLog:[{date:"2025-09-12",description:"Template Release (v1.1.5)"}],links:[{label:"Documentation",url:"https://github.com/civilblur/mazanoke"},{label:"Github",url:"https://github.com/civilblur/mazanoke"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminUsername","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mazanoke"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/civilblur/mazanoke:v1.1.5"},adminUsername:{type:"string",title:"Admin Username",default:"admin"},adminPassword:{type:"string",title:"Admin Password",default:"admin"}}},benefits:[{title:"Privacy-Focused Image Processing",description:"All image processing happens locally in your browser, ensuring your images never leave your device and remain completely private."},{title:"Offline Functionality",description:"Works completely offline once loaded, making it perfect for use anywhere without requiring an internet connection."},{title:"Alternative to Online Tools",description:'Provides a trustworthy alternative to questionable "free" online image optimization tools that may compromise your privacy.'}],features:[{title:"Image Quality Optimization",description:"Adjust image quality, set target file size, and configure max width/height to optimize your images for web use or storage efficiency."},{title:"Multiple Format Support",description:"Convert between and to JPG, PNG, WebP, ICO formats, and convert from HEIC, AVIF, TIFF, GIF, SVG formats for maximum compatibility."},{title:"Clipboard Integration",description:"Paste images directly from your clipboard for instant optimization without needing to upload files from your device."},{title:"EXIF Data Removal",description:"Automatically removes EXIF data including location, date, and other metadata to protect your privacy and reduce file sizes."},{title:"Progressive Web App",description:"Installable web app that can be used offline, with shortcuts added to your device for convenient access anytime."},{title:"No Tracking",description:"Completely free of tracking, analytics, or data collection, ensuring your privacy is fully protected during image processing."}],tags:["Image Optimization","Image Compression","Image Converter","Self-Hosted","Privacy","Offline"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["USERNAME=".concat(e.adminUsername),"PASSWORD=".concat(e.adminPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"mcaptcha",meta:{name:"mCaptcha",description:"mCaptcha is a proof-of-work based captcha system that prioritizes user privacy and offers a fully automated experience. Unlike traditional captcha systems, mCaptcha does not track or profile users, ensuring a privacy-focused user experience. It is designed to be robust and accurate, not relying on IP addresses for rate-limiting, making it suitable for users behind NATs. The user experience is silent and seamless, eliminating the need for annoying image-based captchas. mCaptcha uses a proof-of-work solution to fiercely defend your site, making it more expensive for attackers to target your site than for you to respond to their requests. It is a libre software, with client libraries licensed under proprietary-friendly free software licenses. mCaptcha is also compatible with reCAPTCHA and hCaptcha, making it a convenient drop-in replacement. The core functionality of mCaptcha is to use a SHA256 based proof-of-work system to rate limit users, providing a token upon successful validation that users can then submit with their request or form submission to the target website.",instructions:"Login with aaronsw:password",changeLog:[{date:"2023-5-18",description:"first release"},{date:"2025-06-05",description:"Update to v0.1.0"}],links:[{label:"Website",url:"https://mcaptcha.org"},{label:"Documentation",url:"https://mcaptcha.org/docs"},{label:"Github",url:"https://github.com/mcaptcha/mcaptcha"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mcaptcha"},appServiceImage:{type:"string",title:"App Service Image",default:"mcaptcha/mcaptcha:v0.1.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"mcaptcha-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"mcaptcha-redis"}}},benefits:[{title:"Privacy Focused",description:"mCaptcha is a proof-of-work based captcha system that prioritizes your privacy. It doesn't track or profile your users, ensuring a secure and private user experience."},{title:"Robust and Accurate",description:"Whether your users are behind NATs or not, mCaptcha provides a seamless experience. It doesn't use IP addresses for rate-limiting, making it a reliable and accurate system."},{title:"Best-in-class User Experience",description:"mCaptcha is designed to be unobtrusive. Your users won't even notice it's there. No more annoying images or unnecessary tasks."},{title:"Defend Like Castles",description:"mCaptcha's proof-of-work based solution defends your site fiercely, making attacking your site more expensive than what it will take for you to respond to the attacker's requests."},{title:"Libre Software",description:"mCaptcha is a free software. It's client libraries are licensed using proprietary-friendly free software licenses but the core is AGPL'd."}],features:[{title:"Proof-of-Work Based",description:"mCaptcha uses SHA256 based proof-of-work (PoW) to rate limit users. This makes interacting with websites (computationally) expensive for the user, deterring malicious attacks."},{title:"Automated Process",description:"The entire process is automated from the user's point of view. All they have to do is click on a button to initiate the process."},{title:"Resistant to Replay Attacks",description:"mCaptcha's proof-of-work configurations have short lifetimes and can be used only once. This makes it resistant to replay attacks."},{title:"Seamless User Experience",description:"mCaptcha's user experience is super silent. Solving CAPTCHAs has never been easier. One click and your users are on their way."},{title:"Compatible with reCAPTCHA and hCaptcha",description:"Already using a captcha solution? No worries, mCaptcha's APIs are compatible with reCAPTCHA and hCaptcha!"}],tags:["Privacy","Security","CAPTCHA"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=y(512),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"MCAPTCHA_REDIS_URL=redis://default@$(PROJECT_NAME)_".concat(e.redisServiceName,":6379"),"MCAPTCHA_SERVER_DOMAIN=$(PRIMARY_DOMAIN)","MCAPTCHA_ALLOW_REGISTRATION=false","MCAPTCHA_ALLOW_DEMO=false","MCAPTCHA_COMMERCIAL=false","MCAPTCHA_CAPTCHA_GC=30","MCAPTCHA_SERVER_PROXY_HAS_TLS=true","MCAPTCHA_CAPTCHA_SALT=".concat(a),"RUST_LOG=debug","PORT=80"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"app",data:{serviceName:e.redisServiceName,source:{type:"image",image:"mcaptcha/cache"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6379}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"mealie",meta:{name:"Mealie",description:"Mealie is a self-hosted recipe manager and meal planner designed to provide a pleasant user experience for the whole family. It features a RestAPI backend and a reactive frontend application built in Vue. With Mealie, you can quickly and easily import recipes from various websites using the built-in recipe scraper. The app ensures the safety of your data with automatic backups in any format supported by Jinja2 templates. It offers a rich and intuitive user interface that allows you to create, edit, and delete recipes with ease. The recipe editor supports markdown syntax for added convenience. Mealie also enables you to create meal plans for the week, month, or year. You can add new users, sort them into groups to share recipes and meal plans, and schedule webhooks to send notifications to 3rd party services with today's meal plan data. The open API gives you full control of the backend server with interactive documentation.",instructions:"Please use the following credentials to login. [email protected]|MyPassword",changeLog:[{date:"2022-12-11",description:"first release"},{date:"2024-10-19",description:"Update to 12.0"},{date:"2025-02-28",description:"Version bumped to v2.7.1"},{date:"2025-06-05",description:"Update to v2.8.0"},{date:"2025-07-22",description:"Update to v3.0.2"},{date:"2025-12-29",description:"Version bumped to v3.8.0"},{date:"2026-02-21",description:"Version bumped to v3.11.0"},{date:"2026-05-04",description:"Version bumped to v3.16.0"}],links:[{label:"Documentation",url:"https://nightly.mealie.io/"},{label:"Github",url:"https://github.com/hay-kot/mealie/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mealie"},appServiceImage:{type:"string",title:"App Service Image",default:"hkotel/mealie:v3.16.0"}}},benefits:[{title:"Self-Hosted Recipe Manager",description:"Mealie is a self-hosted recipe manager and meal planner, providing a pleasant user experience for the whole family. It allows you to have full control over your recipes and meal plans."},{title:"Automatic Recipe Import",description:"Quickly and easily import recipes from sites around the web using the built-in recipe scraper. This feature saves you time and effort, making the process of adding new recipes to your collection a breeze."},{title:"Data Safety",description:"Keep your data safe with automatic backups. This ensures that your recipes and meal plans are always secure and can be restored in case of any data loss."},{title:"Meal Planning",description:"Create meal plans for the week, month, or year. This feature helps you stay organized and plan your meals in advance, reducing the stress of last-minute meal preparation."}],features:[{title:"Rich User Interface",description:"Mealie offers a beautiful and intuitive user interface to create, edit, and delete recipes. The recipe editor supports markdown syntax for easy formatting."},{title:"User Management",description:"Add new users with sign-up links or simply create a new user in the admin panel. You can also sort users into groups to share recipes and meal plans."},{title:"Webhooks and Open API",description:"Schedule webhooks to send notifications to 3rd party services with today's Meal Plan data. The API Driven application gives you full control of the backend server with interactive documentation."},{title:"Recipe Scraper",description:"The built-in recipe scraper allows you to import recipes from various websites quickly and easily. Just provide the URL, and Mealie will automatically import the relevant data."}],tags:["Food & Drink","Recipe Manager","Meal Planner"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png","screenshot4.png","screenshot5.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["[email protected]","TZ=UTC","BASE_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"volume",name:"appdata",mountPath:"/app/data"}]}}),{services:t}}},{slug:"medama",meta:{name:"Medama",description:"Medama Analytics is an open-source project dedicated to providing self-hostable, cookie-free website analytics. With a lightweight tracker of less than 1KB, it aims to offer useful analytics while prioritising user privacy.",instructions:"Login credentials, username; admin and password; CHANGE_ME_ON_FIRST_LOGIN",changeLog:[{date:"2025-04-08",description:"First Release"},{date:"2026-05-04",description:"Version bumped to v0.6.2"}],links:[{label:"Github",url:"https://github.com/medama-io/medama"},{label:"Documentation",url:"https://oss.medama.io/introduction"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"medama"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/medama-io/medama:v0.6.2"}}},benefits:[{title:"Privacy Focused",description:"Prioritizes user privacy by providing cookie-free analytics."},{title:"Lightweight",description:"Less than 1KB tracker ensures minimal impact on website performance."},{title:"Open Source",description:"Fully open-source project allowing for community contributions and transparency."},{title:"Self-Hostable",description:"Easily deployable on your own infrastructure for complete control."},{title:"Useful Analytics",description:"Provides essential analytics to help you understand your website traffic."}],features:[{title:"Cookie-Free Tracking",description:"Tracks website analytics without using cookies, ensuring user privacy."},{title:"Lightweight Tracker",description:"Tracker script is less than 1KB, minimizing load on your website."},{title:"Open Source",description:"Source code is available for anyone to inspect, modify, and contribute to."},{title:"Self-Hosting",description:"Can be deployed on your own servers, giving you full control over your data."},{title:"Essential Analytics",description:"Provides key metrics to help you understand and optimize your website traffic."}],tags:["Website Tracker","Live Tracking","Website Monitoring","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["LOGGER=pretty"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"mediamanager",meta:{name:"MediaManager",description:"MediaManager is a self-hosted media management application designed to help you organize, catalog, and manage your media collection. The application provides a clean web interface for browsing and managing your media files including movies, TV shows, music, and other digital content. With support for custom metadata, tagging, and categorization, MediaManager makes it easy to keep your media library organized and accessible. The application features automatic media scanning, metadata extraction, thumbnail generation, and search capabilities to quickly find content in large collections. Built with a PostgreSQL backend for reliable data storage, MediaManager can handle extensive media libraries with thousands of items. The flexible configuration system allows you to customize media directories, scanning behavior, and display preferences to match your needs. Perfect for home media enthusiasts who want to organize their digital collections, content creators managing large media archives, small organizations needing a simple media asset management solution, or anyone looking for a lightweight self-hosted alternative to complex media management systems.",instructions:"After deploy, edit the mounted config.toml on the MediaManager app service.\nSet [auth].admin_emails and [misc] library paths to match your setup.\nConfigure SMTP, OpenID, torrents, or indexers only if you use those features.\nSee https://maxdorninger.github.io/MediaManager/configuration-overview.html for details.\n",changeLog:[{date:"2025-12-10",description:"Template Release"}],links:[{label:"Website",url:"https://maxdorninger.github.io/MediaManager/"},{label:"Documentation",url:"https://maxdorninger.github.io/MediaManager/introduction.html"},{label:"GitHub",url:"https://github.com/maxdorninger/mediamanager"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mediamanager"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/maxdorninger/mediamanager:1.12.3"}}},benefits:[{title:"Organized Media Library",description:"Keep your entire media collection organized with custom metadata, tags, and categories for easy browsing and management."},{title:"Self-Hosted Privacy",description:"Host your media catalog on your own infrastructure with complete control over your data and no reliance on third-party services."},{title:"Fast Search",description:"Quickly find any media item in your collection with powerful search and filtering capabilities across all metadata."},{title:"Lightweight Solution",description:"Simple and efficient media management without the complexity of full-featured media server applications."}],features:[{title:"Media Scanning",description:"Automatically scan configured directories to discover and catalog new media files as they are added to your collection."},{title:"Metadata Management",description:"Add and edit metadata for your media items including titles, descriptions, tags, and custom fields."},{title:"Thumbnail Generation",description:"Automatic thumbnail generation for visual browsing of your media collection in the web interface."},{title:"Category Organization",description:"Organize media into categories and collections for logical grouping and easier navigation."},{title:"Web Interface",description:"Clean, responsive web interface for browsing and managing your media library from any device."},{title:"PostgreSQL Backend",description:"Reliable PostgreSQL database backend for storing metadata and supporting large media collections."},{title:"Flexible Configuration",description:"Customizable settings for media directories, scanning behavior, and display preferences."},{title:"Search & Filter",description:"Advanced search and filtering options to quickly locate specific media items across your entire library."}],tags:["Media","File Management","Organization","Self-Hosted","Library","Metadata","TV Shows"],logo:"logo.png",screenshots:["screenshot.png","screenshot1.png"]},generate:function(e){var t=[],a=v(),i=v()+v();t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}});var o='\n# MediaManager Configuration File\n\n[misc]\nfrontend_url = "https://$(PRIMARY_DOMAIN)"\ncors_urls = ["https://$(PRIMARY_DOMAIN)"]\n\nimage_directory = "/data/images"\ntv_directory = "/data/tv"\nmovie_directory = "/data/movies"\ntorrent_directory = "/data/torrents"\n\ndevelopment = false\n\n[[misc.tv_libraries]]\nname = "TV Shows"\npath = "/data/tv"\n\n[[misc.movie_libraries]]\nname = "Movies"\npath = "/data/movies"\n\n[database]\nhost = "$(PROJECT_NAME)_'.concat(e.appServiceName,'-db"\nport = 5432\nuser = "postgres"\npassword = "').concat(a,'"\ndbname = "$(PROJECT_NAME)"\n\n[auth]\nemail_password_resets = false\ntoken_secret = "').concat(i,'"\nsession_lifetime = 86400\nadmin_emails = ["[email protected]"]\n\n[auth.openid_connect]\nenabled = false\nclient_id = ""\nclient_secret = ""\nconfiguration_endpoint = ""\nname = "OpenID"\n\n[notifications]\n[notifications.smtp_config]\nsmtp_host = "smtp.example.com"\nsmtp_port = 587\nsmtp_user = "admin"\nsmtp_password = "admin"\nfrom_email = "[email protected]"\nuse_tls = true\n\n[notifications.email_notifications]\nenabled = false\nemails = []\n\n[notifications.gotify]\nenabled = false\napi_key = ""\nurl = ""\n\n[notifications.ntfy]\nenabled = false\nurl = ""\n\n[notifications.pushover]\nenabled = false\napi_key = ""\nuser = ""\n\n[torrents]\n[torrents.qbittorrent]\nenabled = false\nhost = "http://localhost"\nport = 8080\nusername = "admin"\npassword = "admin"\n\n[torrents.transmission]\nenabled = false\nusername = "admin"\npassword = "admin"\nhttps_enabled = false\nhost = "localhost"\nport = 9091\npath = "/transmission/rpc"\n\n[torrents.sabnzbd]\nenabled = false\nhost = "http://localhost"\nport = 8080\napi_key = ""\nbase_path = "/api"\n\n[indexers]\n[indexers.prowlarr]\nenabled = false\nurl = ""\napi_key = ""\nreject_torrents_on_url_error = true\n\n[indexers.jackett]\nenabled = false\nurl = ""\napi_key = ""\nindexers = []\n\n[metadata]\n[metadata.tmdb]\ntmdb_relay_url = "https://metadata-relay.dorninger.co/tmdb"\n\n[metadata.tvdb]\ntvdb_relay_url = "https://metadata-relay.dorninger.co/tvdb"\n').trim();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["CONFIG_DIR=/app/config"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"images",mountPath:"/data/images"},{type:"volume",name:"tv",mountPath:"/data/tv"},{type:"volume",name:"movies",mountPath:"/data/movies"},{type:"volume",name:"torrents",mountPath:"/data/torrents"}
1,{type:"file",content:o,mountPath:"/app/config/config.toml"}]}}),{services:t}}},{slug:"mediawiki",meta:{name:"MediaWiki",description:"MediaWiki is a powerful, open-source wiki platform that powers some of the largest collaborative projects, including Wikipedia. It offers a flexible and extensible framework for creating and managing content, supporting features like user management, version control, and powerful extensions. MediaWiki provides multilingual support, ensuring global accessibility, and includes built-in tools for content organization, search, and collaboration. It is an ideal solution for knowledge bases, documentation sites, and community-driven content platforms. With a vibrant ecosystem of plugins and themes, MediaWiki can be customized to suit diverse use cases.",instructions:'During the installation, configure the database as prompted, and once completed, a file named "LocalSettings.php" will be downloaded. Open EasyPanel, navigate to the Storage section for MediaWiki, and create a file mount. Paste the content of the LocalSettings.php file into the mount and set its mount path to /var/www/html/LocalSettings.php. Finally, redeploy the MediaWiki app in EasyPanel to apply the configuration.',changeLog:[{date:"2024-11-22",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 1.43.0"},{date:"2025-06-05",description:"Update to 1.43.1"},{date:"2025-07-22",description:"Update to 1.43.3"},{date:"2025-12-29",description:"Version bumped to 1.45.1"},{date:"2026-05-04",description:"Version bumped to 1.45.3"}],links:[{label:"Website",url:"https://www.mediawiki.org"},{label:"Documentation",url:"https://www.mediawiki.org/wiki/Manual:Contents"},{label:"Github",url:"https://github.com/wikimedia/mediawiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mediawiki"},appServiceImage:{type:"string",title:"App Service Image",default:"mediawiki:1.45.3"}}},benefits:[{title:"Robust Content Management",description:"MediaWiki provides a comprehensive set of tools for organizing, editing, and managing collaborative content, making it suitable for knowledge bases and wikis."},{title:"Customizable and Extensible",description:"Leverage a wide array of extensions and skins to tailor MediaWiki to your specific needs, whether for a public-facing site or internal documentation."},{title:"Multilingual Support",description:"Easily create multilingual content and manage translations with built-in language support, ensuring accessibility for a global audience."},{title:"Scalable and Flexible",description:"MediaWiki is built to handle projects of any size, from small teams to massive, high-traffic sites like Wikipedia."},{title:"Open Source",description:"MediaWiki is open-source, offering complete control and the freedom to modify and adapt it to your organization's needs."}],features:[{title:"Revision History and Versioning",description:"Track changes with a complete revision history, allowing users to compare, restore, and review edits."},{title:"User Management and Permissions",description:"Manage users and define granular permissions to control access and editing rights on your wiki."},{title:"Full-Text Search",description:"MediaWiki includes a powerful search feature to help users quickly find the information they need."},{title:"Structured Data with Templates",description:"Use templates to standardize and organize content, making it easier to maintain and update."},{title:"Active Community",description:"Join an active community of contributors and developers, offering support and fostering innovation within the MediaWiki ecosystem."}],tags:["Wiki","Collaboration","Content Management","CMS"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"storage",mountPath:"/var/www/html/images"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),password:a}}),{services:t}}},{slug:"medikeep",meta:{name:"MediKeep",description:"MediKeep is a lightweight, self-hosted application for managing your personal medical information. Keep your health records organized and accessible while maintaining complete control over your data privacy. Built with React frontend and FastAPI backend, MediKeep provides a secure platform for tracking medications, generating health reports, and managing your medical records with ease.",instructions:null,changeLog:[{date:"2025-02-09",description:"Initial template release"},{date:"2026-05-04",description:"Version bumped to v0.64.0"}],links:[{label:"Website",url:"https://medikeeps.com"},{label:"GitHub",url:"https://github.com/afairgiant/MediKeep"},{label:"Documentation",url:"https://github.com/afairgiant/MediKeep/tree/main/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"medikeep"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/afairgiant/medikeep:v0.64.0"},adminDefaultPassword:{type:"string",title:"Admin Default Password (Optional)",default:"",description:"Default password for the admin user on fresh installations. Auto-generated if not provided."},secretKey:{type:"string",title:"Secret Key (Auto-generated if empty)",default:"",description:"JWT secret key for authentication. Auto-generated if not provided."},timezone:{type:"string",title:"Timezone",default:"America/New_York"},logLevel:{type:"string",title:"Log Level",default:"INFO",oneOf:[{enum:["INFO"],title:"INFO"},{enum:["DEBUG"],title:"DEBUG"}]},ssoEnabled:{type:"boolean",title:"Enable SSO",default:!1,description:"Enable Single Sign-On authentication (Google, GitHub, or OIDC)"},ssoProviderType:{type:"string",title:"SSO Provider Type",default:"",description:"SSO provider type (e.g., oidc, google, github). Required if SSO is enabled."},ssoClientId:{type:"string",title:"SSO Client ID",default:"",description:"SSO client ID. Required if SSO is enabled."},ssoClientSecret:{type:"string",title:"SSO Client Secret",default:"",description:"SSO client secret. Required if SSO is enabled."},ssoIssuerUrl:{type:"string",title:"SSO Issuer URL",default:"",description:"SSO issuer URL (for OIDC providers). Required for OIDC SSO."},ssoRedirectUri:{type:"string",title:"SSO Redirect URI",default:"",description:"SSO redirect URI. Usually https://your-domain/api/v1/auth/sso/callback"},ssoAllowedDomains:{type:"string",title:"SSO Allowed Domains",default:"",description:"Comma-separated list of allowed domains for SSO (e.g., example.com,example.org)"}}},benefits:[{title:"Complete Data Privacy",description:"Keep your medical records secure and private with self-hosted deployment. You maintain complete control over your sensitive health information."},{title:"Medication Tracking",description:"Track and manage all your medications, dosages, and schedules in one convenient location, helping you stay on top of your health regimen."},{title:"Health Report Generation",description:"Generate custom health reports and export your medical data for sharing with healthcare providers, making medical visits more efficient."}],features:[{title:"React Frontend",description:"Modern, responsive user interface built with React for an intuitive user experience across desktop and mobile devices."},{title:"FastAPI Backend",description:"High-performance backend built with FastAPI, ensuring fast and reliable access to your medical records."},{title:"SSO Support",description:"Optional Single Sign-On integration with Google, GitHub, or OIDC providers for seamless authentication."},{title:"Backup and Restore",description:"Built-in backup and restore functionality with CLI support for automated scheduled backups, ensuring your data is always protected."}],tags:["Medical Records","Health Management","Self-Hosted","Privacy"],logo:"logo.png",screenshots:["screenshot.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=v(),i=e.secretKey||y(32),o=e.adminDefaultPassword||v(
1),n=["DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=5432","DB_NAME=$(PROJECT_NAME)","DB_USER=postgres","DB_PASSWORD=".concat(a),"SECRET_KEY=".concat(i),"ADMIN_DEFAULT_PASSWORD=".concat(o),"TZ=".concat(e.timezone),"LOG_LEVEL=".concat(e.logLevel),"SSO_ENABLED=".concat(e.ssoEnabled)];return e.ssoEnabled&&(e.ssoProviderType&&n.push("SSO_PROVIDER_TYPE=".concat(e.ssoProviderType)),e.ssoClientId&&n.push("SSO_CLIENT_ID=".concat(e.ssoClientId)),e.ssoClientSecret&&n.push("SSO_CLIENT_SECRET=".concat(e.ssoClientSecret)),e.ssoIssuerUrl&&n.push("SSO_ISSUER_URL=".concat(e.ssoIssuerUrl)),e.ssoRedirectUri&&n.push("SSO_REDIRECT_URI=".concat(e.ssoRedirectUri)),e.ssoAllowedDomains&&n.push("SSO_ALLOWED_DOMAINS=".concat(e.ssoAllowedDomains))),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:n.join("\n"),mounts:[{type:"volume",name:"uploads",mountPath:"/app/uploads"},{type:"volume",name:"logs",mountPath:"/app/logs"},{type:"volume",name:"backups",mountPath:"/app/backups"}]}}),{services:t}}},{slug:"medusa",meta:{name:"Medusa",description:"Medusa is an automatic Video Library Manager for TV Shows. It continuously monitors multiple sources for new episodes of your favorite TV shows and automatically downloads, processes, and organizes them. Medusa fetches metadata, renames files, and ensures your media library is structured and up-to-date. With a powerful and customizable automation system, it supports multiple download clients, subtitle providers, and metadata sources. Medusa integrates with popular media servers, ensuring seamless media management.",instructions:null,changeLog:[{date:"2025-03-04",description:"First Release"},{date:"2025-12-29",description:"Version bumped to 1.0.25"}],links:[{label:"Documentation",url:"https://github.com/pymedusa/Medusa/wiki"},{label:"Github",url:"https://github.com/pymedusa/Medusa"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"medusa"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/medusa:1.0.25"}}},benefits:[{title:"Automated TV Show Management",description:"Medusa continuously scans multiple sources for new TV show episodes and downloads them automatically. It helps you keep your media library updated without manual intervention."},{title:"Smart File Organization",description:"Medusa renames and organizes downloaded episodes into a structured library with metadata, subtitles, and proper file-naming conventions. This makes it easy to manage and access your media."},{title:"Integration with Media Servers",description:"Medusa integrates with media servers like Plex, Emby, and Kodi, ensuring that your newly downloaded content is instantly available in your media library."}],features:[{title:"Multi-Source Episode Tracking",description:"Medusa tracks episodes from various torrent and Usenet sources, ensuring you never miss a release."},{title:"Automatic Subtitle Downloading",description:"Medusa supports automatic subtitle fetching from multiple providers, allowing you to enjoy content in different languages."},{title:"Custom Download Client Support",description:"Medusa integrates with multiple torrent and Usenet download clients, including Transmission, qBittorrent, Deluge, SABnzbd, and NZBGet."},{title:"Post-Processing Automation",description:"Medusa can automatically extract, rename, and move downloaded files to the correct directories based on customizable rules."},{title:"Metadata Fetching",description:"Medusa fetches metadata such as episode information, posters, and descriptions from TVDB, TMDB, and other sources."}],tags:["TV Shows","Media Management","Automation","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"downloads",mountPath:"/downloads"},{type:"volume",name:"tv",mountPath:"/tv"}]}}),{services:t}}},{slug:"meilisearch",meta:{name:"Meilisearch",description:"Meilisearch Cloud is a next-generation, open-source search engine designed to enhance your search experience. This powerful tool can be effortlessly integrated into any website or application, providing lightning-fast, hyper-relevant search results in less than 50 milliseconds. With Meilisearch, you can deploy a user-focused search experience in just a few minutes, thanks to its smart presets that require zero configuration. It offers the most advanced full-text search engine with great relevancy that fits every use case. Meilisearch supports all languages and automatically detects them, allowing for a truly global search experience. It also allows for custom relevancy, enabling you to create your own ranking rules. Meilisearch ensures secure searches with API keys and tenant tokens, and even allows for real-world geo searches. With Meilisearch Cloud, you can enhance your user's search experience with custom filters and build a faceted search interface in just a few lines of code.",instructions:null,changeLog:[{date:"2022-10-31",description:"first release"},{date:"2024-10-19",description:"Update to v1.10.3"},{date:"2025-06-05",description:"Update to v1.13.3"},{date:"2025-07-22",description:"Update to v1.15.2"},{date:"2025-12-29",description:"Version bumped to v1.31.0"},{date:"2026-02-21",description:"Version bumped to v1.35.1"},{date:"2026-05-04",description:"Version bumped to v1.43.0"}],links:[{label:"Website",url:"https://meilisearch.com/"},{label:"Documentation",url:"https://docs.meilisearch.com/"},{label:"Github",url:"https://github.com/meilisearch/meilisearch/"},{label:"Discord",url:"https://discord.gg/meilisearch"}],contributors:[{name:"Rub\xe9n Robles",url:"https://github.com/D8vjork"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dataVolumeName","meiliEnv"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"meilisearch"},appServiceImage:{type:"string",title:"App Service Image",default:"getmeili/meilisearch:v1.43.0"},dataVolumeName:{type:"string",title:"Meilisearch Database Volume Name",default:"meilisearch"},meiliEnv:{type:"string",title:"Meilisearch Environment",default:"production",oneOf:[{enum:["production"],title:"Production"},{enum:["development"],title:"Development"}]},meiliMasterKey:{type:"string",title:"Meilisearch Master Key"},meiliNoAnalytics:{type:"boolean",title:"Disable Meilisearch Analytics",default:!1},meiliScheduleSnapshot:{type:"boolean",title:"Enable Database Scheduled Snapshots",default:!1},meiliSnapshotInterval:{type:"string",title:"Scheduled Snapshots Interval (in seconds)",default:"86400"}}},benefits:[{title:"Lightning Fast Search",description:"Meilisearch Cloud provides search-as-you-type functionality that returns answers in less than 50 milliseconds, faster than the blink of an eye. This ensures an efficient and seamless search experience for users."},{title:"Ultra Relevant Results",description:"The app leverages the most advanced full-text search engine to deliver highly relevant results for every use case. This enhances user satisfaction by ensuring they always find what they're searching for."},{title:"Easy Deployment",description:"With smart presets and zero configuration requirements, Meilisearch Cloud can be deployed in a matter of minutes. This saves time and simplifies the process of integrating the search engine into your website or application."}],features:[{title:"Custom Filters",description:"Meilisearch Cloud allows you to enhance your user's search experience with custom filters. You can build a faceted search interface in just a few lines of code."},{title:"Language Detection",description:"The app supports all languages and automatically detects them. This ensures a smooth and inclusive search experience for users from different linguistic backgrounds."},{title:"Custom Relevancy",description:"With Meilisearch Cloud, you can break the rules and create your own ranking rules for search results. This gives you more control over the search experience you provide to your users."},{title:"Geo Search",description:"The app allows users to search in the real world, eliminating the need for complex configurations or advanced technical knowledge."},{title:"Ironclad Security",description:"Meilisearch Cloud ensures secure search experiences with API keys and tenant tokens that help you specify who can search what."}],tags:["Developer Tools","Search Engine"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["MEILI_ENV=".concat(e.meiliEnv),"MEILI_MASTER_KEY=".concat(e.meiliMasterKey)];return e.meiliNoAnalytics&&a.push("MEILI_NO_ANALYTICS=true"),e.meiliScheduleSnapshot&&(a.push("MEILI_SCHEDULE_SNAPSHOT=true"),a.push("MEILI_SNAPSHOT_INTERVAL_SEC=".concat(e.meiliSnapshotInterval))),t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7700}],mounts:[{type:"volume",name:e.dataVolumeName,mountPath:"/meili_data"}]}}),{services:t}}},{slug:"memcached",meta:{name:"Memcached",description:"Memcached is a high-performance, distributed memory object caching system designed for speeding up dynamic web applications by alleviating database load. It works by storing data and objects in RAM to reduce the number of times an external data source must be read. Memcached is simple yet powerful, featuring a straightforward design that enables rapid deployment, ease of development, and solves many problems facing large data caches. It's particularly useful for database call, API call, or page rendering result caching.",instructions:null,changeLog:[{date:"2025-03-20",description:"Initial template release"},{date:"2025-07-22",description:"Update to 1.6.38"},{date:"2025-12-29",description:"Version bumped to 1.6.40"},{date:"2026-05-04",description:"Version bumped to 1.6.41"}],links:[{label:"Website",url:"https://memcached.org/"}
1,{label:"Documentation",url:"https://github.com/memcached/memcached/wiki"},{label:"Github",url:"https://github.com/memcached/memcached"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"memcached"},appServiceImage:{type:"string",title:"App Service Image",default:"memcached:1.6.41"}}},benefits:[{title:"High Performance",description:"Memcached provides extremely fast performance with O(1) get/set/delete operations and supports operations over 50,000 QPS per node."},{title:"Simple to Use",description:"With a simple design and protocol, Memcached is easy to implement and use in your applications."},{title:"Distributed Architecture",description:"Scale horizontally by adding more nodes to your Memcached cluster, distributing memory and load across multiple machines."}],features:[{title:"In-Memory Caching",description:"Store frequently accessed data in RAM for lightning-fast retrieval, reducing database load."},{title:"Multi-protocol Support",description:"Connect to Memcached using various clients in different languages like PHP, Python, Ruby, Java, and more."},{title:"Key-Value Storage",description:"Store any arbitrary data (strings, objects) associated with a key for simple retrieval."},{title:"LRU Eviction",description:"Least Recently Used (LRU) algorithm automatically removes the least-used items when memory is needed."}],tags:["Cache","In-Memory","Performance","Database"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["MEMCACHED_CACHE_SIZE=64","MEMCACHED_THREADS=4"].join("\n"),mounts:[{type:"volume",name:"memcached-data",mountPath:"/data"}]}}),{services:t}}},{slug:"meme-search",meta:{name:"Meme Search",description:"Meme Search is a self-hosted app for indexing and searching your local meme collection with natural language instead of scrolling through a camera roll. Every image gets an AI-generated description, embedded into PostgreSQL with pgvector, and made searchable by meaning rather than filename. Image descriptions can be generated locally with a bundled vision model or offloaded to any OpenAI-compatible API.",instructions:"Open the app URL and drag memes into the direct-upload area, or mount\nyour own meme folders into the web and jobs services under\n/rails/public/memes to bulk-import an existing collection. New uploads\nare picked up by the background jobs service, described by the local\nvision model (or your configured OpenAI-compatible API), and embedded\ninto Postgres automatically, after which they become searchable from the\nhome page.\n",changeLog:[{date:"2026-07-13",description:"first release"}],links:[{label:"Website",url:"https://meme-search.neonwatty.com"},{label:"GitHub",url:"https://github.com/neonwatty/meme-search"},{label:"Documentation",url:"https://github.com/neonwatty/meme-search/blob/main/README.md"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","webImage","generatorImage","imageDescriptionProvider"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"meme-search"},webImage:{type:"string",title:"Web/Jobs Image",default:"ghcr.io/neonwatty/meme_search:v2.2.0"},generatorImage:{type:"string",title:"Local Vision Model Image",default:"ghcr.io/neonwatty/image_to_text_generator:v2.2.0"},imageDescriptionProvider:{type:"string",title:"Image Description Provider",default:"local",oneOf:[{enum:["local"],title:"Local (bundled vision model, no API key needed)"},{enum:["openai"],title:"OpenAI-compatible API"}]},openaiApiBaseUrl:{type:"string",title:"OpenAI-Compatible API Base URL",description:"Only used when Image Description Provider is set to OpenAI-compatible API."},openaiApiKey:{type:"string",title:"OpenAI-Compatible API Key",description:"Only used when Image Description Provider is set to OpenAI-compatible API."},openaiVisionModel:{type:"string",title:"OpenAI-Compatible Vision Model",description:"Only used when Image Description Provider is set to OpenAI-compatible API."}}},benefits:[{title:"Search by Meaning, Not Filename",description:'Every meme is described by a vision model and embedded with pgvector, so a search for "cat looking confused" finds it even if the file is named IMG_4213.jpg.'},{title:"No External API Required",description:"The bundled local vision model generates image descriptions on your own hardware by default, so nothing leaves your server unless you choose to switch to an OpenAI-compatible API."},{title:"Bulk Import Existing Collections",description:"Mount an existing folder of memes straight into the container to index a whole collection at once, instead of uploading files one by one."}],features:[{title:"Drag-and-Drop Uploads",description:"Drop new memes directly into the browser and they are picked up by the background jobs service automatically."},{title:"Natural Language Search",description:"Search results are ranked by semantic similarity to your query using pgvector, not just keyword matching."},{title:"Pluggable Vision Backend",description:"Switch between the bundled local model and any OpenAI-compatible vision API by changing a single environment variable."},{title:"Rescan and Re-Index",description:"Trigger a rescan from the UI to pick up new files added to a mounted meme directory or regenerate descriptions after switching providers."}],tags:["Media","Search","AI","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t,a,i,o=[],n=v(),r="local"===e.imageDescriptionProvider,s="/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes"),c='test:\n  adapter: postgresql\n  encoding: unicode\n  pool: 5\n  timeout: 5000\n  database: meme_test\n\ndevelopment:\n  adapter: postgresql\n  encoding: unicode\n  pool: 5\n  timeout: 5000\n  database: meme_development\n\nproduction:\n  adapter: postgresql\n  encoding: unicode\n  pool: 5\n  timeout: 5000\n  host: <%= ENV["DATABASE_HOST"] %>\n  port: <%= ENV["DATABASE_PORT"] %>\n  database: <%= ENV["DATABASE_NAME"] %>\n  username: <%= ENV["DATABASE_USER"] %>\n  password: <%= ENV["DATABASE_PASSWORD"] %>\n',l=["DATABASE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DATABASE_PORT=5432","DATABASE_NAME=$(PROJECT_NAME)","DATABASE_USER=postgres","DATABASE_PASSWORD=".concat(n),"IMAGE_DESCRIPTION_PROVIDER=".concat(e.imageDescriptionProvider),"OPENAI_API_BASE_URL=".concat(null!==(t=e.openaiApiBaseUrl)&&void 0!==t?t:""),"OPENAI_API_KEY=".concat(null!==(a=e.openaiApiKey)&&void 0!==a?a:""),"OPENAI_VISION_MODEL=".concat(null!==(i=e.openaiVisionModel)&&void 0!==i?i:"")];return o.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.webImage},env:l.join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"file",content:c,mountPath:"/rails/config/database.yml"},{type:"volume",name:"memes",mountPath:"/rails/public/memes"},{type:"volume",name:"direct-uploads",mountPath:"/rails/public/memes/direct-uploads"}]}}),o.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-jobs"),source:{type:"image",image:e.webImage},env:l.join("\n"),deploy:{command:"./bin/jobs"},mounts:[{type:"file",content:c,mountPath:"/rails/config/database.yml"},{type:"bind",hostPath:"".concat(s,"/memes"),mountPath:"/rails/public/memes"},{type:"bind",hostPath:"".concat(s,"/direct-uploads"),mountPath:"/rails/public/memes/direct-uploads"}]}}),r&&o.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-generator"),source:{type:"image",image:e.generatorImage}
1,env:["APP_PORT=3000","GEN_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,":3000")].join("\n"),mounts:[{type:"bind",hostPath:"".concat(s,"/memes"),mountPath:"/app/public/memes"},{type:"bind",hostPath:"".concat(s,"/direct-uploads"),mountPath:"/app/public/memes/direct-uploads"},{type:"volume",name:"generator-db",mountPath:"/app/db"},{type:"volume",name:"models",mountPath:"/root/.cache/huggingface"}],resources:{memoryReservation:0,memoryLimit:12288,cpuReservation:0,cpuLimit:0}}}),o.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:n,image:"pgvector/pgvector:pg17"}}),{services:o}}},{slug:"memgraph",meta:{name:"Memgraph",description:"Memgraph is a high-performance, in-memory graph database designed for real-time analytics and machine learning applications. It provides fast graph traversal, pattern matching, and complex graph algorithms with support for Cypher query language. Memgraph MAGE (Memgraph Advanced Graph Extensions) includes pre-built graph algorithms and machine learning modules. The platform comes with Memgraph Lab, a visual interface for database management, query development, and graph visualization.",instructions:null,changeLog:[{date:"2025-09-10",description:"Initial Template Release"},{date:"2025-12-29",description:"Version bumped to 3.7.2"},{date:"2026-02-21",description:"Version bumped to 3.8.1"},{date:"2026-05-04",description:"Version bumped to 3.9.0"}],links:[{label:"GitHub",url:"https://github.com/memgraph/memgraph"},{label:"Docker Hub",url:"https://hub.docker.com/r/memgraph/memgraph"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","dbServiceImage","labImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"memgraph"},dbServiceImage:{type:"string",title:"App Service Image",default:"memgraph/memgraph-mage:3.9.0",description:"Memgraph MAGE Docker image"},labImage:{type:"string",title:"Lab Image",default:"memgraph/lab:3.5.0",description:"Memgraph Lab Docker image"}}},benefits:[{title:"High-Performance Graph Database",description:"In-memory graph database optimized for real-time analytics and complex graph operations with sub-millisecond query response times."},{title:"Advanced Graph Algorithms",description:"Pre-built graph algorithms and machine learning modules through MAGE extensions for complex graph analytics and data science workflows."},{title:"Visual Graph Management",description:"Memgraph Lab provides an intuitive visual interface for database management, query development, and interactive graph visualization."},{title:"Cypher Query Language",description:"Industry-standard Cypher query language support for expressive and efficient graph data manipulation and analysis."}],features:[{title:"Real-Time Analytics",description:"Optimized for real-time graph analytics with fast data ingestion and query processing capabilities for streaming data applications."},{title:"Graph Visualization",description:"Interactive graph visualization tools in Memgraph Lab for exploring complex relationships and patterns in your data."},{title:"Machine Learning Integration",description:"Built-in machine learning algorithms and extensions for graph-based ML workflows and predictive analytics."},{title:"Scalable Architecture",description:"Horizontal scaling capabilities and distributed graph processing for handling large-scale graph datasets and high-throughput applications."},{title:"Developer-Friendly",description:"Comprehensive APIs, drivers for multiple programming languages, and extensive documentation for easy integration and development."},{title:"Enterprise Features",description:"Enterprise-grade security, monitoring, and management features for production deployments and mission-critical applications."}],tags:["Graph Database","Real-Time Analytics","Machine Learning","Cypher","Graph Algorithms","Visualization","MAGE","In-Memory","High Performance","Data Science"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-db"),source:{type:"image",image:e.dbServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7687}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.labImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["QUICK_CONNECT_MG_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"QUICK_CONNECT_MG_PORT=7687"].join("\n")}}),{services:t}}},{slug:"memos",meta:{name:"Memos",description:"Memos is a privacy-first, lightweight note-taking service designed to easily capture and share your great thoughts. With its focus on privacy, all data generated is saved in the SQLite database file, ensuring that you keep your own data by yourself. The app supports plain text with markdown, allowing you to save all content as plain text, not HTML, while also supporting a variety of useful markdown syntax. Despite being lightweight, Memos is powerful, utilizing a Go + React.js + SQLite architecture. The app is customizable, allowing you to modify the server name, icon, description, system style, and execution script. Memos is open source and free forever, embodying the belief that open source is the future. It offers a RESTful API for third-party services, enabling integration and new possibilities. With Memos, you can embrace a future where creativity knows no boundaries.",instructions:null,changeLog:[{date:"2022-12-21",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 0.24"},{date:"2025-07-22",description:"Update to 0.25"},{date:"2026-02-21",description:"Version bumped to 0.26"},{date:"2026-05-04",description:"Version bumped to 0.28"}],links:[{label:"Website",url:"https://usememos.com/"},{label:"Documentation",url:"https://github.com/usememos/memos#deploy-with-docker-in-seconds"},{label:"Github",url:"https://github.com/usememos/memos"}],contributors:[{name:"DrMxrcy",url:"https://github.com/DrMxrcy"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"memos"},appServiceImage:{type:"string",title:"App Service Image",default:"neosmemo/memos:0.28"},serviceTimezone:{type:"string",title:"Timezone",default:"America/New_York"}}},benefits:[{title:"Privacy First",description:"Memos is a privacy-first note-taking service. It allows you to keep your own data by yourself. All data generated at runtime is saved in the SQLite database file, ensuring your notes and thoughts are kept private and secure."},{title:"Lightweight but Powerful",description:"Despite its lightweight package, Memos is a powerful tool. It uses a Go + React.js + SQLite architecture, providing a robust and efficient platform for capturing and sharing your thoughts."},{title:"Free Forever",description:"Memos is completely free. All features are available without any charges, allowing you to capture and share your thoughts without any financial constraints."}],features:[{title:"Plain Text with Markdown",description:"Memos saves all content as plain text, not HTML. It supports a wide range of useful markdown syntax, making note-taking simple and efficient."},{title:"Customizable",description:"Memos is highly customizable. You can personalize the server name, icon, description, system style, and execution script to suit your preferences."},{title:"Open Source",description:"Memos is an open-source application. It believes in the future of open source, and all its code is available on GitHub."}],tags:["Notes","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=".concat(e.serviceTimezone)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5230}],mounts:[{type:"volume",name:"memos",mountPath:"/var/opt/memos"}]}}),{services:t}}},{slug:"metabase",meta:{name:"Metabase",description:"Metabase is a powerful, user-friendly application designed to enable your company to explore data independently. It offers fast analytics with integrated tooling and a friendly user interface. With Metabase, you can go from zero to dashboard in just 2 minutes, allowing you to connect directly to over 20+ data sources, from your startup\u2019s production database to massive data warehouses, and query immediately without extracts. The application is trusted by over 50,000 companies and is accessible to all, with a range of plans from free open-source to pay-as-you-go Pro and Enterprise. Metabase allows you to create and share interactive dashboards, craft metadata-rich models, and free your data from the confines of SQL with a Visual Query Builder. It is designed to make self-service analytics a reality, providing a simple yet powerful tool for data exploration and dashboarding.",instructions:null,changeLog:[{date:"2022-11-08",description:"first release"},{date:"2024-10-19",description:"Second Release"},{date:"2025-02-28",description:"Version bumped to v0.53.4.2"},{date:"2025-07-22",description:"Update to v0.55.8.6"},{date:"2025-12-29",description:"Version bumped to v0.57.7.10"},{date:"2026-02-21",description:"Version bumped to v0.58.7"},{date:"2026-05-04",description:"Version bumped to v0.60.3.6"}],links:[{label:"Website",url:"https://www.metabase.com/"},{label:"Documentation",url:"https://www.metabase.com/docs/latest/"},{label:"Github",url:"https://github.com/metabase/metabase/"}],contributors:[{name:"Rub\xe9n Robles",url:"https://github.com/D8vjork"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"metabase"},appServiceImage:{type:"string",title:"App Service Image",default:"metabase/metabase:v0.60.3.6"},metabaseSiteName:{type:"string",title:"Metabase Site Name (Title)"}}},benefits:[{title:"Fast Analytics",description:"This app provides fast analytics with a friendly user experience and integrated tooling. It allows your company to explore data on their own, going from zero to dashboard in just 2 minutes."},{title:"Trusted by Thousands",description:"This app is trusted by over 50,000 companies. It can be up and running in no time, providing immediate access to data without the need for extracts."},{title:"Accessible to All",description:"From the free open-source tier to the powerful pay-as-you-go Pro plan all the way to Enterprise, this app is accessible to all, catering to different needs and budgets."},{title:"Self-Service Analytics",description:"This app makes self-service analytics finally happen. It frees your data from the confines of SQL, allowing everyone to query in a user interface that humans actually love."}],features:[{title:"Visual Query Builder",description:"This app features a Visual Query Builder that lets users easily create and share interactive dashboards, from TB-scale analytical workloads to day-to-day operational workflows, with 15+ visualization types."},{title:"Models",description:"This app allows users to craft metadata-rich, semantic models which let people query on their own, keeping things consistent and avoiding repetition. All of this can be done with a single tab open and no CLI needed."},{title:"Direct Connection to Data Sources",description:"This app can connect directly to any of 20+ data sources, from your startup\u2019s production DB to massive data warehouses."},{title:"Embedded Analytics",description:"This app allows for customer facing analytics in days, not sprints. You can power your product\u2019s reporting by embedding charts, dashboards or all of the app."}],tags:["Analytics","Business Apps"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.metabaseSiteName||"$(PROJECT_NAME)";return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MB_SITE_NAME=".concat(a),"MB_APPLICATION_NAME=".concat(a),"MB_DB_FILE=/metabase-data/metabase.db"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/metabase-data"}]}}),{services:t}}},{slug:"metaflow",meta:{name:"Metaflow",description:"Metaflow is an open-source framework for building and managing real-life ML, AI, and data science projects. Originally developed at Netflix and now supported by Outerbounds, Metaflow streamlines the entire development lifecycle\u2014from rapid prototyping in notebooks to reliable production deployments. It unifies code, data, and compute at every stage, enabling teams to iterate quickly and deliver robust AI/ML systems. Used by Amazon, Doordash, Goldman Sachs, and many others.",instructions:"Deploy Metaflow metadata service to track your flows. Configure your Metaflow client with METAFLOW_SERVICE_URL pointing to your deployment URL and METAFLOW_DEFAULT_METADATA=service. Run flows with `python myflow.py run` and metadata will be stored. Allow ~30 seconds for the metadata service to start.",changeLog:[{date:"2026-02-09",description:"Initial release"}],links:[{label:"Website",url:"https://metaflow.org/"},{label:"Documentation",url:"https://docs.metaflow.org/"},{label:"GitHub",url:"https://github.com/Netflix/metaflow"},{label:"Metaflow Service",url:"https://github.com/Netflix/metaflow-service"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","metadataServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"metaflow"},metadataServiceImage:{type:"string",title:"Metadata Service Image",default:"netflixoss/metaflow_metadata_service:v2.5.0",description:"Docker image for the Metaflow metadata service"}}},benefits:[{title:"Human-Centric ML Framework",description:"Metaflow is designed to boost productivity for research and engineering teams, from classical statistics to state-of-the-art deep learning."},{title:"Prototype to Production",description:"Seamlessly move from rapid prototyping in notebooks to reliable, maintainable production deployments with built-in versioning and tracking."},{title:"Battle-Tested at Scale",description:"Powers thousands of AI/ML projects at Netflix and beyond, processing hundreds of millions of compute jobs and petabytes of data."},{title:"Self-Hosted & Open Source",description:"Full control over your metadata and infrastructure. Apache 2.0 licensed."}],features:[{title:"Experiment Tracking",description:"Built-in support for experiment tracking, versioning, and visualization of flows, runs, steps, and artifacts."},{title:"Remote Execution",description:"Scale horizontally and vertically in your cloud, utilizing both CPUs and GPUs with fast data access."},{title:"Production Orchestration",description:"One-click deploy to production orchestrators with reactive orchestration and event-triggering support."},{title:"Dependency Management",description:"Easily manage dependencies and deploy with reproducible environments."}],tags:["Machine Learning","AI","Data Science","MLOps","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i="$(PROJECT_NAME)_".concat(e.appServiceName,"-db");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.metadataServiceImage},env:["MF_METADATA_DB_HOST=".concat(i),"MF_METADATA_DB_PORT=5432","MF_METADATA_DB_USER=postgres","MF_METADATA_DB_PSWD=".concat(a),"MF_METADATA_DB_NAME=$(PROJECT_NAME)","MF_MIGRATION_ENDPOINTS_ENABLED=1","MF_METADATA_PORT=8080","MF_METADATA_HOST=0.0.0.0","MF_MIGRATION_PORT=8082"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"metatrader5",meta:{name:"MetaTrader5",description:"MetaTrader 5 (MT5) is a powerful, multi-functional trading platform designed for financial institutions, brokers, and individual traders. It supports trading in various financial markets, including Forex, stocks, futures, and CFDs. MT5 offers advanced charting tools, technical indicators, and automated trading capabilities through Expert Advisors (EAs). With a focus on speed, reliability, and flexibility, MT5 enables seamless market analysis, efficient trade execution, and comprehensive risk management. The platform supports multi-asset trading, backtesting, and a robust API for custom integrations.",instructions:null,changeLog:[{date:"2024-01-08",description:"First Release"},{date:"2025-06-05",description:"Update to 2.1"},{date:"2025-12-29",description:"Version bumped to 2.3"}],links:[{label:"Website",url:"https://www.metatrader5.com/en"},{label:"Documentation",url:"https://www.metatrader5.com/en/terminal/help"},{label:"Github",url:"https://github.com/gmag11/MetaTrader5-Docker-Image"},{label:"Docker Guide",url:"https://hub.docker.com/r/gmag11/metatrader5_vnc"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","userName","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"metatrader5"},appServiceImage:{type:"string",title:"App Service Image",default:"gmag11/metatrader5_vnc:2.3"},userName:{type:"string",title:"User Name",default:"admin"},password:{type:"string",title:"Password",default:"password"}}},benefits:[{title:"Advanced Trading Tools",description:"MT5 provides a comprehensive suite of tools for market analysis, trade execution, and automated trading strategies."},{title:"Multi-Asset Trading",description:"MT5 supports trading across Forex, stocks, futures, and CFDs, catering to diverse financial markets."},{title:"Customizable and Scalable",description:"MT5 offers robust APIs for integrations, as well as support for custom trading bots and indicators."}],features:[{title:"Advanced Charting",description:"MT5 includes multiple chart types, timeframes, and technical indicators for in-depth market analysis."},{title:"Automated Trading",description:"MT5 supports Expert Advisors (EAs) for automated trading strategies and algorithmic trading."},{title:"Multi-Device Access",description:"MT5 provides a seamless trading experience across desktop, mobile, and web platforms."},{title:"Economic Calendar",description:"MT5 includes a built-in economic calendar for tracking market events and planning trades effectively."}],tags:["Trading","Financial Markets","Automated Trading","Forex","Stocks"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["UID=1000","GID=1000","CUSTOM_USER=".concat(e.userName),"PASSWORD=".concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"metube",meta:{name:"MeTube",description:"MeTube is a web-based application that provides a user-friendly interface for the popular command-line tool, youtube-dl. It allows you to easily download videos from YouTube and dozens of other sites, right from your browser. The app supports playlist downloads, making it easy to grab an entire series of videos at once. It also offers a range of configuration options, allowing you to customize the download process to suit your needs. For instance, you can choose to save your downloads to a specific directory, separate audio-only downloads from video downloads, and even specify the filename template for your downloaded videos. MeTube also supports dark mode for a more comfortable viewing experience. The app runs in a Docker container, making it easy to deploy on any system that supports Docker.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2024-10-19",description:"Update to 2024-10-08"},{date:"2025-06-05",description:"Update to 2025-06-02"},{date:"2025-07-22",description:"Update to 2025-07-22"},{date:"2025-12-29",description:"Version bumped to 2025.12.27"},{date:"2026-02-21",description:"Version bumped to 2026.02.19"},{date:"2026-05-04",description:"Version bumped to 2026.04.28"}],links:[{label:"Documentation",url:"https://github.com/alexta69/metube"},{label:"Github",url:"https://github.com/alexta69/metube"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","downloadPath"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"metube"},appServiceImage:{type:"string",title:"App Service Image",default:"alexta69/metube:2026.04.28"},downloadPath:{type:"string",title:"Downloads Volume Name",default:"downloads"}}},benefits:[{title:"Easy Video Downloading",description:"MeTube is a web-based GUI for youtube-dl, allowing you to easily download videos from YouTube and dozens of other sites. It provides a user-friendly interface to manage your downloads without the need for complex command-line operations."},{title:"Playlist Support",description:"MeTube supports downloading entire playlists from YouTube, making it easy to grab all the videos from a playlist with just a few clicks."},{title:"Customizable Download Settings",description:"MeTube allows you to customize various download settings, such as the download directory, audio-only downloads, and more. You can also set the UI to dark mode for a more comfortable viewing experience."},{title:"Browser Extensions",description:"MeTube supports browser extensions, allowing you to send videos directly to MeTube with a simple right-click. This makes the process of downloading videos even more convenient."}],features:[{title:"Video Downloading",description:"MeTube allows you to download videos from YouTube and other sites. You can easily manage your downloads through the web-based GUI."},{title:"Playlist Support",description:"With MeTube, you can download entire playlists from YouTube. This feature makes it easy to grab all the videos from a playlist at once."},{title:"Customizable Settings",description:"MeTube provides various customizable settings, including the download directory, audio-only downloads, and more. You can also set the UI to dark mode."},{title:"Browser Extensions",description:"MeTube supports browser extensions for Chrome and Firefox. These extensions allow you to send videos directly to MeTube with a simple right-click."}],tags:["Media","Video Downloader","Web GUI"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}],mounts:[{type:"volume",name:e.downloadPath,mountPath:"/downloads"}]}}),{services:t}}},{slug:"milvus",meta:{name:"Milvus",description:"Milvus is an open-source vector database designed for AI applications and similarity search. It provides high-performance vector search capabilities and is optimized for handling large-scale vector data. Milvus supports various index types and search methods, making it ideal for applications like recommendation systems, image search, and natural language processing.",instructions:null,changeLog:[{date:"2025-03-27",description:"Initial template release (v2.0.2)"},{date:"2026-02-21",description:"Version bumped to v2.6.11"}],links:[{label:"Website",url:"https://milvus.io/"},{label:"Documentation",url:"https://milvus.io/docs/"},{label:"GitHub",url:"https://github.com/milvus-io/milvus"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","etcdImage","minioImage","minioAccessKey","minioSecretKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"milvus"},appServiceImage:{type:"string",title:"Milvus Image",default:"milvusdb/milvus:v2.6.11"},etcdImage:{type:"string",title:"ETCD Image",default:"quay.io/coreos/etcd:v3.5.0"},minioImage:{type:"string",title:"MinIO Image",default:"minio/minio:RELEASE.2020-12-03T00-03-10Z"},minioAccessKey:{type:"string",title:"MinIO Access Key",description:"Access key for MinIO",default:"minioadmin"},minioSecretKey:{type:"string",title:"MinIO Secret Key",description:"Secret key for MinIO",default:"minioadmin"}}},benefits:[{title:"Vector Search",description:"High-performance vector similarity search capabilities."},{title:"Scalability",description:"Designed for handling large-scale vector data."},{title:"Multiple Index Types",description:"Support for various index types and search methods."},{title:"AI Integration",description:"Optimized for AI and machine learning applications."}],features:[{title:"Vector Database",description:"Native support for vector data storage and search."},{title:"Distributed Architecture",description:"Scalable distributed architecture."},{title:"Rich APIs",description:"Multiple programming language support."},{title:"Monitoring",description:"Built-in monitoring and management tools."}],tags:["Database","Vector Database","AI","Search","Machine Learning"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["ETCD_ENDPOINTS=$(PROJECT_NAME)_".concat(e.appServiceName,"-etcd:2379"),"MINIO_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-minio:9000")].join("\n"),mounts:[{type:"volume",name:"milvus_data",mountPath:"/var/lib/milvus"}],deploy:{command:"milvus run standalone"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-etcd"),source:{type:"image",image:e.etcdImage},env:["ETCD_AUTO_COMPACTION_MODE=revision","ETCD_AUTO_COMPACTION_RETENTION=1000","ETCD_QUOTA_BACKEND_BYTES=4294967296"].join("\n"),ports:[{published:2379,target:2379,protocol:"tcp"}],mounts:[{type:"volume",name:"etcd_data",mountPath:"/etcd"}],deploy:{command:"etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),source:{type:"image",image:e.minioImage},env:["MINIO_ACCESS_KEY=".concat(e.minioAccessKey),"MINIO_SECRET_KEY=".concat(e.minioSecretKey)].join("\n"),mounts:[{type:"volume",name:"minio_data",mountPath:"/minio_data"}],deploy:{command:"minio server /minio_data"}}}),{services:t}}},{slug:"minecraft-server-bedrock",meta:{name:"Minecraft Bedrock Server",description:"The itzg/minecraft-bedrock-server app is designed to provide a seamless Minecraft Server experience for the Bedrock Edition. It automatically downloads the latest stable version of the Minecraft server at startup, ensuring you're always up-to-date with the game's latest features and improvements. The app also allows you to run or upgrade to any specific version or the latest snapshot, giving you full control over your gaming experience. If you're using Minecraft clients on consoles, mobile, or native Windows, the app offers a dedicated Bedrock Server for optimal performance. The standard server port, 19132, will be exposed on your host machine for easy access and gameplay.",instructions:null,changeLog:[{date:"2024-11-27",description:"First Release"},{date:"2025-06-05",description:"Update to 2025.5.0"},{date:"2025-12-29",description:"Version bumped to 2025.12.2"}],links:[{label:"Github",url:"https://github.com/itzg/docker-minecraft-bedrock-server"},{label:"Docker",url:"https://hub.docker.com/r/itzg/minecraft-bedrock-server"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"minecraft-server"},appServiceImage:{type:"string",title:"App Service Image",default:"itzg/minecraft-bedrock-server:2025.12.2"},serverName:{type:"string",title:"Server Name",default:"MyServer"},version:{type:"string",title:"Version",default:"LATEST"},gameMode:{type:"string",title:"Game Mode",default:"survival",oneOf:[{enum:["creative"],title:"Creative"},{enum:["survival"],title:"Survival"},{enum:["adventure"],title:"Adventure"},{enum:["spectator"],title:"Spectator"}]},difficulty:{type:"string",title:"Difficulty",default:"easy",oneOf:[{enum:["peaceful"],title:"Peaceful"},{enum:["easy"],title:"Easy"},{enum:["normal"],title:"Normal"},{enum:["hard"],title:"Hard"}]},maxPlayers:{type:"number",title:"Max Players",default:20},viewDistance:{type:"number",title:"View Distance",default:10},eula:{type:"boolean",title:"Please accept the Minecraft EULA",default:!0},onlineMode:{type:"boolean",title:"Online Mode",default:!1},serverPort:{type:"number",title:"Server Port",default:19132}}},benefits:[{title:"Latest Minecraft Versions",description:"The app automatically downloads the latest stable version of Minecraft Server at startup, ensuring you always have the most recent features and updates."},{title:"Flexible Version Support",description:"You can run or upgrade to any specific version of Minecraft Server or the latest snapshot, giving you the flexibility to choose the version that best suits your needs."},{title:"Dedicated Server for Different Platforms",description:"The app provides a dedicated server for Minecraft clients running on consoles, mobile, or native Windows, ensuring a smooth and seamless gaming experience across different platforms."}],features:[{title:"Dynamic Version Support",description:"The app supports dynamic versioning, automatically downloading the latest stable version of Minecraft Server at startup."},{title:"Server Types and Modpack Support",description:"The app supports various server types and modpacks, enhancing your Minecraft gaming experience with additional features and functionalities."},{title:"Dedicated Server for Different Platforms",description:"The app provides a dedicated server for Minecraft clients running on consoles, mobile, or native Windows, ensuring compatibility and a smooth gaming experience."}],tags:["Gaming","Developer Tools"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[],a=[{published:e.serverPort||19132,target:e.serverPort||19132,protocol:"udp"}],i=["VERSION=".concat(e.version||""),"SERVER_NAME=".concat(e.serverName||""),"MODE=".concat(e.gameMode||""),"DIFFICULTY=".concat(e.difficulty||""),"MAX_PLAYERS=".concat(e.maxPlayers||""),"VIEW_DISTANCE=".concat(e.viewDistance||""),"EULA=".concat(e.eula),"SERVER_PORT=".concat(e.serverPort||19132),"ONLINE_MODE=".concat(e.onlineMode||!1)];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},ports:a,env:i.join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"minecraft-server",meta:{name:"Minecraft Server",description:"The itzg/minecraft-server app is designed to provide a seamless Minecraft Server experience. It automatically downloads the latest stable version of the Minecraft server at startup, ensuring you're always up-to-date with the game's latest features and improvements. The app also allows you to run or upgrade to any specific version or the latest snapshot, giving you full control over your gaming experience. If you're using Minecraft clients on consoles, mobile, or native Windows, the app offers a dedicated Bedrock Server for optimal performance. The standard server port, 25565, will be exposed on your host machine for easy access and gameplay.",instructions:null,changeLog:[{date:"2023-03-18",description:"First Release"},{date:"2024-10-19",description:"Update to 2024.10.2"},{date:"2025-02-28",description:"Version bumped to 2025.2.1"},{date:"2025-12-29",description:"Version bumped to 2025.12.1"}],links:[{label:"Github",url:"https://github.com/itzg/docker-minecraft-server"},{label:"Docker",url:"https://hub.docker.com/r/itzg/minecraft-server"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"minecraft-server"},appServiceImage:{type:"string",title:"App Service Image",default:"itzg/minecraft-server:2025.12.1"},serverName:{type:"string",title:"Server Name",default:"MyServer"},version:{type:"string",title:"Version",default:"LATEST"},type:{type:"string",title:"Server Types",default:"VANILLA"},motd:{type:"string",title:"Message of the Day",default:"Minecraft Server powered by \xa7aEasypanel\xa7r"},iconUrl:{type:"string",title:"Icon URL",default:"https://cdn.berksmbl.com/easypanel-icon.png"},gameMode:{type:"string",title:"Game Mode",default:"survival",oneOf:[{enum:["creative"],title:"Creative"},{enum:["survival"],title:"Survival"},{enum:["adventure"],title:"Adventure"},{enum:["spectator"],title:"Spectator"}]},difficulty:{type:"string",title:"Difficulty",default:"easy",oneOf:[{enum:["peaceful"],title:"Peaceful"},{enum:["easy"],title:"Easy"},{enum:["normal"],title:"Normal"},{enum:["hard"],title:"Hard"}]},maxPlayers:{type:"number",title:"Max Players",default:20},maxWorldSize:{type:"number",title:"Max World Size",default:1e4},viewDistance:{type:"number",title:"View Distance",default:10},maxBuildHeight:{type:"number",title:"Max Build Height",default:256},maxTickTime:{type:"number",title:"Max Tick Time",default:6e4},eula:{type:"boolean",title:"Please accept the Minecraft EULA",default:!0},allowNether:{type:"boolean",title:"Allow Nether",default:!0},announcePlayerAchievements:{type:"boolean",title:"Announce Player Achievements",default:!0},generateStructures:{type:"boolean",title:"Generate Structures",default:!0},pvp:{type:"boolean",title:"PVP Mode",default:!0},forceGamemode:{type:"boolean",title:"Force Gamemode",default:!1},hardcore:{type:"boolean",title:"Hardcore",default:!1},enableCommandBlock:{type:"boolean",title:"Enable Command Block",default:!0},spawnAnimals:{type:"boolean",title:"Spawn Animals",default:!0},spawnMonsters:{type:"boolean",title:"Spawn Monsters",default:!0},spawnNpcs:{type:"boolean",title:"Spawn NPCs",default:!0},snooperEnabled:{type:"boolean",title:"Snooper Enabled",default:!1},onlineMode:{type:"boolean",title:"Online Mode",default:!1},enableRcon:{type:"boolean",title:"Enable RCON",default:!1},enableQuery:{type:"boolean",title:"Enable Query",default:!1},serverPort:{type:"number",title:"Server Port",default:25565},queryPort:{type:"number",title:"Query Port",default:25565},rconPort:{type:"number",title:"RCON Port",default:25575},rconPassword:{type:"string",title:"RCON Password"}}},benefits:[{title:"Latest Minecraft Versions",description:"The app automatically downloads the latest stable version of Minecraft Server at startup, ensuring you always have the most recent features and updates."},{title:"Flexible Version Support",description:"You can run or upgrade to any specific version of Minecraft Server or the latest snapshot, giving you the flexibility to choose the version that best suits your needs."},{title:"Dedicated Server for Different Platforms",description:"The app provides a dedicated server for Minecraft clients running on consoles, mobile, or native Windows, ensuring a smooth and seamless gaming experience across different platforms."}],features:[{title:"Dynamic Version Support",description:"The app supports dynamic versioning, automatically downloading the latest stable version of Minecraft Server at startup."},{title:"Server Types and Modpack Support",description:"The app supports various server types and modpacks, enhancing your Minecraft gaming experience with additional features and functionalities."},{title:"Dedicated Server for Different Platforms",description:"The app provides a dedicated server for Minecraft clients running on consoles, mobile, or native Windows, ensuring compatibility and a smooth gaming experience."}],tags:["Gaming","Developer Tools"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[],a=[{published:e.serverPort||25565,target:e.serverPort||25565,protocol:"tcp"}],i=["VERSION=".concat(e.version||""),"TYPE=".concat(e.type||""),"SERVER_NAME=".concat(e.serverName||""),"MOTD=".concat(e.motd||""),"ICON=".concat(e.iconUrl||""),"MODE=".concat(e.gameMode||""),"DIFFICULTY=".concat(e.difficulty||""),"MAX_PLAYERS=".concat(e.maxPlayers||""),"MAX_WORLD_SIZE=".concat(e.maxWorldSize||""),"VIEW_DISTANCE=".concat(e.viewDistance||""),"MAX_BUILD_HEIGHT=".concat(e.maxBuildHeight||""),"MAX_TICK_TIME=".concat(e.maxTickTime||""),"EULA=".concat(e.eula),"ALLOW_NETHER=".concat(e.allowNether),"ANNOUNCE_PLAYER_ACHIEVEMENTS=".concat(e.announcePlayerAchievements),"GENERATE_STRUCTURES=".concat(e.generateStructures),"PVP=".concat(e.pvp),"FORCE_GAMEMODE=".concat(e.forceGamemode),"HARDCORE=".concat(e.hardcore),"ENABLE_COMMAND_BLOCK=".concat(e.enableCommandBlock),"SPAWN_ANIMALS=".concat(e.spawnAnimals),"SPAWN_MONSTERS=".concat(e.spawnMonsters),"SPAWN_NPCS=".concat(e.spawnNpcs),"SNOOPER_ENABLED=".concat(e.snooperEnabled),"ONLINE_MODE=".concat(e.onlineMode),"ENABLE_RCON=".concat(e.enableRcon),"ENABLE_QUERY=".concat(e.enableQuery),"SERVER_PORT=".concat(e.serverPort||25565)];return e.enableQuery&&(i.push("QUERY_PORT=".concat(e.queryPort||25565)),a.push({published:e.queryPort||25565,target:e.queryPort||25565,protocol:"udp"})),e.enableRcon&&(i.push("RCON_PORT=".concat(e.rconPort||25575),"RCON_PASSWORD=".concat(e.rconPassword||y(10))),a.push({published:e.rconPort||25575,target:e.rconPort||25575,protocol:"tcp"})),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},ports:a,env:i.join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"mini-qr",meta:{name:"MiniQR",description:"MiniQR is a lightweight, self-hostable QR code generator built with Vue 3 and Vite. It lets you create fully customised QR codes \u2014 changing dot shapes, colours, corner styles, embedded logos, and decorative frames \u2014 and export them as PNG or SVG. Presets, batch export, and a clean single-page interface make it practical for both personal and branded use.",instructions:'After deployment, open your service URL. No login is required. Enter any URL\nor text in the "Data to encode" field to generate a QR code. Use the\ncustomisation panel on the right to adjust colours, dot styles, and frame\nsettings. Download the result as PNG or SVG.\n\nNote: all VITE_* configuration variables (default presets, branding, etc.)\nare baked into the pre-built image at build time and cannot be changed at\nruntime. To use custom presets or hide credits, build your own image from\nthe source repository and pass the desired build arguments.\n',changeLog:[{date:"2026-06-23",description:"Initial release (v0.31.0)"}],links:[{label:"Website",url:"https://mini-qr-code-generator.vercel.app"},{label:"GitHub",url:"https://github.com/lyqht/mini-qr"},{label:"Documentation",url:"https://github.com/lyqht/mini-qr/blob/main/SELF_HOSTING.md"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mini-qr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/lyqht/mini-qr:v0.31.0"}}},benefits:[{title:"No Account or Backend Required",description:"Fully static single-page app \u2014 deploy once and generate QR codes instantly with no server-side processing or user accounts."},{title:"Full Visual Customisation",description:"Control every pixel of your QR code \u2014 dot shapes, corner styles, colours, embedded logos, and decorative text frames."},{title:"Export as PNG or SVG",description:"Download QR codes in high-resolution PNG or scalable SVG format, ready for print, web, or presentation use."}],features:[{title:"QR Code Generator",description:"Encode URLs, plain text, Wi-Fi credentials, contact cards, or any other data into a scannable QR code in seconds."},{title:"Style Presets",description:"Save and reload named style configurations so you can apply consistent branding across multiple QR codes quickly."},{title:"Batch Export",description:"Generate and download multiple QR codes at once from a CSV data source, each using the same visual style."},{title:"Frame Designer",description:"Add a decorative frame around the QR code with custom text, colours, border radius, and padding for print-ready output."},{title:"Internationalisation",description:"Interface available in multiple languages via Vue i18n with community translations managed through Crowdin."}],tags:["QR Code","Generator","Utilities","Self-hosted","Productivity"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"miniflux",meta:{name:"Miniflux",description:"Miniflux is a minimalist and opinionated feed reader designed to prioritize content and readability. It optimizes the page layout, fonts, and colors to ensure that they are screen-friendly. If you have feeds that display only a summary, Miniflux fetches the original article automatically. The app is designed with simplicity in mind, focusing on essential features and avoiding bloated software. It is fast and efficient, allowing you to navigate through the application using keyboard shortcuts and quickly scan your unread items with a lightweight user interface. Miniflux also respects your privacy, ensuring that no one resells your private data or tracks your usage. It automatically removes pixel trackers and does not feature any advertising or user tracking. Miniflux is a free, open-source project distributed under the permissive Apache 2.0 License.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2024-10-19",description:"Version Updated to 2.2.1"},{date:"2025-02-28",description:"Version bumped to 2.2.6"},{date:"2025-06-05",description:"Update to 2.2.9"},{date:"2025-07-22",description:"Update to 2.2.10"},{date:"2025-12-29",description:"Update to 2.2.15"},{date:"2026-02-21",description:"Update to 2.2.17"},{date:"2026-05-04",description:"Update to 2.2.19"}],links:[{label:"Website",url:"https://miniflux.app/"},{label:"Documentation",url:"https://miniflux.app/docs/"},{label:"Github",url:"https://github.com/miniflux"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["adminUsername","adminPassword","appServiceName","appServiceImage","databaseServiceName"],properties:{adminUsername:{type:"string",title:"Admin Username"},adminPassword:{type:"string",title:"Admin Password"}
1,appServiceName:{type:"string",title:"App Service Name",default:"miniflux"},appServiceImage:{type:"string",title:"App Service Image",default:"miniflux/miniflux:2.2.19"},databaseServiceName:{type:"string",title:"Database Service Name",default:"miniflux-db"}}},benefits:[{title:"Optimized for Readability",description:"Miniflux is designed with a page layout, fonts, and colors that are easy on the eyes, making it comfortable to read on a screen. The focus is on the content, ensuring a distraction-free reading experience."},{title:"Privacy Guaranteed",description:"Miniflux respects your privacy. It does not resell your private data or track your usage. It also automatically removes pixel trackers, ensuring a secure and private reading experience."},{title:"Fast and Efficient",description:"Miniflux is designed to be fast and efficient. It has keyboard shortcuts for easy navigation and a lightweight user interface that allows you to quickly scan through your unread items."}],features:[{title:"Minimalist Feed Reader",description:"Miniflux is a minimalist and opinionated feed reader. It focuses on simplicity, avoiding bloated features and providing only what's necessary for a smooth reading experience."},{title:"Fetch Original Article Contents",description:"Miniflux can fetch the original article contents for feeds that display only a summary. This ensures that you get the full content of the articles you're interested in."},{title:"Keyboard Shortcuts",description:"Miniflux supports keyboard shortcuts, allowing you to easily navigate through the application. This makes it more productive and efficient to use."}],tags:["RSS","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,"/$(PROJECT_NAME)?sslmode=disable"),"RUN_MIGRATIONS=1","CREATE_ADMIN=1","ADMIN_USERNAME=".concat(e.adminUsername),"ADMIN_PASSWORD=".concat(e.adminPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"minio",meta:{name:"Minio",description:"Minio is an open-source, self-hosted object storage solution designed to empower users with efficient data storage and management capabilities. Prioritizing control and privacy, Minio enables individuals and organizations to build their private cloud infrastructure. With its user-friendly interface and robust features, Minio allows seamless storage and retrieval of large amounts of data while offering secure access controls.",instructions:null,changeLog:[{date:"2024-01-03",description:"first release"}],links:[{label:"Documentation",url:"https://min.io/docs/minio/linux/index.html"},{label:"Github",url:"https://github.com/minio/minio"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"},{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"minio"},appServiceImage:{type:"string",title:"App Service Image",default:"minio/minio:latest"},username:{type:"string",title:"Username",default:"admin"},password:{type:"string",title:"Password",default:"password"}}},logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MINIO_SERVER_URL=https://$(EASYPANEL_DOMAIN)","MINIO_ROOT_USER=".concat(e.username),"MINIO_ROOT_PASSWORD=".concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/data"}],domains:[{host:"console-$(EASYPANEL_DOMAIN)",port:9001},{host:"$(EASYPANEL_DOMAIN)",port:9e3}],deploy:{command:'minio server /data --console-address ":9001"'}}}),{services:t}}},{slug:"mirotalk",meta:{name:"MiroTalk P2P",description:"MiroTalk P2P is a powerful WebRTC-based peer-to-peer video conferencing platform that enables secure, real-time communication directly between participants without requiring external servers for media transmission. It offers advanced features like screen sharing, file transfer, chat messaging, and room protection, making it perfect for businesses, educational institutions, and personal use that require privacy-focused video conferencing solutions.",instructions:null,changeLog:[{date:"2025-07-23",description:"Initial release"}],links:[{label:"Website",url:"https://p2p.mirotalk.com"},{label:"Documentation",url:"https://docs.mirotalk.com"},{label:"GitHub",url:"https://github.com/miroslavpejic85/mirotalk"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mirotalk"},appServiceImage:{type:"string",title:"App Service Image",default:"mirotalk/p2p:latest"}}},benefits:[{title:"Privacy-Focused Communication",description:"Peer-to-peer architecture ensures your video calls remain private and secure, with no data passing through external servers."},{title:"Zero Installation Required",description:"Web-based platform that works directly in browsers without requiring participants to download or install any software."},{title:"Advanced Collaboration Tools",description:"Built-in screen sharing, file transfer, interactive whiteboard, and real-time chat enhance meeting productivity."},{title:"Scalable Room Management",description:"Support for multiple participants with configurable room limits and host protection features for controlled access."},{title:"Enterprise-Ready Security",description:"OIDC authentication, JWT tokens, IP whitelisting, and host protection provide enterprise-grade security controls."},{title:"Extensive Integration Options",description:"Built-in support for Slack, Mattermost, ChatGPT, email notifications, and analytics tracking for seamless workflow integration."}],features:[{title:"WebRTC Peer-to-Peer Video",description:"High-quality video conferencing using WebRTC technology for direct participant-to-participant communication without server relay."},{title:"Screen Sharing & Recording",description:"Share your screen, specific applications, or browser tabs with participants, plus recording capabilities for important meetings."},{title:"Interactive Whiteboard",description:"Collaborative whiteboard tool for drawing, annotations, and visual collaboration during meetings."},{title:"File Transfer",description:"Secure peer-to-peer file sharing between participants without uploading to external servers."},{title:"Real-time Chat",description:"Text messaging with emoji support, private messaging, and chat history for enhanced communication."},{title:"Room Protection",description:"Password-protected rooms, host authentication, and user access controls for secure meeting environments."},{title:"STUN/TURN Support",description:"Configurable STUN and TURN servers for reliable connections across different network configurations and firewalls."},{title:"Multi-Platform Support",description:"Cross-platform compatibility across desktop browsers, mobile devices, and tablets for maximum accessibility."},{title:"API Integration",description:"RESTful API for programmatic room creation and management, plus webhook support for external integrations."},{title:"Analytics & Monitoring",description:"Built-in analytics, error tracking with Sentry, and customizable monitoring for usage insights and troubleshooting."}],tags:["Video Conferencing","WebRTC","Peer-to-Peer","Communication","Collaboration","Screen Sharing","Real-time","Privacy","Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["NODE_ENV=development","HOST=0.0.0.0","PORT=3000","TRUST_PROXY=true","TZ=UTC","LOGS_DEBUG=true","LOGS_COLORS=true","LOGS_JSON=true","LOGS_JSON_PRETTY=true","CORS_ORIGIN=*",'CORS_METHODS=["GET", "POST"]',"IP_WHITELIST_ENABLED=false",'IP_WHITELIST_ALLOWED=["127.0.0.1", "::1"]',"OIDC_ENABLED=false","OIDC_ALLOW_ROOMS_CREATION_FOR_AUTH_USERS=true","OIDC_BASE_URL_DYNAMIC=false","OIDC_ISSUER_BASE_URL=https://accounts.google.com","OIDC_BASE_URL=$(PRIMARY_DOMAIN)","OIDC_CLIENT_ID=1234567890","OIDC_CLIENT_SECRET=1234567890","OIDC_AUTH_REQUIRED=false","OIDC_AUTH_LOGOUT=true","SESSION_SECRET=1234567890","ROOM_MAX_PARTICIPANTS=8","HOST_USER_AUTH=false",'HOST_USERS=[{"username": "admin", "password": "admin"},{"username": "guest", "password": "guest"}]',"JWT_KEY=".concat(a),"JWT_EXP=1h",'PRESENTERS=["Admin User"]',"NGROK_ENABLED=false","NGROK_AUTH_TOKEN=1234567890","STUN_SERVER_ENABLED=true","TURN_SERVER_URL=turn:a.relay.metered.ca:443","TURN_SERVER_USERNAME=e8dd65b92c62d3e36cafb807","TURN_SERVER_CREDENTIAL=uWdWNmkhvyqTEswO","IP_LOOKUP_ENABLED=false","API_KEY_SECRET=1234567890",'API_DISABLED=["token", "meetings"]',"SURVEY_ENABLED=true","SURVEY_URL=https://www.questionpro.com/t/AUs7VZq00L","REDIRECT_ENABLED=false","REDIRECT_URL=https://p2p.mirotalk.c
1om","SENTRY_ENABLED=false","SENTRY_LOG_LEVELS=error","SENTRY_DSN=https://[email protected]/1234567890","SENTRY_TRACES_SAMPLE_RATE=0.5","SLACK_ENABLED=false","SLACK_SIGNING_SECRET=1234567890","MATTERMOST_ENABLED=false","MATTERMOST_SERVER_URL=https://yourmattermostserver.com","MATTERMOST_USERNAME=yourmattermostusername","MATTERMOST_PASSWORD=yourmattermostpassword","MATTERMOST_TOKEN=1234567890","MATTERMOST_ROOM_TOKEN_EXPIRE=15m","CHATGPT_ENABLED=false","CHATGPT_BASE_PATH=https://api.openai.com/v1/","CHATGPT_APIKEY=1234567890","CHATGPT_MODEL=gpt-3.5-turbo","CHATGPT_MAX_TOKENS=1000","CHATGPT_TEMPERATURE=0","EMAIL_ALERT=false","EMAIL_HOST=smtp.gmail.com","EMAIL_PORT=587","EMAIL_USERNAME=your_username","EMAIL_PASSWORD=your_password","[email protected]","[email protected]","STATS_ENABLED=true","STATS_SCR=https://stats.mirotalk.com/script.js"].join("\n")}}),{services:t}}},{slug:"mmp",meta:{name:"MMP",description:"Maker Management Platform (MMP) is an open-source self-hosted system for organising and managing 3D printing and maker projects. It provides a web UI with a visual library of STL and 3MF files, automatically renders 3D model thumbnails, manages project collections with linked assets (models, slices, images, and documents), and integrates with Klipper and OctoPrint to send slices directly to your printer. Projects can be imported from Thingiverse via the MMP Companion browser extension. The stack is two containers \u2014 a Go backend agent and a React frontend \u2014 with all state stored in local volumes.",instructions:"Open the UI at your domain after deployment. On first load you will see an empty library. The agent scans the /library volume for STL, 3MF, and other maker files and renders 3D previews automatically in the background.\nTo use slicer integration, ensure port 8000 on the agent service is reachable from your slicer (it is published as a host port). See the MMP documentation for PrusaSlicer / Orca Slicer configuration.\nTo import projects from Thingiverse, add your Thingiverse API token to the thingiverseToken field, or edit /data/config.toml inside the agent container after first run.",changeLog:[{date:"2026-06-26",description:"First Release"}],links:[{label:"GitHub (Agent)",url:"https://github.com/maker-management-platform/agent"},{label:"GitHub (UI)",url:"https://github.com/maker-management-platform/mmp-ui"},{label:"Documentation",url:"https://github.com/Maker-Management-Platform/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","agentServiceImage","uiServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mmp"},agentServiceImage:{type:"string",title:"Agent Image",default:"ghcr.io/maker-management-platform/agent:v1.3.2"},uiServiceImage:{type:"string",title:"UI Image",default:"ghcr.io/maker-management-platform/mmp-ui:v1.3.0"},thingiverseToken:{type:"string",title:"Thingiverse API Token",description:"Optional. Allows MMP to import projects directly from Thingiverse. Get a token at https://www.thingiverse.com/apps/create.",default:""},modelRenderColor:{type:"string",title:"3D Model Render Color",description:"Hex colour used when rendering 3D model preview images.",default:"#167DF0"}}},benefits:[{title:"Visual 3D Library",description:"MMP automatically scans your library folder and renders colour-coded 3D preview thumbnails for every STL and 3MF file, giving you a visual grid of all your models without opening a slicer."},{title:"Send Slices to Printer",description:"Integrates with Klipper and OctoPrint so you can send a slice file directly to your printer from within the MMP UI \u2014 no file transfers or USB sticks required."},{title:"Project Collections",description:"Group related files into projects and attach any combination of models, slice files, images, and documents. Everything stays together and searchable in one place."},{title:"Import from Thingiverse",description:"Use the MMP Companion browser extension or the built-in Thingiverse importer (with an API token) to pull projects directly into your local library."}],features:[{title:"Automatic Model Rendering",description:"The Go agent renders STL and 3MF files to PNG thumbnails in parallel using a configurable worker pool (default 5 workers) so large libraries are processed quickly."},{title:"Asset Management",description:"Each project can hold multiple asset types \u2014 models, print profiles, reference images, and documents \u2014 all browsable from a single project detail view."},{title:"Printer Integration",description:"Add Klipper or OctoPrint printer endpoints and upload slice files (G-code) directly from the MMP UI without leaving the browser."},{title:"Thingiverse Import",description:"Provide a Thingiverse API token to import public projects (models, images, descriptions) directly into your local MMP library."},{title:"Slicer Integration",description:"Configure PrusaSlicer or Orca Slicer to post-process prints through MMP via port 8000 for a seamless library-to-printer workflow."}],tags:["3D Printing","Maker","Self-Hosted","Productivity","File Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a="".concat(e.appServiceName,"-agent");return t.push({type:"app",data:{serviceName:a,source:{type:"image",image:e.agentServiceImage},env:["LIBRARY_PATH=/library","DATA_PATH=/data"].concat(Ve(e.thingiverseToken?["THINGIVERSE_TOKEN=".concat(e.thingiverseToken)]:[]),Ve(e.modelRenderColor?["MODEL_RENDER_COLOR=".concat(e.modelRenderColor)]:[])).join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],ports:[{protocol:"tcp",published:8e3,target:8e3}],mounts:[{type:"volume",name:"library",mountPath:"/library"},{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.uiServiceImage},env:["AGENT_ADDRESS=$(PROJECT_NAME)_".concat(a,":8000")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}]}}),{services:t}}},{slug:"monetr",meta:{name:"Monetr",description:"Monetr is a self-hosted personal finance management application that helps you track your spending, manage budgets, and gain insights into your financial habits. Built with modern architecture, Monetr provides a comprehensive solution for managing your personal finances with features like transaction tracking, budget management, spending analysis, and financial goal setting. The system uses PostgreSQL for data persistence and Valkey (Redis-compatible) for caching and session management. Perfect for individuals looking for a self-hosted alternative to commercial personal finance applications.",instructions:null,changeLog:[{date:"2025-01-28",description:"Initial Template Release"},{date:"2026-05-04",description:"Version bumped to 1.13.3"}],links:[{label:"GitHub",url:"https://github.com/monetr/monetr"},{label:"Website",url:"https://monetr.app"},{label:"Documentation",url:"https://monetr.app/documentation/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","valkeyImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"monetr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/monetr/monetr:1.13.3"},valkeyImage:{type:"string",title:"Valkey Image",default:"valkey/valkey:9.0.2",description:"Valkey (Redis-compatible) image version"},allowSignUp:{type:"string",title:"Allow Sign Up",default:"true",description:"Allow new user registrations (recommended to disable if exposed to public internet)"},storageEnabled:{type:"string",title:"Storage Enabled",default:"true",description:"Enable file storage functionality"},storageProvider:{type:"string",title:"Storage Provider",default:"filesystem",description:"Storage provider type (e.g., filesystem, s3)"}}},benefits:[{title:"Personal Finance Management",description:"Track your spending, manage budgets, and gain insights into your financial habits with a comprehensive personal finance application."},{title:"Self-Hosted Solution",description:"Keep your financial data private and under your control with a self-hosted deployment."},{title:"Modern Architecture",description:"Built with PostgreSQL for reliable data persistence and Valkey for efficient caching and session management."},{title:"Automatic Migrations",description:"Database migrations run automatically on startup, ensuring your database schema is always up to date."}],features:[{title:"Transaction Tracking",description:"Track and categorize your income and expenses with detailed transaction management."},{title:"Budget Management",description:"Create and manage budgets to help you stay on track with your financial goals."},{title:"Spending Analysis",description:"Analyze your spending patterns with detailed reports and visualizations."},{title:"PostgreSQL Database",description:"Reliable PostgreSQL database for persistent storage of all financial data and user information."},{title:"Valkey Caching",description:"Valkey (Redis-compatible) for efficient caching and session management, improving application performance."},{title:"Certificate Generation",description:"Automatically generates SSL certificates on startup for secure communication."},{title:"Web-Based Interface",description:"Access and manage your finances through a modern web interface accessible on port 4000."}],tags:["Finance","Personal Finance","Budgeting","Self-Hosted","PostgreSQL","Valkey","Docker"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-valkey"),source:{type:"image",image:e.valkeyImage}}});var i=["MONETR_ALLOW_SIGN_UP=".concat(e.allowSignUp||"true"),"MONETR_PG_USERNAME=postgres","MONETR_PG_PASSWORD=".concat(a),"MONETR_PG_DATABASE=$(PROJECT_NAME)","MONETR_PG_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"MONETR_REDIS_ENABLED=true","MONETR_REDIS_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-valkey"),"MONETR_STORAGE_ENABLED=".concat(e.storageEnabled||"true"),"MONETR_STORAGE_PROVIDER=".concat(e.storageProvider||"filesystem")];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}],env:i.join("\n"),deploy:{command:"/usr/bin/monetr serve --migrate --generate-certificates"},mounts:[{type:"volume",name:"data",mountPath:"/etc/monetr"}]}}),{services:t}}},{slug:"mongo-express",meta:{name:"Mongo Express",description:"mongo-express is a web-based MongoDB admin interface designed with Node.js, Express, and Bootstrap3. It allows you to connect to multiple databases, view, add, delete databases, and manage collections. You can also view, add, update, and delete documents within these collections. The app supports previewing audio, video, and image assets inline in the collection view. Large or nested objects are collapsible for easy overview, and big document properties are loaded on-demand to keep the collection view fast. The app also supports GridFS, enabling you to add, get, and delete incredibly large files. It uses BSON data types in documents and is mobile responsive, thanks to Bootstrap 3. The app also supports connection and authentication to individual databases, as well as admin authentication to view all databases. It includes features for database blackl
1ist/whitelist, custom CA, and CA validation disabling, and supports replica sets.",instructions:null,changeLog:[{date:"2023-07-10",description:"First Release"},{date:"2025-06-05",description:"Update to 1.0.2-20-alpine3.19"}],links:[{label:"Github",url:"https://github.com/mongo-express/mongo-express"},{label:"Docker",url:"https://hub.docker.com/_/mongo-express/"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appMongoUrl","appServiceName","appServiceImage"],properties:{appMongoUrl:{type:"string",title:"Mongo URL",description:"mongodb://admin:pass@localhost:27017/db?ssl=false"},appAuthUsername:{type:"string",title:"Username"},appAuthPassword:{type:"string",title:"Password"},appServiceName:{type:"string",title:"App Service Name",default:"mongo-express"},appServiceImage:{type:"string",title:"App Service Image",default:"mongo-express:1.0.2-20-alpine3.19"}}},benefits:[{title:"Efficient Database Management",description:"mongo-express is a web-based MongoDB admin interface that allows you to efficiently manage your databases. You can connect to multiple databases, view, add, delete databases, and authenticate to individual databases."},{title:"Comprehensive Collection Management",description:"The app provides comprehensive collection management features. You can view, add, rename, and delete collections. It also allows you to view, add, update, and delete documents within the collections."},{title:"Large File Support",description:"With GridFS support, mongo-express allows you to add, get, and delete incredibly large files. This makes it a suitable tool for managing large datasets."},{title:"Mobile Responsive",description:"mongo-express is mobile responsive, making it easy to manage your databases even when you're on the go. It works passably on small screens, providing you with flexibility and convenience."}],features:[{title:"Database and Collection Management",description:"mongo-express allows you to connect to multiple databases, view, add, delete databases, view, add, rename, delete collections, and view, add, update, delete documents."},{title:"Large File Handling",description:"The app supports GridFS, enabling you to add, get, and delete incredibly large files. It also features async on-demand loading of big document properties to keep the collection view fast."},{title:"Asset Preview",description:"mongo-express allows you to preview audio, video, and image assets inline in the collection view. This feature enhances your user experience by providing a quick overview of your assets."},{title:"Data Type Support",description:"mongo-express supports the use of BSON data types in documents, providing you with flexibility in data management."},{title:"Authentication Features",description:"The app allows you to connect and authenticate to individual databases. You can also authenticate as an admin to view all databases."},{title:"Customization Options",description:"mongo-express provides various customization options, including database blacklist/whitelist, custom CA, and CA validation disabling. It also supports replica sets."}],tags:["Databases","Developer Tools"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png","screenshot4.png"]},generate:function(e){var t=[],a=["ME_CONFIG_MONGODB_URL=".concat(e.appMongoUrl)];return e.appAuthPassword&&a.push("ME_CONFIG_BASICAUTH=true","ME_CONFIG_BASICAUTH_USERNAME=".concat(e.appAuthUsername||"admin"),"ME_CONFIG_BASICAUTH_PASSWORD=".concat(e.appAuthPassword)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}],deploy:{command:"sleep 60; /docker-entrypoint.sh"},env:a.join("\n")}}),{services:t}}},{slug:"monica",meta:{name:"Monica",description:"OfficeLife is an all-in-one tool designed to manage a company efficiently. It serves as your personal CRM, helping you organize and follow-up on your social interactions, thereby strengthening your relationships. With Monica, you can easily log and remember important details about your friends, family, and colleagues. It allows you to store everything you know about your loved one
1s in one place, from their work information, family details, activities you've done together, to reminders about important dates. Monica is designed for busy individuals striving to maintain a good work-life balance. It's a private space, free from ads or malicious software, where you can safely document what you know about who you love. Monica is open source, ensuring transparency and security.",instructions:null,changeLog:[{date:"2023-03-17",description:"First Release"},{date:"2025-06-05",description:"Update to 5.0-apache"}],links:[{label:"Website",url:"https://monicahq.com"},{label:"Github",url:"https://github.com/monicahq/monica"},{label:"Docker",url:"https://hub.docker.com/_/monica"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","redisServiceName","databaseServiceName","databaseType"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"monica"},appServiceImage:{type:"string",title:"App Service Image",default:"monica:5.0-apache"},redisServiceName:{type:"string",title:"Redis Service Name",default:"monica-redis"},databaseServiceName:{type:"string",title:"Database Service Name",default:"monica-db"},databaseType:{type:"string",title:"Database Type",default:"mariadb",oneOf:[{enum:["mariadb"],title:"MariaDB"},{enum:["mysql"],title:"MySQL"}]},databasePrefix:{type:"string",title:"Database Prefix"},databaseUseUtf8mb4:{type:"boolean",title:"Database use utf8mb4",default:!0},monicaAppDisableSignup:{type:"boolean",title:"Disable Signup",default:!0},monicaCheckVersion:{type:"boolean",title:"Check Version",default:!0}}},benefits:[{title:"Strengthen Your Relationships",description:"OfficeLife, our new open source product, is designed to help you manage your personal relationships more effectively. It allows you to log and remember important details about your loved ones, helping you to be a better friend, family member, or spouse."},{title:"Organize Your Social Interactions",description:"With OfficeLife, you can easily organize your social interactions. It provides a simple interface to store everything you know about your loved ones, from their work information to the activities you've done together."},{title:"Manage Your Time",description:"OfficeLife is designed for busy people trying to find a good work/life balance. It helps you remember to call a friend, wish a nephew a happy birthday, or invite someone special for dinner next week."},{title:"Secure and Private",description:"OfficeLife is a private place for your eyes only, without any ads or malicious software. You can safely document what you know about who you love. And if you want another level of security, you can always install OfficeLife on a server that you own, for free."}],features:[{title:"Contact Management",description:"OfficeLife allows you to add and manage contacts, define relationships between contacts, and manage debts. It also provides the ability to add notes to a contact and record how you met someone."},{title:"Reminders and Activities",description:"With OfficeLife, you can set automatic reminders for birthdays and stay in touch with a contact by sending reminders at a given interval. It also allows you to manage activities with a contact."},{title:"Gifts and Tasks",description:"OfficeLife provides features for managing gifts given and received and ideas for gifts. It also allows you to manage tasks."},{title:"Journal and Document Upload",description:"OfficeLife includes a basic journal feature that allows you to record how your day went. It also allows you to upload documents and photos."},{title:"Data Export and Import",description:"OfficeLife provides features for exporting and importing data. You can export contacts as vCards and define custom genders and activity types."}],tags:["CRM","Productivity"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["APP_ENV=production","APP_DEBUG=false","APP_KEY=base64:".concat(btoa(y(32))),"HASH_SALT=".concat(y(20)),"HASH_LENGTH=18","APP_URL=https://$(PRIMARY_DOMAIN)","APP_FORCE_URL=true","DB_CONNECTION=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=".concat(e.databaseType),"DB_PASSWORD=".concat(a),"DB_PREFIX=".concat(e.databasePrefix||""),"DB_USE_UTF8MB4=".concat(e.databaseUseUtf8mb4),"CACHE_DRIVER=redis","REDIS_HOST=$(PROJECT_NAME)_".concat(e.redisServiceName),"REDIS_PASSWORD=".concat(i),"APP_DISABLE_SIGNUP=".concat(e.monicaAppDisableSignup),"CHECK_VERSION=".concat(e.monicaC
1heckVersion)].join("\n"),mounts:[{type:"volume",name:"storage",mountPath:"/var/www/html/storage"},{type:"volume",name:"app",mountPath:"/var/www/html/app"},{type:"volume",name:"database",mountPath:"/var/www/html/database"},{type:"volume",name:"resources",mountPath:"/var/www/html/resources"},{type:"volume",name:"routes",mountPath:"/var/www/html/routes"}]}}),t.push({type:e.databaseType,data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"moocup",meta:{name:"Moocup",description:"Moocup is a visual editor designed to create stunning screenshots in seconds. It provides a simple and functional interface where you can drop your screenshot, apply beautiful base styles, customize it however you wish, and export professional-looking visuals instantly. Built for developers, designers, and content creators who need to showcase their work with polished screenshots for portfolios, documentation, presentations, or social media. The tool offers an intuitive drag-and-drop workflow with real-time visual editing, eliminating the need for complex design software or manual styling. With Moocup's self-hosted solution, your screenshots remain private and never leave your infrastructure, making it ideal for sensitive projects or proprietary applications. The browser-based editor requires zero installation and works seamlessly across devices with responsive design. Perfect for anyone who values simplicity and functionality but still wants to create eye-catching visuals that make their projects stand out without the overhead of heavyweight design tools or paid screenshot services.",instructions:null,changeLog:[{date:"2025-11-26",description:"Template Release"},{date:"2026-02-21",description:"Version bumped to 1.0.13"},{date:"2026-05-04",description:"Version bumped to 1.0.48"}],links:[{label:"Website",url:"https://moocup.jaydip.me"},{label:"GitHub",url:"https://github.com/jellydeck/moocup"},{label:"Docker Hub",url:"https://hub.docker.com/r/jellydeck/moocup"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"moocup"},appServiceImage:{type:"string",title:"App Service Image",default:"jellydeck/moocup:1.0.48"}}},benefits:[{title:"Stunning Screenshots in Seconds",description:"Transform plain screenshots into professional, eye-catching visuals instantly with beautiful pre-made styles and intuitive customization options."},{title:"Simple and Functional",description:"Clean, distraction-free interface focuses on what matters - creating great visuals without the complexity of full-featured design software."},{title:"Privacy-First Editing",description:"Self-hosted solution ensures your screenshots never leave your infrastructure, perfect for sensitive projects, proprietary applications, or confidential work."},{title:"Zero Installation Required",description:"Browser-based editor works immediately without downloads, plugins, or software installation on any device with a modern web browser."}],features:[{title:"Drag and Drop Editor",description:"Simply drop your screenshot into the editor and watch as a beautiful base style is automatically applied, ready for further customization."},{title:"Visual Style Customization",description:"Customize backgrounds, borders, shadows, padding, gradients, and more with real-time preview to create exactly the look you want."},{title:"Export Ready Visuals",description:"Export your styled screenshots in high quality formats ready for portfolios, documentation, presentations, social media, or marketing materials."},{title:"Portfolio-Ready Designs",description:"Pre-configured styles specifically designed to make your project screenshots stand out in portfolios, case studies, and presentations."},{title:"Instant Styling",description:"Real-time visual editing with instant feedback allows you to iterate quickly and create professional results in seconds, not minutes."},{title:"No Design Skills Required",description:"Intuitive interface and smart defaults mean anyone can create professional-looking screenshot visuals without graphic design experience."}],tags:["Screenshots","Visual Editor","Design Tool","Portfolio","Image Editor"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"moodist",meta:{name:"Moodist",description:"Moodist is a free, open-source ambient sound mixer for focus and calm. Choose from 84 carefully curated sounds \u2014 rain, forests, coffee shops, cities, and more \u2014 and layer them into a personalised soundscape. It runs entirely in the browser with no account required, making it an ideal productivity companion for deep work, meditation, or sleep.",instructions:"After deployment, open your service URL. No login or configuration is needed\n\u2014 select sounds and adjust volumes directly in the browser. All preferences\nare stored locally in the browser.\n",changeLog:[{date:"2026-06-23",description:"Initial release (v2.6.0)"}],links:[{label:"Website",url:"https://moodist.mvze.net"},{label:"GitHub",url:"https://github.com/remvze/moodist"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"moodist"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/remvze/moodist:v2.6.0"}}},benefits:[{title:"No Account Required",description:"Open the app and start mixing sounds immediately. No sign-up, no login, no tracking \u2014 just focus."},{title:"84 Curated Sounds",description:"From forest rain and thunderstorms to coffee shops, trains, and white noise \u2014 every sound is hand-picked for productivity and relaxation."},{title:"Fully Self-Hosted",description:"Run your own private instance with a single Docker container. No external dependencies or third-party services needed."}],features:[{title:"Sound Mixer",description:"Layer multiple ambient sounds simultaneously and fine-tune the volume of each track to craft your ideal soundscape."},{title:"Sound Categories",description:"Browse sounds organised by category \u2014 Nature, Weather, Animals, City, Travel, Cafe, and more \u2014 for quick discovery."},{title:"Presets",description:"Save and reload your favourite sound combinations as named presets so you can switch moods in one click."},{title:"Timer",description:"Set a countdown timer to automatically stop playback after a chosen duration \u2014 useful for Pomodoro sessions or sleep."},{title:"Keyboard Shortcuts",description:"Control playback, volume, and navigation without leaving the keyboard for a distraction-free experience."}],tags:["Productivity","Ambient Sound","Focus","Wellness","Self-hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"moodle",meta:{name:"Moodle",description:"Moodle is a robust, scalable, and open-source learning management system (LMS) designed to provide educators and learners with a customizable platform to create and deliver personalized learning experiences. With Moodle, you can manage courses, track progress, and collaborate using a variety of tools like forums, assignments, and quizzes. It supports integrations with numerous third-party tools and plugins to enhance functionality. Moodle focuses on accessibility, ensuring an inclusive experience for all users. It is widely used in academic institutions, businesses, and non-profits globally to deliver quality online education. Moodle is a free, open-source project distributed under the GNU General Public License.",instructions:"Moodle takes time to install. Default credentails; username=user, password=bitnami",changeLog:[{date:"2025-01-13",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 4.5.2"},{date:"2025-07-10",description:"Version bumped to 5.0.0"},{date:"2026-02-06",description:"Version bumped to 5.0.2"}],links:[{label:"Website",url:"https://moodle.org/"},{label:"Documentation",url:"https://docs.moodle.org/"},{label:"Github",url:"https://github.com/moodle"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"moodle"},appServiceImage:{type:"string",title:"App Service Image",default:"bitnamilegacy/moodle:5.0.2"}}},benefits:[{title:"Personalized Learning Experience",description:"Moodle enables educators to create customized learning environments for their students, enhancing engagement and improving outcomes."},{title:"Scalable and Flexible",description:"Moodle can scale from small classes to large organizations and integrates with various third-party tools and plugins to meet diverse needs."},{title:"Open Source and Free",description:"Moodle is distributed under the GNU General Public License, ensuring that it remains free and open-source, empowering communities worldwide to improve education."}],features:[{title:"Course Management",description:"Moodle provides extensive tools for managing courses, including assignments, quizzes, and tracking student progress."},{title:"Collaboration Tools",description:"Moodle offers forums, chats, and group activities to facilitate collaboration and communication among users."},{title:"Mobile-Friendly",description:"Moodle\u2019s mobile app allows users to access their courses and learning materials on the go, ensuring seamless learning experiences across devices."}],tags:["LMS","Education","Open Source","Accessibility","Learning Management","Customization","E-learning"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-db"),source:{type:"image",image:"bitnami/mariadb:latest"},env:["ALLOW_EMPTY_PASSWORD=yes","MARIADB_USER=mariadb","MARIADB_PASSWORD=".concat(a),"MARIADB_DATABASE=$(PROJECT_NAME)","MARIADB_CHARACTER_SET=utf8mb4","MARIADB_COLLATE=utf8mb4_unicode_ci"].join("\n"),mounts:[{type:"volume",name:"mariadb-data",mountPath:"/bitnami/mariadb"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["MOODLE_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"MOODLE_DATABASE_PORT_NUMBER=3306","MOODLE_DATABASE_USER=mariadb","MOODLE_DATABASE_NAME=$(PROJECT_NAME)","MOODLE_DATABASE_PASSWORD=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"moodle-data",mountPath:"/bitnami/moodle"}]}}),{services:t}}},{slug:"morphic",meta:{name:"Morphic",description:"Morphic is an AI-powered search and answer engine that combines the power of multiple AI models with real-time web search capabilities. It provides intelligent answers to user queries by leveraging various AI providers including OpenAI, Anthropic, Google, and Groq, while using SearxNG for privacy-focused web search. Morphic offers a conversational interface that delivers comprehensive, well-sourced answers with citations and follow-up questions, making it an excellent alternative to traditional search engines.",instructions:null,changeLog:[{date:"2025-06-25",description:"Initial Template Release"},{date:"2026-05-21",description:"Bumped to v1.3.0 (SHA e4fd783), SearXNG updated to 2026.5.17"}],links:[{label:"GitHub",url:"https://github.com/miurla/morphic"},{label:"Documentation",url:"https://github.com/miurla/morphic#readme"},{label:"Demo",url:"https://morphic.sh"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","searxngServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"morphic"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/miurla/morphic:e4fd78357afc685db17e6c27404b9728b3205624",description:"Morphic Docker image"},searxngServiceImage:{type:"string",title:"SearxNG Service Image",default:"searxng/searxng:2026.5.17-d7e8b7cd1",description:"SearxNG Docker image"},openaiApiKey:{type:"string",title:"OpenAI API Key",default:"",description:"Optional OpenAI API key for GPT models"},anthropicApiKey:{type:"string",title:"Anthropic API Key",default:"",description:"Optional Anthropic API key for Claude models"},googleApiKey:{type:"string",title:"Google Generative AI API Key",default:"",description:"Optional Google API key for Gemini models"},groqApiKey:{type:"string",title:"Groq API Key",default:"",description:"Optional Groq API key for fast inference"}}},benefits:[{title:"Multi-Model AI Support",description:"Access multiple AI providers including OpenAI, Anthropic, Google, and Groq for diverse AI capabilities and model selection."},{title:"Privacy-Focused Search",description:"Integrated SearxNG search engine ensures private web search without tracking or data collection from search providers."},{title:"Intelligent Responses",description:"Get comprehensive answers with proper citations, sources, and follow-up questions for deeper exploration of topics."},{title:"Real-Time Information",description:"Combine AI knowledge with real-time web search results for up-to-date and accurate information on current events and topics."}],features:[{title:"Conversational Interface",description:"Chat-based interface that provides natural language interactions with AI models for intuitive question-and-answer sessions."},{title:"Source Citations",description:"All responses include proper citations and links to sources, ensuring transparency and enabling fact verification."},{title:"Follow-Up Questions",description:"AI-generated follow-up questions help users explore topics more deeply and discover related information automatically."},{title:"Multiple AI Providers",description:"Choose from various AI models and providers based on your needs, with support for the latest language models from major providers."}],tags:["AI","Search Engine","Chat","OpenAI","Anthropic","Google","Groq","Redis","Next.js"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o="use_default_settings: true\nserver:\n  port: 8888\n  bind_address: '0.0.0.0'\n  # public URL of the instance, to ensure correct inbound links. Is overwritten\n  base_url: false # \"http://example.com/location\"\n  # rate limit the number of request on the instance, block some bots.\n  limiter: false\n  # enable features designed only for public instances.\n  public_instance: false\n\n  # If your instance owns a /etc/searxng/settings.yml file, then set the following\n  # values there.\n\n  secret_key: '".concat(i,"'\n  image_proxy: false\n  # 1.0 and 1.1 are supported\n  http_protocol_version: '1.0'\n  # POST queries are more secure as they don't show up in history but may cause\n  # problems when using Firefox containers\n  method: 'POST'\n  default_http_headers:\n    X-Content-Type-Options: nosniff\n    X-Download-Options: noopen\n    X-Robots-Tag: noindex, nofollow\n    Referrer-Policy: no-referrer\n\nsearch:\n  formats:\n    - json \n  ");return t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-searxng"),source:{type:"image",image:e.searxngServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"searxng-data",mountPath:"/data"},{type:"file",mountPath:"/etc/searxng/settings.yml",content:o},{type:"file",mountPath:"/etc/searxng/limiter.toml",content:"\n  "}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["REDIS_URL=redis://$(PROJECT_NAME)_".concat(e.appServiceName,"-redis:6379"),"SEARXNG_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-searxng:8080"),"OPENAI_API_KEY=".concat(e.openaiApiKey),"ANTHROPIC_API_KEY=".concat(e.anthropicApiKey),"GOOGLE_GENERATIVE_AI_API_KEY=".concat(e.googleApiKey),"GROQ_API_KEY=".concat(e.groqApiKey),"NEXT_PUBLIC_BASE_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{command:"bun start -H 0.0.0.0"}}}),{services:t}}},{slug:"motoradmin",meta:{name:"MotorAdmin",description:"MotorAdmin is a modern, open-source database administration tool that provides a user-friendly interface for managing and interacting with your databases. It offers features for data visualization, query building, and database management.",instructions:null,changeLog:[{date:"2025-04-16",description:"First Release"}],links:[{label:"Website",url:"https://www.getmotoradmin.com"},{label:"Github",url:"https://github.com/motor-admin/motor-admin"},{label:"Documentation",url:"https://docs.getmotoradmin.com/guide/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"motoradmin"},appServiceImage:{type:"string",title:"App Service Image",default:"motoradmin/motoradmin:0.4.21"}}},benefits:[{title:"Database Management",description:"User-friendly interface for managing and interacting with databases."},{title:"Data Visualization",description:"Visualize and analyze your data with intuitive tools."},{title:"Query Building",description:"Build and execute database queries with ease."},{title:"Secure Access",description:"Secure database access with proper authentication."},{title:"Data Persistence",description:"Reliable PostgreSQL database for storing application data."}],features:[{title:"Database Interface",description:"Intuitive web interface for database management."},{title:"Query Builder",description:"Visual tools for building and executing database queries."},{title:"Data Visualization",description:"Tools for visualizing and analyzing database content."},{title:"User Management",description:"Manage user access and permissions."},{title:"Modern Interface",description:"Clean and intuitive web interface for database administration."}],tags:["Database","Administration","Data Management","Visualization","Query Builder"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["SECRET_KEY_BASE=".concat(i),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)")].join("\n"),mounts:[{type:"volume",name:"app",mountPath:"/app"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"mstream",meta:{name:"Mstream",description:"mStream is a personal music streaming server that allows you to access your music collection from anywhere. It's like having your private cloud for music. With mStream, you can sync your collection between your devices for offline access. It offers high-quality streaming for audiophiles and FLAC enthusiasts, allowing you to stream your music uncompressed. mStream respects your privacy, it does not collect statistics on your listening habits. It's also beneficial for artists as buying music directly means your money goes directly to them. The server setup is quick and it runs on any operating system. It also has mobile apps for iOS & Android and allows you to stream your music in any browser. Other features include gapless playback, Milkdrop visualizer, playlist sharing, and drag and drop file uploading. All the code for mStream is open source.",instructions:null,changeLog:[{date:"2023-3-20",description:"first release"},{date:"2024-10-19",description:"Update to 5.12.2"},{date:"2025-02-28",description:"Version bumped to 5.13.1"},{date:"2026-02-21",description:"Version bumped to 5.14.3"},{date:"2026-05-04",description:"Version bumped to 6.6.0"}],links:[{label:"Website",url:"https://mstream.io"},{label:"Github",url:"https://github.com/IrosTheBeggar/mStream"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mstream"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/mstream:6.6.0"}}},benefits:[{title:"Own Your Music",description:"With mStream, you have full control over your music. There are no ads and your content will never get removed."},{title:"Quality",description:"For audiophiles and FLAC enthusiasts, mStream allows you to stream your music uncompressed, ensuring the highest quality."},{title:"Privacy",description:"Unlike other streaming services, mStream doesn't collect statistics on your listening habits. Your server will never snitch on you."},{title:"Support Artists",description:"By buying music directly from artists, you ensure your money goes directly to them."}],features:[{title:"Easy Server Setup",description:"Setting up your mStream server takes just 30 seconds and it can run on any operating system."},{title:"Mobile Apps",description:"mStream offers mobile apps for both iOS and Android, allowing you to stream your music on any device."},{title:"Browser Streaming",description:"You can stream your music in any browser with mStream."},{title:"Gapless Playback",description:"Enjoy seamless listening with mStream's gapless playback feature."},{title:"Milkdrop Visualizer",description:"Enhance your listening experience with the Milkdrop Visualizer."},{title:"Playlist Sharing",description:"Share your favorite playlists with others using mStream."},{title:"Drag and Drop File Uploading",description:"Easily add music to your mStream server with the drag and drop file uploading feature."}],tags:["Media","Music Streaming"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"music",mountPath:"/music"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"muse",meta:{name:"Muse",description:"Muse is a self-hosted Discord music bot designed to enhance your music experience on Discord. It's perfect for small to medium-sized groups, such as you and your friends. With Muse, you can livestream music, seek within a song or video, and even cache music locally for better performance. It also allows users to convert playlists, artists, albums, and songs from Spotify automatically. You can add custom shortcuts, and the bot supports multiple guilds. It normalizes volume across tracks for a consistent listening experience. Muse is written in TypeScript and is easily extendable. It's a loyal Packers fan and doesn't vote to skip - this is anarchy, not a democracy!",instructions:null,changeLog:[{date:"2023-03-30",description:"first release"},{date:"2024-10-19",description:"Update to 2.9.4"},{date:"2025-02-28",description:"Version bumped to 2.10.1"},{date:"2025-06-05",description:"Update to 2.11.1"},{date:"2026-05-04",description:"Update to 2.11.4"}],links:[{label:"Github",url:"https://github.com/codetheweb/muse"},{label:"Documentation",url:"https://github.com/codetheweb/muse#running"}],contributors:[{name:"Rub\xe9n Robles",url:"https://github.com/D8vjork"}],schema:{type:"object",required:["appServiceName","appServiceImage","discordToken","youtubeApiKey","spotifyClientId","spotifyClientSecret"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"discordbot"},appServiceImage:{type:"string",title:"App Service Image",default:"codetheweb/muse:2.11.4"},discordToken:{type:"string",title:"Discord Token"},youtubeApiKey:{type:"string",title:"Youtube API Key"},spotifyClientId:{type:"string",title:"Spotify Client ID"},spotifyClientSecret:{type:"string",title:"Spotify Client Secret"}}},benefits:[{title:"Enhanced Discord Experience",description:"Muse is a self-hosted Discord music bot designed to enhance your Discord server experience. It's perfect for small to medium-sized groups, providing a seamless and enjoyable music listening experience."},{title:"Customizable and Versatile",description:"Muse is highly customizable, allowing users to add custom shortcuts and auto-convert playlists, artists, albums, and songs from Spotify. It's a versatile tool that can be tailored to your specific needs."},{title:"Improved Performance",description:"With local caching, Muse ensures better performance, providing a smooth and uninterrupted music experience. It also normalizes volume across tracks for a consistent listening experience."}],features:[{title:"Livestreams",description:"Muse supports livestreams, allowing you to enjoy live music directly on your Discord server."},{title:"Seeking within a Song/Video",description:"Muse allows you to seek within a song or video, giving you full control over your listening experience."},{title:"No Vote-to-Skip",description:"Muse operates on anarchy, not democracy. There's no vote-to-skip feature, ensuring that everyone gets to enjoy the music they love."},{title:"Supports Multiple Guilds",description:"A single Muse instance can support multiple Discord guilds, making it a convenient and efficient choice for managing music across various servers."},{title:"Volume Normalization",description:"Muse normalizes volume across tracks, ensuring a consistent and comfortable listening experience."}],tags:["Music","Discord","Bot"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATA_DIR=./data","DISCORD_TOKEN=".concat(e.discordToken),"YOUTUBE_API_KEY=".concat(e.youtubeApiKey),"SPOTIFY_CLIENT_ID=".concat(e.spotifyClientId),"SPOTIFY_CLIENT_SECRET=".concat(e.spotifyClientSecret)].join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"mydrive",meta:{name:"MyDrive",description:"MyDrive is a self-hosted, open source cloud file storage server similar to Google Drive. Upload, organize, and browse files and folders from the browser, preview images and videos inline, and share files or folders with others through generated links. Files can optionally be encrypted at rest with a key only you hold. This template stores uploaded files on a persistent volume and uses MongoDB for metadata, matching the official Docker Compose setup.",instructions:"Open the app URL and register the first account. Files are encrypted with the randomly generated KEY set on the app service \u2014 back up this value from the service's environment variables, since losing it makes all stored files permanently unrecoverable.",changeLog:[{date:"2026-07-10",description:"first release"}],links:[{label:"Website",url:"https://mydrive-storage.com"},{label:"GitHub",url:"https://github.com/subnub/myDrive"},{label:"Docker Hub",url:"https://hub.docker.com/r/kylehoell/mydrive"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mydrive"},appServiceImage:{type:"string",title:"App Service Image",default:"kylehoell/mydrive:sha-bae5dbb"}}},benefits:[{title:"Encrypted File Storage",description:"Files can be encrypted at rest with a private key that only you hold, so stored data isn't readable without it."},{title:"Google Drive-Like Interface",description:"A familiar browser UI for uploading, organizing into folders, and previewing files, with no learning curve."},{title:"Self-Hosted Sharing",description:"Generate share links for files and folders without relying on a third-party cloud storage provider."}],features:[{title:"Media Previews",description:"Preview images and videos directly in the browser, with optional thumbnail generation for quick browsing."},{title:"Drag-and-Drop Upload",description:"Upload files and entire nested folder structures by dragging them straight into the browser."},{title:"File and Folder Sharing",description:"Share individual files or whole folders with others via a generated link, without giving them account access."},{title:"Search",description:"Quickly locate files and folders across your storage with built-in search."}],tags:["File Storage","Cloud Storage","Self-Hosted","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DOCKER=true","MONGODB_URL=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-mongo:27017/$(PROJECT_NAME)?authSource=admin"),"DB_TYPE=fs","FS_DIRECTORY=/data/","TEMP_DIRECTORY=/temp/","KEY=".concat(y(32)),"PASSWORD_ACCESS=".concat(y(32)),"PASSWORD_REFRESH=".concat(y(32)),"PASSWORD_COOKIE=".concat(y(32)),"VIDEO_THUMBNAILS_ENABLED=true","TEMP_VIDEO_THUMBNAIL_LIMIT=5000000000","SECURE_COOKIES=true"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"temp",mountPath:"/temp"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-mongo"),password:a}}),{services:t}}},{slug:"mysql-backup",meta:{name:"MySQL Backup",description:"The mysql-backup-s3 app is a powerful tool designed to backup your MySQL databases to your AWS S3 bucket. It supports periodic backups, allowing you to schedule backup times in cron format, ensuring your data is always safe and up-to-date. The app also supports multi-files, meaning you can have one file per database if you choose to. The app requires your AWS access key, AWS secret key, and AWS S3 bucket path. It also requires your MySQL host, user, and password. You can customize the path prefix in your bucket, the AWS S3 bucket region, and the AWS Endpoint URL. The app also allows you to add extra mysqldump options without overriding the default ones. With the mysql-backup-s3 app, you can ensure your MySQL databases are always backed up and secure in your AW
1S S3 bucket.",instructions:"In order to test that you configured it properly, remove the SCHEDULE variable from the environment, click deploy and check the logs. If everything works fine, you can add the SCHEDULE variable back. You can read more about the environment variables here: https://github.com/schickling/dockerfiles/tree/master/mysql-backup-s3",changeLog:[{date:"2022-08-05",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/schickling/dockerfiles/tree/master/mysql-backup-s3"},{label:"Github",url:"https://github.com/schickling/dockerfiles/tree/master/mysql-backup-s3"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","host","port","user","password","accessKey","secretKey","bucket","prefix","region","endpoint","schedule"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"mysql-backup"},appServiceImage:{type:"string",title:"App Service Image",default:"easypanel/mysql-backup-s3"},host:{type:"string",title:"MySQL Host"},port:{type:"string",title:"MySQL Port",default:"3306"},user:{type:"string",title:"MySQL User",default:"mysql"},password:{type:"string",title:"MySQL Password"},accessKey:{type:"string",title:"S3 Access Key"},secretKey:{type:"string",title:"S3 Secret Key"},bucket:{type:"string",title:"S3 Bucket"},prefix:{type:"string",title:"S3 Prefix",default:"backup"},region:{type:"string",title:"S3 Region",default:"us-west-1"},endpoint:{type:"string",title:"S3 Endpoint"},schedule:{type:"string",title:"Schedule",default:"@daily",description:"You can use CRON syntax"}}},benefits:[{title:"Secure and Reliable",description:"The app provides a secure and reliable way to backup your MySQL databases to your AWS S3 bucket. It ensures that your data is safe and can be recovered whenever needed."},{title:"Flexible and Customizable",description:"The app allows you to customize your backup process according to your needs. You can choose the databases you want to backup, set a consistent filename to overwrite with your backup or use a timestamp, and even decide the AWS S3 bucket region."},{title:"Automated Backups",description:"The app supports periodic backups, allowing you to schedule your backup process in a cron format. This ensures that your databases are backed up regularly without any manual intervention."}],features:[{title:"MySQL to S3 Backup",description:"The app enables you to backup your MySQL databases to your AWS S3 bucket. It supports all databases and uses mysqldump options for the backup process."},{title:"Multi-file Support",description:"The app supports multi-file backups, allowing you to have one file per database. This makes it easier to manage and recover specific databases."},{title:"AWS S3 Bucket Customization",description:"The app allows you to customize your AWS S3 bucket settings. You can set the access key, secret key, bucket path, path prefix in your bucket, bucket region, and endpoint URL."},{title:"Backup Scheduling",description:"The app allows you to schedule your backup process in a cron format. This ensures that your databases are backed up regularly and automatically."}],tags:["Databases","Backup"],logo:null,screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["MYSQL_HOST=".concat(e.host),"MYSQL_PORT=".concat(e.port),"MYSQL_USER=".concat(e.user),"MYSQL_PASSWORD=".concat(e.password),"S3_ACCESS_KEY_ID=".concat(e.accessKey),"S3_SECRET_ACCESS_KEY=".concat(e.secretKey),"S3_BUCKET=".concat(e.bucket),"S3_PREFIX=".concat(e.prefix),"S3_REGION=".concat(e.region),"S3_ENDPOINT=".concat(e.endpoint),"S3_S3V4=yes","SCHEDULE=".concat(e.schedule)].join("\n")}}),{services:t}}},{slug:"mysql-workbench",meta:{name:"MySQL-Workbench",description:"MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. It provides data modeling, SQL development, and comprehensive database management capabilities for MySQL and MariaDB. With MySQL Workbench, you can design and create new databases, reverse-engineer existing databases, and perform complex migrations. It offers a visual query builder, a powerful SQL editor, and support for data modeling and schema creation. MySQL Workbench is a trusted, easy-to-use tool to streamline database operations and improve productivity.",instructions:null,changeLog:[{date:"2024-12-30",description:"First Release"},{date:"2025-06-05",description:"Update to 8.0.42"},{date:"2025-07-22",description:"Update to 8.0.43"},{date:"2025-12-29",description:"Update to 8.0.45"},{date:"2026-05-04",description:"Update to 8.0.47"}],links:[{label:"Website",url:"https://www.mysql.com/products/workbench/"},{label:"Documentation",url:"https://dev.mysql.com/doc/workbench/en/"},{label:"Github",url:"https://github.com/mysql/mysql-workbench"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"mysql-workbench"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/mysql-workbench:8.0.47"}}},benefits:[{title:"Unified Database Management",description:"MySQL Workbench integrates modeling, development, and administration into a single tool for managing MySQL and MariaDB databases efficiently."},{title:"Visual Data Modeling",description:"MySQL Workbench allows you to visually design and model your database structure with ease, making it simple to create or reverse-engineer schemas."},{title:"Advanced SQL Editor",description:"It provides a powerful SQL editor with syntax highlighting, code completion, and query execution for streamlined database management."},{title:"Schema Synchronization",description:"MySQL Workbench helps you synchronize schemas across different databases with a few clicks, reducing manual errors."},{title:"Cross-Platform Support",description:"MySQL Workbench is available on Windows, macOS, and Linux, ensuring cross-platform compatibility."}],features:[{title:"Visual Query Builder",description:"Build and execute queries visually without writing complex SQL manually."},{title:"Database Migration",description:"Migrate databases seamlessly between MySQL and other database systems like PostgreSQL or Oracle."},{title:"Performance Monitoring",description:"Monitor database performance metrics and optimize queries for improved efficiency."},{title:"Secure Connections",description:"Use SSH tunneling and SSL to establish secure connections with your databases."},{title:"Data Import & Export",description:"Easily import and export data in various formats like CSV and JSON."},{title:"Data Modeling",description:"Create complex ER diagrams and visually design schemas for databases."},{title:"Backup and Restore",description:"Create backups of your databases and restore them easily when needed."},{title:"Open Source",description:"MySQL Workbench is open-source, making it accessible and customizable for your needs."},{title:"Collaboration Support",description:"Share models and configurations with your team to streamline collaboration."}],tags:["Database","MySQL","Development","Administration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{capAdd:["IPC_LOCK"]}}}),{services:t}}},{slug:"n8n",meta:{name:"n8n",description:"n8n is a powerful workflow automation tool designed for technical people. It allows you to build complex automations 10x faster, without the need to fight with APIs. The app enables you to create flexible workflows focused on deep data integration. You can use JavaScript for complex tasks that require flexibility and the user-friendly UI for everything else. n8n provides the ability to connect APIs with no code for automating basic tasks, or write vanilla Javascript for manipulating complex data. It supports integration with any app and allows for the creation of custom scenarios at speed. With n8n, you can pump data around your entire tech stack with 350+ native integrations or use custom code to create your own. It also offers features like bulk operations, painless debugging, and the ability to host on your own infrastructure. n8n is not just a helpful tool, it's the heart of your business, helping you optimize engineering resources, boost efficiency, and focus on your KPIs, not your APIs.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2024-10-19",description:"Update to 1.64.0"},{date:"2025-07-22",description:"Update to 1.103.2"},{date:"2026-02-21",description:"Update to 1.123.21"},{date:"2026-05-04",description:"Update to 2.18.7"},{date:"2026-05-12",description:"Major update to 2.21.0"}],links:[{label:"Website",url:"https://n8n.io/"},{label:"Documentation",url:"https://docs.n8n.io/"},{label:"Github",url:"https://github.com/n8n-io/n8n"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","n8nRunnerServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"n8n"},appServiceImage:{type:"string",title:"App Service Image",default:"docker.n8n.io/n8nio/n8n:2.21.0"},n8nRunnerServiceImage:{type:"string",title:"N8n Runner Service Image",default:"n8nio/runners:2.21.0"}}},benefits:[{title:"Workflow Automation",description:"n8n is a powerful tool that allows you to build complex automations 10x faster, without the need to fight with APIs. It is designed to save you from the tedious task of slogging through a spaghetti of scripts."},{title:"Flexible and User-friendly",description:"With n8n, you can build flexible workflows focused on deep data integration. It features a user-friendly UI that makes it easy for both technical and non-technical people to collaborate on workflows."},{title:"Efficient and Scalable",description:"n8n automates the frustrating work for you, allowing you to focus your energy on tasks that move the needle. It is capable of executing 220 workflow executions per second on a single instance, and you can add more instances if required."},{title:"Cost-effective",description:"Unlike other platforms, n8n allows you to build complex workflows without stressing over budget. You can self-host for free, or pay for a package of workflows in the cloud."}],features:[{title:"No Code and Low Code Options",description:"n8n allows you to connect APIs with no code to automate basic tasks. Or, if you need to manipulate complex data, you can write in vanilla Javascript."},{title:"Custom Scenarios",description:"With n8n, you can build custom scenarios at speed. It allows you to integrate with any app and perform bulk operations."},{title:"Painless Debugging",description:"n8n provides a painless debugging experience. It also allows you to host on your own infrastructure."},{title:"Wide Range of Integrations",description:"n8n supports over 350 native integrations, allowing you to pump data around your entire tech stack. You can also use custom code to create your own integrations."},{title:"Customizable Error Handling",description:"n8n offers customizable error handling. You can also share workflows with a click and use over 600 templates to move faster."}],tags:["Automation","Workflow","Integration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_TYPE=postgresdb","DB_POSTGRESDB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_POSTGRESDB_PORT=5432","DB_POSTGRESDB_DATABASE=$(PROJECT_NAME)","DB_POSTGRESDB_USER=postgres","DB_POSTGRESDB_PASSWORD=".concat(a),"N8N_ENCRYPTION_KEY=".concat(i),"N8N_RUNNERS_MODE=external","N8N_RUNNERS_AUTH_TOKEN=".concat(o),"N8N_RUNNERS_BROKER_LISTEN_ADDRESS=0.0.0.0","WEBHOOK_URL=https://$(PRIMARY_DOMAIN)","N8N_HOST=$(PRIMARY_DOMAIN)","N8N_PROTOCOL=https","EXECUTIONS_DATA_PRUNE=true","N8N_PROXY_HOPS=1"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5678}],mounts:[{type:"volume",name:"data",mountPath:"/home/node/.n8n"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-runner"),env:["N8N_RUNNERS_AUTH_TOKEN=".concat(o),"N8N_RUNNERS_TASK_BROKER_URI=http://$(PROJECT_NAME)_".concat(e.appServiceName,":5679")].join("\n"),source:{type:"image",image:e.n8nRunnerServiceImage}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"nametag",meta:{name:"Nametag",description:"Nametag is a simple, yet effective Personal Relationship Manager (PRM) - like a CRM, but for your actual relationships instead of sales prospects. Built with Next.js, it helps you manage your personal network by tracking contacts, mapping relationships between people, and visualizing your network with interactive graphs. Remember when you last talked to an old friend, their kids' names, or their birthday. Organize contacts into custom groups, set reminders for important dates and staying in touch, and keep all your relationship data in one secure, self-hosted location.",instructions:null,changeLog:[{date:"2026-01-14",description:"Template Release"},{date:"2026-05-04",description:"Version bumped to 0.44.6"}],links:[{label:"GitHub",url:"https://github.com/mattogodoy/nametag"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nametag"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/mattogodoy/nametag:0.44.6"},resendApiKey:{type:"string",title:"Resend API Key",description:"Optional Resend API key for email functionality (password resets and reminders). Sign up at https://resend.com"},emailDomain:{type:"string",title:"Email Domain",description:"Optional email domain for sending emails (required if using Resend)"}}},benefits:[{title:"Personal Relationship Management",description:"Keep track of all your personal relationships in one place - friends, family, colleagues, and more. Never forget important details about the people you care about."},{title:"Network Visualization",description:"Visualize your entire personal network with interactive graphs powered by D3.js, making it easy to see relationships and connections at a glance."},{title:"Stay Connected",description:"Set reminders for important dates, birthdays, and when to reach out to people, helping you maintain meaningful relationships over time."},{title:"Self-Hosted Privacy",description:"Complete control over your relationship data with no reliance on external cloud services. All your personal information stays on your server."},{title:"Unlimited Contacts",description:"Self-hosted instances have no account limits - store unlimited contacts and relationships without restrictions."}],features:[{title:"Contact Management",description:"Track people with flexible attributes including names, birthdays, important dates, and custom notes for everything else."},{title:"Relationship Mapping",description:"Define and visualize relationships between people - family, friends, colleagues, and custom relationship types."},{title:"Interactive Network Graphs",description:"Visualize your entire personal network with interactive D3.js-powered graphs showing connections and relationships."},{title:"Custom Groups",description:"Organize contacts into custom groups for better organization and management of your personal network."},{title:"Automated Reminders",description:"Scheduled cron jobs send automated reminders for important dates and staying in touch, running daily at 8 AM UTC."},{title:"Multi-Language Support",description:"Available in multiple languages including English and Spanish, with mobile-responsive design for access from any device."},{title:"Dark Mode",description:"Full dark mode support for comfortable viewing in any lighting condition."}],tags:["Personal Relationship Manager","PRM","CRM","Contacts","Relationships","Next.js","Self-Hosted","Network Visualization","Reminders"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=y(16);t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}});var r=["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","NEXT_PUBLIC_APP_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_SECRET=".concat(o),"CRON_SECRET=".concat(n),"REDIS_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"REDIS_PASSWORD=".concat(i)];e.resendApiKey&&r.push("RESEND_API_KEY=".concat(e.resendApiKey)),e.emailDomain&&r.push("EMAIL_DOMAIN=".concat(e.emailDomain)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:r.join("\n")}});var s='sh -c "echo \'0 8 * * * wget -q -O - --header=\\"Authorization: Bearer '.concat(n,'\\" http://$(PROJECT_NAME)_').concat(e.appServiceName,":3000/api/cron/send-reminders > /proc/1/fd/1 2>&1' > /etc/crontabs/root && crond -f -l 2\"");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-cron"),source:{type:"image",image:"alpine:3.19"},deploy:{command:s},env:["CRON_SECRET=".concat(n)].join("\n")}}),{services:t}}},{slug:"nango",meta:{name:"Nango",description:"Nango is a powerful app designed to simplify and accelerate the process of building integrations. It provides a unified API, allowing you to drastically simplify your integration code and avoid dealing with each external API's schema and quirks. With Nango, you can authorize any integration using our drop-in UI, and securely manage your users' credentials. The app also enables continuous data synchronization with external APIs, using one of 100+ pre-built integrations, or you can customize them or build your own. Nango also supports 2-way syncs, write-backs, and real-time webhooks. It's designed for engineering teams that want full control without the hassle, allowing you to build exactly the integration your customers need, in code. With Nango, you can leave the maintenance, scaling, and API specific quirks to us, and focus on what you do best.",instructions:"Check the environment tab for your API key. Follow the instructions in the FILE mount.",changeLog:[{date:"2023-3-13",description:"first release"}],links:[{label:"Website",url:"https://nango.dev"},{label:"Documentation",url:"https://docs.nango.dev"},{label:"Github",url:"https://github.com/NangoHQ/nango"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","webUsername","webPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nango"},appServiceImage:{type:"string",title:"App Service Image",default:"nango.docker.scarf.sh/nangohq/nango-server:0.36.78"},databaseServiceName:{type:"string",title:"Database Service Name",default:"nango-db"},webUsername:{type:"string",title:"Username"},webPassword:{type:"string",title:"Password"}}},benefits:[{title:"Fast Integration Building",description:"Nango allows you to build integrations quickly and maintain full control. It offers pre-built OAuth and data syncing for over 100 APIs, enabling you to streamline your integration process."},{title:"Secure User Authorization",description:"With Nango's drop-in UI, your users can authorize any integration securely. Nango Auth handles various authentication types and securely manages your users' credentials."},{title:"Simplified Integration Code",description:"Nango drastically simplifies your integration code by using a single API. There's no need to deal with each external API's schema and quirks anymore."},{title:"Full Control for Engineering Teams",description:"Nango is designed for engineering teams that want full control without the hassle. You can build exactly the integration your customers need, in code, and iterate fast without being constrained by your integrations platform."}],features:[{title:"Data Syncing",description:"Nango Sync allows you to continuously synchronize data with external APIs. You can use one of the 100+ pre-built integrations, customize them, or build your own on top of Nango's infrastructure."},{title:"Real-time Webhooks",description:"Nango provides real-time webhooks, enabling you to receive updates whenever new data is available, all in your own schema."},{title:"Managed API Authentication",description:"Nango offers a drop-in UI that lets your users authorize integrations. It also provides reliable external integrations with unified error reporting."},{title:"Bi-directional Sync",description:"Nango continually syncs with APIs in the background, ensuring your data is always up-to-date."},{title:"Unified API & Models",description:"Nango provides a single API with documented and structured schemas, simplifying your integration process."},{title:"Custom Objects",description:"With Nango, users can define custom objects and access the raw data, providing flexibility and control over data management."}],tags:["Developer Tools","Integration","API"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(512),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NANGO_DB_USER=postgres","NANGO_DB_PASSWORD=".concat(i),"NANGO_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"NANGO_DB_NAME=$(PROJECT_NAME)","NANGO_DB_PORT=5432","NANGO_DB_SSL=FALSE","SERVER_PORT=3003","NANGO_SERVER_URL=https://$(PRIMARY_DOMAIN)","NANGO_DASHBOARD_USERNAME=".concat(e.webUsername),"NANGO_DASHBOARD_PASSWORD=".concat(e.webPassword),"NANGO_SECRET_KEY=".concat(a),"LOG_LEVEL=info","TELEMETRY=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3003}],mounts:[{type:"file",mountPath:"/usr/nango-server/src/packages/server/providers.yaml",content:"# Overwrite this file with this content: https://github.com/NangoHQ/nango/blob/master/packages/server/providers.yaml"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"nanote",meta:{name:"Nanote",description:"Nanote is a lightweight, self-hosted note-taking application that provides a simple and clean interface for managing your notes. Built with privacy-focused design, Nanote allows you to store and organize your notes locally or on your own server. It features markdown support, file uploads, and a minimalistic interface that focuses on productivity without distractions.",instructions:null,changeLog:[{date:"2026-01-09",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/omarmir/nanote"},{label:"Website",url:"https://nanote.link"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nanote"},appServiceImage:{type:"string",title:"App Service Image",default:"omarmir/nanote:0.11.0"}}},benefits:[{title:"Privacy-Focused",description:"Self-hosted solution ensures your notes remain private and under your complete control."},{title:"Lightweight and Fast",description:"Minimal resource usage with a fast, responsive interface for quick note-taking."},{title:"Markdown Support",description:"Write notes in markdown format for rich text formatting and better organization."},{title:"File Uploads",description:"Attach files and images to your notes for comprehensive documentation."},{title:"Self-Hosted Control",description:"Deploy on your own infrastructure with full control over your data and access."}],features:[{title:"Simple Interface",description:"Clean, distraction-free interface designed for focused note-taking and organization."},{title:"Markdown Editor",description:"Built-in markdown editor with syntax highlighting for enhanced writing experience."},{title:"File Management",description:"Organize notes and uploads with separate directories for better file management."},{title:"Health Monitoring",description:"Built-in health check endpoint for monitoring application status and reliability."},{title:"Easy Deployment",description:"Simple Docker-based deployment with minimal configuration required."}],tags:["Notes","Markdown","Self-Hosted","Productivity","Documentation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["NOTES_PATH=/nanote/notes","UPLOAD_PATH=/nanote/uploads","CONFIG_PATH=/nanote/config","SECRET_KEY=".concat(a)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/nanote"}]}}),{services:t}}},{slug:"nats",meta:{name:"NATS",description:"NATS is a simple, secure and performant messaging system for cloud native applications, IoT messaging, and microservices architectures. It provides lightweight publish-subscribe, request-reply, and point-to-point messaging patterns with high performance and minimal footprint.",instructions:null,changeLog:[{date:"2025-06-11",description:"Template Release"},{date:"2026-05-08",description:"Version bumped to 2.14.0"}],links:[{label:"Documentation",url:"https://docs.nats.io/"},{label:"Github",url:"https://github.com/nats-io/nats-server"},{label:"Website",url:"https://nats.io"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","appServicePort","appServiceClusterPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nats"},appServiceImage:{type:"string",title:"App Service Image",default:"nats:2.14.0"},appServicePort:{type:"string",title:"App Service Port",default:"4222"},appServiceClusterPort:{type:"string",title:"App Service Cluster Port",default:"6222"}}},benefits:[{title:"High Performance",description:"Extremely fast and lightweight messaging with minimal resource usage."},{title:"Simple Architecture",description:"Easy to deploy and manage with zero-configuration default setup."},{title:"Cloud Native",description:"Built for modern cloud-native applications and microservices."}],features:[{title:"Publish-Subscribe",description:"Efficient pub-sub messaging pattern for decoupled communication."},{title:"Request-Reply",description:"Synchronous request-reply pattern for service-to-service communication."},{title:"Monitoring Dashboard",description:"Built-in HTTP monitoring interface for server health and metrics."},{title:"Clustering Support",description:"Native clustering capabilities for high availability and scalability."}],tags:["Messaging","Message Broker","Pub-Sub","Microservices","Cloud Native"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8222}],ports:[{published:Number(e.appServicePort),target:4222},{published:Number(e.appServiceClusterPort),target:6222}]}}),{services:t}}},{slug:"navidrome",meta:{name:"Navidrome",description:"Welcome to Navidrome, your personal streaming service! This open-source software allows you to access and enjoy your music collection from anywhere, through a modern web UI and a wide range of third-party compatible mobile apps for both iOS and Android devices. Navidrome is lightweight, fast, and self-contained, capable of running well even on resource-limited platforms. It can handle large music libraries, and even transcodes your music files on the fly to prevent excessive data usage. Built with new technologies like GoLang, ReactJS, and Material-UI, Navidrome ensures modern features and compatibility. It is also compatible with the de facto standard Music API, supporting all its clients and ecosystem. With new releases on a regular basis, Navidrome continually adds features and bug fixes to enhance your music streaming experience.",instructions:null,changeLog:[{date:"2023-3-33",description:"first release"},{date:"2024-10-19",description:"Update to 0.53.3"},{date:"2025-02-28",description:"Version bumped to 0.54.5"},{date:"2025-12-29",description:"Version bumped to 0.59.0"},{date:"2026-02-21",description:"Version bumped to 0.60.3"},{date:"2026-05-08",description:"Version bumped to pr-5351"}],links:[{label:"Website",url:"https://www.navidrome.org/"},{label:"Documentation",url:"https://www.navidrome.org/docs/"},{label:"Github",url:"https://github.com/navidrome/navidrome"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"navidrome"},appServiceImage:{type:"string",title:"App Service Image",default:"deluan/navidrome:pr-5351"}}},benefits:[{title:"Personal Streaming Service",description:"Navidrome allows you to enjoy your music collection from anywhere, making it available through a modern Web UI and a wide range of third-party compatible mobile apps, for both iOS and Android devices."},{title:"Access Your Music From Anywhere",description:"Choose from a large selection of mobile clients or use the integrated web player to access your music from anywhere."},{title:"Handles Large Libraries",description:"Navidrome plays well with gigantic music collections, tested with ~900K songs - 2/3 FLAC, 1/3 MP3."},{title:"Transcoding on the Fly",description:"Navidrome converts/reduces your music files as you play them, so you don\u2019t nuke your data plan."}],features:[{title:"Blazing Fast",description:"Navidrome is lightweight, fast and self-contained. It runs well even on resource-limited platforms."},{title:"Modern and Up-to-Date",description:"Navidrome is built with new technologies to ensure modern features and compatibility."},{title:"Subsonic API Compatible",description:"Navidrome is compatible with the de facto standard Music API, supporting all its clients and ecosystem."},{title:"Active Project",description:"Navidrome has new releases on a regular basis, adding features and bug fixes."}],tags:["Media","Music","Streaming"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ND_SCANSCHEDULE=1h","ND_LOGLEVEL=info","ND_SESSIONTIMEOUT=24h","ND_ENABLEGRAVATAR=true","ND_ENABLESHARING=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4533}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"music",mountPath:"/music"}]}}),{services:t}}},{slug:"neko-rooms",meta:{name:"Neko Rooms",description:"Neko Rooms is a self-hosted, collaborative virtualized browser-sharing platform that enables users to share and interact with web applications in a fully isolated and secure environment. It allows multiple users to join a shared session, providing seamless co-browsing experiences with synchronized interactions. Neko Rooms is built for teams, support agents, and anyone needing real-time, interactive browsing collaboration. It is optimized for low-latency streaming and supports multiple configurations for enhanced flexibility and performance.",instructions:null,changeLog:[{date:"2025-03-14",description:"First Release"},{date:"2025-12-29",description:"Version bumped to 1.6.4"},{date:"2026-05-04",description:"Version bumped to 1.6.5"}],links:[{label:"Github",url:"https://github.com/m1k1o/neko-rooms"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"neko-rooms"},appServiceImage:{type:"string",title:"App Service Image",default:"m1k1o/neko-rooms:1.6.5"}}},benefits:[{title:"Secure Remote Browsing",description:"Neko Rooms provides a fully isolated, secure browsing environment, preventing data leaks and ensuring privacy for collaborative sessions."},{title:"Real-Time Collaboration",description:"Share your browser session with multiple users in real time, enabling co-browsing, presentations, and collaborative web interactions."},{title:"Multi-User Support",description:"Neko Rooms allows multiple users to join the same session, interact simultaneously, and work together on web applications."}],features:[{title:"Low-Latency Streaming",description:"Optimized for minimal delay, ensuring smooth and responsive browsing sessions for all participants."},{title:"Multi-User Synchronization",description:"Keep all participants synchronized with shared controls, allowing seamless interaction within the session."},{title:"Customizable Environment",description:"Configure your instance with various settings, including network policies, session persistence, and resource limits."},{title:"Secure Containerization",description:"Neko Rooms runs in a secure, containerized environment to ensure complete isolation from the host system."},{title:"Integration with Reverse Proxies",description:"Supports integration with Traefik, NGINX, and other reverse proxies for better scalability and access management."}],tags:["Remote Collaboration","Virtualized Browser","Self-Hosted","Secure Browsing"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TZ=Europe/Vienna","NEKO_ROOMS_MUX=true","NEKO_ROOMS_EPR=59000-59049","NEKO_ROOMS_NAT1TO1=127.0.0.1","NEKO_ROOMS_INSTANCE_URL=http://127.0.0.1:8080/","NEKO_ROOMS_INSTANCE_NETWORK=neko-rooms-net","NEKO_ROOMS_TRAEFIK_ENABLED=false","NEKO_ROOMS_PATH_PREFIX=/room/"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"neo4j",meta:{name:"Neo4j",description:"Neo4j is a native graph database that brings data relationships to the foreground. It's designed to store, manage, and analyze connected data efficiently. Neo4j is particularly well-suited for applications that need to model complex relationships between entities, such as social networks, recommendation engines, fraud detection, and knowledge graphs.",instructions:null,changeLog:[{date:"2025-03-26",description:"Initial template release"},{date:"2025-07-24",description:"Update to Neo4j 5.26.9"},{date:"2025-12-29",description:"Version bumped to 5.26.19"}],links:[{label:"Website",url:"https://neo4j.com/"},{label:"Documentation",url:"https://neo4j.com/docs/"},{label:"Docker Hub",url:"https://hub.docker.com/_/neo4j"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","neo4jUser","neo4jPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"neo4j"},appServiceImage:{type:"string",title:"Neo4j Image",default:"neo4j:5.26.19"},neo4jPassword:{type:"string",title:"Neo4j Password",description:"Password for the neo4j user",default:"password"},neo4jUser:{type:"string",title:"Neo4j User",description:"User for the neo4j database",default:"neo4j"}}},benefits:[{title:"Native Graph Database",description:"Optimized for storing and querying connected data."},{title:"Powerful Query Language",description:"Cypher query language for intuitive graph operations."},{title:"Scalability",description:"Scale horizontally and vertically as needed."},{title:"Rich Ecosystem",description:"Extensive tools, libraries, and integrations."}],features:[{title:"Graph Database",description:"Native graph storage and processing."},{title:"ACID Compliance",description:"Full ACID compliance for data consistency."},{title:"Browser Interface",description:"User-friendly web interface for database management."},{title:"Plugin Support",description:"Extensible through custom plugins."}],tags:["Database","Graph Database","NoSQL","Analytics","Knowledge Graph"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["NEO4J_AUTH=".concat(e.neo4jUser,"/").concat(e.neo4jPassword)].join("\n"),mounts:[{type:"volume",name:"neo4j_logs",mountPath:"/logs"},{type:"volume",name:"neo4j_config",mountPath:"/config"},{type:"volume",name:"neo4j_data",mountPath:"/data"},{type:"volume",name:"neo4j_plugins",mountPath:"/plugins"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:7474}]}}),{services:t}}},{slug:"netalertx",meta:{name:"NetAlertX",description:"NetAlertX is a network monitoring and notification framework that scans your Wi-Fi/LAN network and alerts you when new or unknown devices are detected. It provides real-time network device discovery, ARP scanning, and customizable alert notifications. Built for network administrators and security-conscious users, NetAlertX helps you maintain visibility over your network by tracking connected devices and identifying unauthorized access. The application features a web-based dashboard, GraphQL API, and supports various notification methods to keep you informed about network changes.",instructions:null,changeLog:[{date:"2026-01-15",description:"Template Release"},{date:"2026-05-04",description:"Version bumped to 26.5.4"}],links:[{label:"Website",url:"https://netalertx.com"},{label:"GitHub",url:"https://github.com/jokob-sk/NetAlertX"},{label:"Documentation",url:"https://docs.netalertx.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"netalertx"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/jokob-sk/netalertx:26.5.4"}}},benefits:[{title:"Network Device Discovery",description:"Automatically scan and discover all devices on your Wi-Fi/LAN network, providing complete visibility into connected devices."},{title:"Real-Time Alerts",description:"Receive immediate notifications when new or unknown devices join your network, helping you detect unauthorized access."},{title:"Network Security Monitoring",description:"Maintain awareness of all devices on your network to identify potential security threats or unauthorized connections."},{title:"Self-Hosted Privacy",description:"All network scanning and monitoring happens locally on your infrastructure, ensuring complete privacy and data control."},{title:"Customizable Notifications",description:"Configure alert notifications through various methods to stay informed about network changes."}],features:[{title:"ARP Network Scanning",description:"Advanced ARP scanning capabilities for comprehensive network device discovery and monitoring."},{title:"Web Dashboard",description:"Modern web-based interface for viewing network devices, managing alerts, and configuring monitoring settings."},{title:"GraphQL API",description:"Powerful GraphQL API for programmatic access to network data and integration with other tools."},{title:"Device Tracking",description:"Track known and unknown devices, maintain device history, and identify new connections in real-time."},{title:"Customizable Alerts",description:"Configure alert rules and notification methods to be notified when specific network events occur."},{title:"Network Visualization",description:"Visual representation of your network topology and connected devices for better understanding of network structure."}],tags:["Network Monitoring","Security","Device Discovery","ARP Scanning","Self-Hosted","Network Management","Alerts"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:20211}],env:['LISTEN_ADDR="0.0.0.0"','PORT="20211"','GRAPHQL_PORT="20212"','APP_CONF_OVERRIDE={"GRAPHQL_PORT":"20212"}'].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"bind",hostPath:"/etc/localtime",mountPath:"/etc/localtime"}],deploy:{capAdd:["NET_ADMIN","NET_RAW","NET_BIND_SERVICE"]}}}),{services:t}}},{slug:"netbird",meta:{name:"NetBird",description:"This template deploys a headless NetBird client/peer container that joins an existing NetBird network using a setup key. It does not deploy the NetBird management service, signal relay, or web dashboard. Use it to bootstrap a node on your private mesh for remote access, site-to-site connectivity, or secure service reachability over WireGuard.",instructions:"This template runs only the NetBird client (peer). Before deploying, create an account at https://netbird.io or run your own NetBird management stack, then generate a reusable setup key. Enter that key in the NB_SETUP_KEY field during deployment. The container will join your existing NetBird network and persist client state in /var/lib/netbird.",changeLog:[{date:"2025-10-14",description:"Initial Template Release"}],links:[{label:"Website",url:"https://netbird.io"},{label:"Documentation",url:"https://docs.netbird.io"},{label:"GitHub",url:"https://github.com/netbirdio/netbird"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","setupKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"netbird"},appServiceImage:{type:"string",title:"App Service Image",default:"netbirdio/netbird:0.59.6"},setupKey:{type:"string",title:"NetBird Setup Key",description:"Setup key from your NetBird dashboard to connect this client"}}},benefits:[{title:"Zero Configuration VPN",description:"Automatically creates secure peer-to-peer connections without complex VPN server setup or port forwarding."},{title:"WireGuard Performance",description:"Built on modern WireGuard protocol providing superior speed and security compared to traditional VPN solutions."},{title:"NAT Traversal",description:"Automatically punches through NAT and firewalls to establish direct connections between peers whenever possible."},{title:"Mesh Network Topology",description:"Creates a decentralized mesh network where devices communicate directly, reducing latency and single points of failure."}],features:[{title:"Peer-to-Peer Connectivity",description:"Direct device-to-device connections within your private network with automatic peer discovery and connection."},{title:"Secure Encryption",description:"End-to-end encryption using WireGuard's state-of-the-art cryptography for all network traffic between peers."},{title:"Cross-Platform Support",description:"Connect devices across different platforms and networks into a unified secure private network."},{title:"Network Management",description:"Centralized management dashboard for controlling access, monitoring connections, and managing your private network."}],tags:["VPN","WireGuard","Mesh Network","Networking","Security","Remote Access","Peer-to-Peer"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NB_SETUP_KEY=".concat(e.setupKey)].join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"netbird-client",mountPath:"/var/lib/netbird"}],deploy:{capAdd:["NET_ADMIN","SYS_ADMIN","SYS_RESOURCE"]}}}),{services:t}}},{slug:"netbox",meta:{name:"Netbox",description:"NetBox is a comprehensive solution designed to be the single source of truth for everything on your network. It provides a detailed overview of both physical and virtual assets, including power systems, cabling, IP addresses, and VLANs. The app is designed to facilitate network automation and monitoring, drawing from an authoritative plan to push out configurations and monitor changes across the enterprise. It offers a complete DCIM solution, providing visibility and control across the entire enterprise. NetBox also features efficient IP Address Management, ensuring the safe and efficient management of IP assets across the enterprise, thereby minimizing the risk of data entry errors. The app is customizable and can be integrated to extend its functionality to fit your specific needs.",instructions:null,changeLog:[{date:"2023-3-17",description:"first release"},{date:"2024-10-19",description:"Update to 4.1.4"},{date:"2025-02-28",description:"Version bumped to 4.2.4"},{date:"2025-07-24",description:"Update to 4.3.4"},{date:"2025-12-29",description:"Version bumped to 4.4.9"},{date:"2026-02-21",description:"Version bumped to 4.5.3"},{date:"2026-05-04",description:"Version bumped to 4.5.9"}],links:[{label:"Website",url:"https://netbox.dev"},{label:"Documentation",url:"https://docs.netbox.dev/"},{label:"Github",url:"https://github.com/netbox-community/netbox"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName","netboxEmail","netboxPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"netbox"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/netbox:4.5.9"},databaseServiceName:{type:"string",title:"Database Service Name",default:"netbox-db"},redisServiceName:{type:"string",title:"Database Service Name",default:"netbox-redis"},netboxEmail:{type:"string",title:"E-Mail Address"},netboxPassword:{type:"string",title:"Password"}}},benefits:[{title:"Comprehensive Network Management",description:"NetBox provides a comprehensive solution for managing everything on your network. From physical components like power systems and cabling to virtual assets like IP addresses and VLANs, NetBox serves as the source of truth for your entire network."},{title:"Efficient IP Address Management",description:"NetBox offers efficient management of IP assets across the enterprise, removing the danger from data entry errors. This ensures that your network remains organized and error-free."},{title:"Customizable and Integrable",description:"NetBox is highly customizable and can be extended to fit your specific needs. This makes it a versatile tool that can be integrated into any network environment."}],features:[{title:"Comprehensive DCIM Solution",description:"NetBox provides a comprehensive Data Center Infrastructure Management (DCIM) solution, giving you visibility and control across your entire enterprise."},{title:"IP Address Management",description:"NetBox includes a feature for efficient management of IP assets across the enterprise. This feature helps to eliminate data entry errors and keeps your network organized."},{title:"Customization and Integration",description:"NetBox allows you to customize and extend its functionality to fit your needs. This makes it a flexible tool that can be integrated into any network environment."}],tags:["Network Tools","Documentation"],logo:"logo.svg",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SUPERUSER_EMAIL=".concat(e.netboxEmail),"SUPERUSER_PASSWORD=".concat(e.netboxPassword),"ALLOWED_HOST=$(PRIMARY_DOMAIN)","DB_NAME=$(PROJECT_NAME)","DB_USER=postgres","DB_PORT=5432","DB_PASSWORD=".concat(i),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.redisServiceName),"REDIS_PORT=6379","REDIS_PASSWORD=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:a}}),{services:t}}},{slug:"nextcloud",meta:{name:"Nextcloud",description:"Nextcloud Hub 5 is a comprehensive platform that integrates the four key Nextcloud products: Files, Talk, Groupware, and Office. It is designed to optimize the flow of collaboration, providing a seamless experience for users. Nextcloud Files offers an on-premise Universal File Access and sync platform with powerful collaboration capabilities and interfaces for desktop, mobile, and web. The platform ensures no data leaks to third parties, providing you with full control over your data. It is customizable, scalable, and can be deployed on-premises or in the cloud. Nextcloud is committed to providing technology that fits perfectly with your organization, whether it's a government entity, enterprise, service provider, or educational institution. It is the most popular self-hosted collaboration solution, used by tens of millions of users at thousands of organizations across the globe.",instructions:null,changeLog:[{date:"2022-07-22",description:"first release"},{date:"2024-10-19",description:"Update to 30.0.1"},{date:"2025-02-28",description:"Version bumped to 31.0.0"},{date:"2025-07-24",description:"Update to 31.0.7"},{date:"2025-12-29",description:"Version bumped to 32.0.3"},{date:"2026-05-04",description:"Version bumped to 33.0.3"}],links:[{label:"Website",url:"https://nextcloud.com/"},{label:"Documentation",url:"https://docs.nextcloud.com/"},{label:"Github",url:"https://github.com/nextcloud"}],contributors:[{name:"Raul Bedeoan",url:"https://github.com/bedeoan"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nextcloud"},appServiceImage:{type:"string",title:"App Service Image",default:"nextcloud:33.0.3"},databaseType:{type:"string",title:"Database Type",default:"sqlite",oneOf:[{enum:["sqlite"],title:"SQLite"},{enum:["postgres"],title:"Postgres"},{enum:["mariadb"],title:"MariaDB"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"nextcloud-db"}}},benefits:[{title:"Regain Control Over Your Data",description:"Nextcloud Hub 5 allows you to regain control over your data, ensuring no data leaks to third parties. It offers a secure platform for data storage and collaboration."},{title:"Remote Collaboration Made Easy",description:"Nextcloud Hub 5 is designed to facilitate remote collaboration. It integrates key Nextcloud products into a single platform, optimizing the flow of collaboration."},{title:"Customizable and Scalable",description:"Nextcloud Hub 5 is customizable and scalable. It can be deployed on-premises or on the cloud, making it a perfect fit for organizations of all sizes."}],features:[{title:"Nextcloud Files",description:"Nextcloud Files offers an on-premise Universal File Access and sync platform with powerful collaboration capabilities and desktop, mobile, and web interfaces."},{title:"Nextcloud Talk",description:"Nextcloud Talk is a feature of Nextcloud Hub 5 that facilitates communication and collaboration within the platform."},{title:"Nextcloud Groupware",description:"Nextcloud Groupware is a suite of tools integrated into Nextcloud Hub 5, designed to enhance productivity and collaboration."},{title:"Nextcloud Office",description:"Nextcloud Office is a part of Nextcloud Hub 5, providing users with a suite of office tools for document editing, spreadsheet management, and more."}],tags:["File Management","Collaboration","Data Control"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=[];return"mariadb"===e.databaseType&&(i.push("MYSQL_DATABASE=$(PROJECT_NAME)","MYSQL_USER=mariadb","MYSQL_PASSWORD=".concat(a),"MYSQL_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName)),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}})),"postgres"===e.databaseType&&(i.push("POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName)),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}})),"sqlite"===e.databaseType&&i.push("SQLITE_DATABASE=$(PROJECT_NAME)"),t.push({type:"app",data:{serviceName:e.appServiceName,env:i.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html"}]}}),{services:t}}},{slug:"nexterm",meta:{name:"Nexterm",description:"Nexterm is a powerful web-based terminal emulator that provides secure and convenient terminal access through your web browser. It offers a modern interface for remote terminal operations, making it ideal for developers and system administrators who need reliable terminal access from anywhere.",instructions:null,changeLog:[{date:"2025-05-12",description:"Version 1.0.2 (First Release)"}],links:[{label:"Github",url:"https://github.com/gnmyt/Nexterm"},{label:"Website",url:"https://nexterm.dev"},{label:"Documentation",url:"https://docs.nexterm.dev"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nexterm"},appServiceImage:{type:"string",title:"App Service Image",default:"germannewsmaker/nexterm:1.0.9-OPEN-PREVIEW"}}},benefits:[{title:"Web-Based Access",description:"Access your terminal from any modern web browser without the need for additional software installation."},{title:"Secure Connection",description:"Built with security in mind, ensuring your terminal sessions are protected."},{title:"Modern Interface",description:"Clean and intuitive web interface for comfortable terminal operations."}],features:[{title:"Browser-Based Terminal",description:"Full terminal emulation directly in your web browser with support for common terminal features."},{title:"Persistent Sessions",description:"Maintains your terminal sessions and configurations across browser restarts."},{title:"Easy Deployment",description:"Simple setup process with Docker, making it easy to deploy and manage."}],tags:["Terminal","Development","Web-Based"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6989}],mounts:[{type:"volume",name:"nexterm-data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"ngrok",meta:{name:"ngrok",description:"ngrok is a secure tunneling service that creates secure tunnels from a public endpoint to a locally running web service. It's perfect for exposing local development servers, testing webhooks, and sharing your work with others. This template provides easy deployment of ngrok with configurable authentication, regions, and target services.",instructions:null,changeLog:[{date:"2025-07-16",description:"first release"},{date:"2025-12-29",description:"Version bumped to 3.34.1"},{date:"2026-02-21",description:"Version bumped to 3.36.1"},{date:"2026-05-04",description:"Version bumped to 3.39.1"}],links:[{label:"Website",url:"https://ngrok.com"},{label:"Documentation",url:"https://ngrok.com/docs"},{label:"GitHub",url:"https://github.com/ngrok/ngrok"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","ngrokAuthToken","ngrokServiceName","ngrokTargetPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ngrok"},appServiceImage:{type:"string",title:"App Service Image",default:"ngrok/ngrok:3.39.1-alpine"},ngrokAuthToken:{type:"string",title:"ngrok Auth Token",default:""},ngrokServiceName:{type:"string",title:"ngrok Service Name",default:"ngrok",description:"The name of the service that will be tunneled."},ngrokTargetPort:{type:"string",title:"ngrok Target Port",default:"",description:"The port of the service that will be tunneled."}}},benefits:[{title:"Secure Tunneling",description:"Create secure tunnels from public endpoints to your locally running services, perfect for development and testing."},{title:"Easy Webhook Testing",description:"Test webhooks and integrations by exposing your local development server to the internet with a public URL."},{title:"Multiple Protocols",description:"Support for HTTP, HTTPS, and TCP protocols to tunnel various types of services and applications."},{title:"Global Regions",description:"Choose from multiple global regions to optimize latency and performance for your specific use case."},{title:"Custom Domains",description:"Use custom domains for your tunnels with ngrok Pro plan, providing professional URLs for your services."}],features:[{title:"Web Interface",description:"Access the ngrok web interface to inspect HTTP requests, view tunnel status, and manage your tunnels through a user-friendly dashboard."},{title:"Request Inspection",description:"Inspect all HTTP requests and responses in real-time, making debugging and development much easier."},{title:"Authentication",description:"Secure your tunnels with ngrok authentication tokens, ensuring only authorized access to your services."},{title:"Region Selection",description:"Choose from multiple global regions to optimize performance and reduce latency for your specific geographic location."},{title:"Protocol Support",description:"Support for HTTP, HTTPS, and TCP protocols, allowing you to tunnel various types of services and applications."},{title:"Custom Domains",description:"Use custom domains for your tunnels with ngrok Pro plan, providing professional and memorable URLs for your services."}],tags:["Tunneling","Development","Webhooks","Testing","Networking"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4040}],env:["NGROK_AUTHTOKEN=".concat(e.ngrokAuthToken)].join("\n"),deploy:{command:"./entrypoint.sh http $(PROJECT_NAME)_".concat(e.ngrokServiceName,":").concat(e.ngrokTargetPort)}}}),{services:t}}},{slug:"nitropage",meta:{name:"Nitropage",description:"Nitropage is an extensible, drag-and-drop website builder based on SolidStart, designed for individualists who want complete control over their web design. It is completely free and open source, offering a flexible and intuitive platform for building visually stunning websites without coding. Nitropage supports modular extensions, making it ideal for both beginners and advanced users who seek a personalized and efficient web development experience.",instructions:null,changeLog:[{date:"2025-01-10",description:"Initial Template Release"},{date:"2025-07-24",description:"Update to 0.68.2"},{date:"2025-12-29",description:"Version bumped to 0.69.0"},{date:"2026-05-04",description:"Version bumped to 0.70.1"}],links:[{label:"Website",url:"https://nitropage.com/"},{label:"Documentation",url:"https://nitropage.com/docs"},{label:"Github",url:"https://codeberg.org/nitropage/nitropage"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nitropage"},appServiceImage:{type:"string",title:"App Service Image",default:"codeberg.org/nitropage/nitropage:0.70.1-sqlite"}}},benefits:[{title:"Drag-and-Drop Simplicity",description:"Create beautiful websites effortlessly with Nitropage\u2019s drag-and-drop editor, perfect for users of all skill levels."},{title:"Free and Open Source",description:"Enjoy the freedom of an open-source platform with no licensing costs."},{title:"SolidStart Framework",description:"Built on the SolidStart framework, ensuring a fast and responsive user experience."}],features:[{title:"Visual Website Editing",description:"Design and customize websites in real-time with a powerful visual editor."},{title:"Customizable Themes",description:"Choose from a variety of themes and customize them to fit your unique style and branding."},{title:"Lightweight and Fast",description:"Nitropage ensures your websites load quickly, providing a smooth user experience."},{title:"Responsive Design",description:"Build mobile-friendly websites that look great on any device."},{title:"Version Control",description:"Track changes and revert to previous versions with built-in version control."},{title:"Solid Integration",description:"Seamlessly integrate with the SolidStart framework for modern web development."}],tags:["Website Builder","Drag-and-Drop","Open Source","Visual Editor","SolidStart"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=file:../../.data/dev.db","NP_AUTH_SALT=".concat(a),"NP_AUTH_PASSWORD=".concat(i)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/admin",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/app/.data"}]}}),{services:t}}},{slug:"nocobase",meta:{name:"Nocobase",description:"NocoBase is an open-source, no-code development platform designed with scalability in mind. It allows you to build your own collaboration platform or management system without any programming required. With NocoBase, you can create independent data models using a variety of field types and association relationships. The platform also provides a free combination of block types for displaying and manipulating data within a page. It supports various operations to process data, including filtering, exporting, adding, deleting, modifying, and viewing. NocoBase also features role-based control of user's system configuration rights, data action rights, and menu access rights. It replaces repetitive tasks with automation to increase efficiency and requires manual approval for important matters. NocoBase is built for extended development with a microkernel architecture that is flexible and easy to extend. It is Node.js-based and uses popular frameworks and technologies.",instructions:"The initial account and password are [email protected] and admin123.",changeLog:[{date:"2023-3-29",description:"first release"},{date:"2025-02-28",description:"Version bumped to 1.5.18"},{date:"2025-07-24",description:"Update to 1.8.7"},{date:"2025-12-29",description:"Version bumped to 1.9.32"},{date:"2026-01-24",description:"Version bumped to 1.9.39"},{date:"2026-05-04",description:"Version bumped to 2.0.48"}],links:[{label:"Website",url:"https://www.nocobase.com/"},{label:"Documentation",url:"https://docs.nocobase.com"},{label:"Github",url:"https://github.com/nocobase/nocobase"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nocobase"},appServiceImage:{type:"string",title:"App Service Image",default:"nocobase/nocobase:2.0.48"},databaseServiceName:{type:"string",title:"Database Service Name",default:"nocobase-db"}}},benefits:[{title:"No-Code Development",description:"NocoBase is a no-code development platform, meaning you can build your own collaboration platform or management system without any programming knowledge."},{title:"Scalability",description:"NocoBase is designed with scalability in mind, making it an ideal choice for growing businesses and organizations."},{title:"Full Code Ownership",description:"With NocoBase, you have full ownership of your code, allowing for private deployment and secure data handling."},{title:"Flexibility",description:"NocoBase is built for extended development with a microkernel architecture, making it flexible and easy to extend."}],features:[{title:"Data Model",description:"Create independent data models using a variety of field types and association relationships."},{title:"Block",description:"Display and manipulate data within a page using a free combination of block types."},{title:"Action",description:"Supports a variety of operations to process data, which can be extended to more types."},{title:"ACL",description:"Role-based control of user's system configuration rights, data action rights and menu access rights."},{title:"Workflow",description:"Automate repetitive tasks to increase efficiency, with manual approval required for important matters."}],tags:["No-Code","Business Apps","Data Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_DIALECT=postgres","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_DATABASE=$(PROJECT_NAME)","DB_USER=postgres","DB_PASSWORD=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"storage",mountPath:"/app/nocobase/storage"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"nocodb",meta:{name:"NocoDB",description:"NocoDB is an innovative open-source platform that transforms any database into a smart spreadsheet. It's a powerful alternative to Airtable, designed to be flexible and user-friendly. With NocoDB, you can create unlimited grid views, gallery views, and form views from your own data. It offers ultra-ease in searching, sorting, and filtering columns and rows. You can invite your team with fine-grained access control, share views publicly or with password protection. NocoDB also allows you to build automations with your favourite apps like Microsoft Teams, Slack, Discord, Whatsapp, Twilio, Email & SMS. It provides instant REST APIs with Swagger. NocoDB is trusted by over 2000 organizations worldwide and is the fastest growing open source project. It's free and self-hostable, offering endless solutions for your business workflows.",instructions:null,changeLog:[{date:"2023-02-8",description:"first release"},{date:"2025-02-28",description:"Version bumped to 0.262.1"},{date:"2025-07-24",description:"Update to 0.263.8"},{date:"2025-12-29",description:"Version bumped to 0.265.1"},{date:"2026-02-21",description:"Version bumped to 0.301.2"},{date:"2026-05-08",description:"Version bumped to 2026.05.0"}],links:[{label:"Website",url:"https://www.nocodb.com/"},{label:"Documentation",url:"https://docs.nocodb.com/getting-started/installation/"},{label:"Github",url:"https://github.com/nocodb/nocodb"}],contributors:[{name:"spacec0de",url:"https://github.com/spacec0de"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nocodb"},appServiceImage:{type:"string",title:"App Service Image",default:"nocodb/nocodb:2026.05.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"nocodb-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"nocodb-redis"}}},benefits:[{title:"Turn Any Database into a Smart Spreadsheet",description:"NocoDB is an open source platform that can transform any database into a smart spreadsheet. This allows for easy data management and manipulation, similar to using a regular spreadsheet, but with the power and flexibility of a database."},{title:"Trusted by Thousands of Organizations",description:"NocoDB is trusted by over 2000 organizations worldwide. Its fast growth and high adoption rate is a testament to its effectiveness and reliability."},{title:"Create Endless Solutions",description:"NocoDB is free and self-hostable, allowing you to create unlimited grid views, gallery views, and form views from your own data. It offers a high degree of customization and flexibility, letting your imagination be the limit."},{title:"Automate Business Workflows",description:"NocoDB allows you to build automations with your favorite apps such as Microsoft Teams, Slack, Discord, Whatsapp, Twilio, Email & SMS. This can greatly streamline your business workflows and increase productivity."}],features:[{title:"Easy Data Management",description:"NocoDB allows you to easily search, sort, and filter columns and rows. It also supports collaboration just like a spreadsheet, making it easy for teams to work together on the same data."},{title:"Fine Grained Access Control",description:"NocoDB lets you invite your team with fine grained access control. You can also share views publicly and with password protection, ensuring that your data is always secure."},{title:"Instant REST APIs",description:"NocoDB provides instant REST APIs with Swagger, allowing you to easily integrate it with other software and services."},{title:"Automations",description:"NocoDB supports building automations with a wide range of apps, including Microsoft Teams, Slack, Discord, Whatsapp, Twilio, Email & SMS. This allows you to automate various tasks and processes, saving you time and effort."}],tags:["No-Code","Databases"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32);return t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:15",password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"NC_REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"NC_AUTH_JWT_SECRET=".concat(o),"NC_PUBLIC_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/usr/app/data"}]}}),{services:t}}},{slug:"nodebb",meta:{name:"NodeBB",description:"NodeBB is a next-generation forum software that is powerful, mobile-ready, and easy to use. It is designed to provide a modern platform for your audience, fostering engagement and retaining customers. With NodeBB, you can enjoy a perfect experience on every device and screen, thanks to its mobile-first software. It offers built-in localization support with over 50 languages actively translated, making it a truly global platform. NodeBB is also search optimized with human-readable URLs, semantic HTML with embedded microdata, and more. It allows for social media integration, bringing more visitors to your community by sharing content to Facebook, Google, and Twitter. NodeBB also offers real-time interaction with instant notifications, streaming posts, and real-time chats. It comes with a native analytics dashboard so you can know what content your users enjoy most. Whether you're a self-starter, a growing business, or a large corporation, NodeBB has a plan that works best for you.",instructions:null,changeLog:[{date:"2023-03-24",description:"First Release"},{date:"2026-05-04",description:"Version bumped to 2.8.11"}],links:[{label:"Website",url:"https://nodebb.org/"},{label:"Documentation",url:"https://docs.nodebb.org/"},{label:"Github",url:"https://github.com/NodeBB/NodeBB"},{label:"Demo",url:"https://try.nodebb.org/"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceType","databaseServiceName"],properties:{nodebbAdminUsername:{type:"string",title:"Admin Username"},nodebbAdminMail:{type:"string",title:"Admin Mail"},nodebbAdminPassword:{type:"string",title:"Admin Password"}
1,appServiceName:{type:"string",title:"App Service Name",default:"nodebb"},appServiceImage:{type:"string",title:"App Service Image",default:"nodebb/docker:2.8.11"},databaseServiceType:{type:"string",title:"Database Service Type",default:"mongo",oneOf:[{enum:["mongo"],title:"MongoDB"},{enum:["redis"],title:"Redis"},{enum:["postgres"],title:"Postgres"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"nodebb-db"}}},benefits:[{title:"Retain Customers & Foster Engagement",description:"NodeBB is designed to provide modern, powerful, and easy-to-use forum software. It is built to meet the expectations of the social and mobile web, helping businesses retain customers and foster engagement."},{title:"Powerful and Versatile",description:"NodeBB powers thousands of community forums, offering a platform that caters to a wide range of needs. Whether you're a self-starter, a growing business, or a large corporation, NodeBB has a solution for you."},{title:"Improved User Engagement",description:"NodeBB has been proven to increase user engagement. Its user-friendly interface and rich features make it a preferred choice for businesses looking to revamp their community forums."}],features:[{title:"Mobile-First Responsive",description:"NodeBB is designed with a mobile-first approach, ensuring a perfect experience on every device and screen."},{title:"Internationalization",description:"NodeBB supports over 50 languages, making it a truly global platform."},{title:"Search Optimized",description:"NodeBB enhances your rankings with human-readable URLs, semantic HTML with embedded microdata, and more."},{title:"Social Media Integration",description:"NodeBB allows you to bring more visitors to your community by sharing content to Facebook, Google, and Twitter."},{title:"Real-Time Interaction",description:"NodeBB enables faster connections with instant notifications, streaming posts, and real-time chats."},{title:"Native Analytics",description:"NodeBB provides a real-time analytics dashboard, helping you understand what content your users enjoy most."}],tags:["Forums","Communication","Mobile-first","Real-time","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4567}],env:["SETUP=1","NODEBB_URL=https://$(PRIMARY_DOMAIN)","NODEBB_ADMIN_EMAIL=".concat(e.nodebbAdminMail||"[email protected]"),"NODEBB_ADMIN_USERNAME=".concat(e.nodebbAdminUsername||"admin"),"NODEBB_ADMIN_PASSWORD=".concat(e.nodebbAdminPassword||v()),"NODEBB_DB=".concat(e.databaseServiceType),"NODEBB_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"NODEBB_DB_USER=".concat("redis"===e.databaseServiceType?"default":e.databaseServiceType),"NODEBB_DB_PASSWORD=".concat(a),"NODEBB_DB_NAME=".concat("mongo"===e.databaseServiceType?"admin":"redis"===e.databaseServiceType?0:"$(PROJECT_NAME)")].join("\n"),mounts:[{type:"volume",name:"app",mountPath:"/usr/src/app"}]}}),t.push({type:e.databaseServiceType,data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"nodecast-tv",meta:{name:"NodeCast TV",description:"NodeCast TV is a self-hosted media casting and streaming application that allows you to cast and stream media content to various devices. Built with Node.js, NodeCast TV provides a simple and efficient way to manage and stream your media library. It features a web-based interface accessible on port 3000 and stores application data in a persistent volume for reliable operation. Perfect for home media servers and self-hosting enthusiasts looking for a lightweight media casting solution.",instructions:null,changeLog:[{date:"2025-01-17",description:"Initial Template Release"},{date:"2026-05-04",description:"Version bumped to 2.1.1"}],links:[{label:"GitHub",url:"https://github.com/technomancer702/nodecast-tv"},{label:"Container",url:"https://github.com/technomancer702/nodecast-tv/pkgs/container/nodecast-tv"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nodecast-tv"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/technomancer702/nodecast-tv:2.1.1"}}},benefits:[{title:"Media Casting",description:"Stream and cast your media content to various devices with a simple and intuitive web interface."},{title:"Self-Hosted Solution",description:"Keep your media streaming private and under your control with a self-hosted deployment."},{title:"Lightweight and Fast",description:"Built with Node.js for efficient performance with minimal resource requirements."},{title:"Persistent Storage",description:"Application data is stored in a persistent volume, ensuring your configuration and media library are preserved across restarts."}],features:[{title:"Web-Based Interface",description:"Access your media casting application through a modern web interface on port 3000."},{title:"Media Streaming",description:"Stream and cast media content to compatible devices on your network."},{title:"Data Persistence",description:"Application data is stored in a dedicated volume at /app/data for reliable data management."},{title:"Production Ready",description:"Configured for production deployment with optimized Node.js environment settings."},{title:"Containerized Deployment",description:"Easily deploy NodeCast TV in any environment that supports Docker with minimal configuration."}],tags:["Media","Streaming","Casting","Self-Hosted","Node.js","Media Server"],logo:null,screenshots:["screenshot.png","screenshot1.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["NODE_ENV=production","PORT=3000"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"nodered",meta:{name:"Node-RED",description:"Node-RED is a unique programming tool designed for creating event-driven applications in a low-code environment. It allows you to connect hardware devices, APIs, and online services in innovative ways. The app features a browser-based editor that simplifies the process of creating flows using a wide array of nodes available in the palette. These flows can be deployed to its runtime with just a single click. Node-RED also allows you to create JavaScript functions within the editor using a rich text editor and save useful functions, templates, or flows for future use. Built on Node.js, Node-RED is lightweight and can run on low-cost hardware like Raspberry Pi or in the cloud. It also supports the import and export of flows in JSON format for easy sharing.",instructions:null,changeLog:[{date:"2022-10-28",description:"first release"},{date:"2025-02-28",description:"Version bumped to 4.0.9-22"},{date:"2025-12-29",description:"Version bumped to 4.1.2-22"},{date:"2026-02-21",description:"Version bumped to 4.1.5-22"},{date:"2026-05-04",description:"Version bumped to 4.1.8-22"}],links:[{label:"Website",url:"https://nodered.org/"},{label:"Documentation",url:"https://nodered.org/docs/"},{label:"Forum",url:"https://discourse.nodered.org/"},{label:"Github",url:"https://github.com/node-red"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nodered"},appServiceImage:{type:"string",title:"App Service Image",default:"nodered/node-red:4.1.8-22"}}},benefits:[{title:"Low-Code Programming",description:"Node-RED offers a low-code programming environment, making it accessible for users with varying levels of technical expertise. It allows for the creation of event-driven applications in an efficient and user-friendly manner."},{title:"Versatile Integration",description:"The app allows for the integration of hardware devices, APIs, and online services in new and innovative ways. This opens up a wide range of possibilities for creating unique and customized applications."},{title:"Flexible Deployment",description:"Node-RED can be run on various platforms, from low-cost hardware like Raspberry Pi to cloud services. This makes it a flexible tool that can be adapted to different needs and environments."}],features:[{title:"Browser-Based Flow Editing",description:"Node-RED provides a browser-based editor that simplifies the process of wiring together flows. It offers a wide range of nodes in the palette that can be deployed to its runtime in a single click."},{title:"JavaScript Function Creation",description:"Within the editor, users can create JavaScript functions using a rich text editor. A built-in library is also available for saving useful functions, templates, or flows for future use."},{title:"Flow Sharing",description:"Flows created in Node-RED are stored using JSON, which can be easily imported and exported. This feature facilitates the sharing of flows, allowing users to learn from each other and improve their own applications."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8800}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"novu",meta:{name:"Novu",description:"Novu is an open-source notification infrastructure platform that provides a unified API for managing notifications across multiple channels including email, SMS, push notifications, in-app notifications, and chat. This template deploys a complete Novu infrastru
1cture with separate services for API, Worker, WebSocket, and Dashboard components, backed by MongoDB and Redis. Built for developers who need reliable, scalable notification delivery with features like workflow automation, template management, subscriber management, and real-time analytics. Perfect for applications that require sophisticated notification systems with multi-channel delivery, personalization, and comprehensive tracking capabilities.",instructions:null,changeLog:[{date:"2025-07-04",description:"Initial release"},{date:"2026-05-21",description:"Version bumped to 3.15.0"}],links:[{label:"Github",url:"https://github.com/novuhq/novu"},{label:"Website",url:"https://novu.co"},{label:"Documentation",url:"https://docs.novu.co"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","apiServiceImage","workerServiceImage","wsServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"novu"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/novuhq/novu/dashboard:3.15.0"},apiServiceImage:{type:"string",title:"API Service Image",default:"ghcr.io/novuhq/novu/api:3.15.0"},workerServiceImage:{type:"string",title:"Worker Service Image",default:"ghcr.io/novuhq/novu/worker:3.15.0"},wsServiceImage:{type:"string",title:"WebSocket Service Image",default:"ghcr.io/novuhq/novu/ws:3.15.0"}}},benefits:[{title:"Multi-Channel Notifications",description:"Send notifications across email, SMS, push, in-app, and chat channels through a single unified API."},{title:"Workflow Automation",description:"Create complex notification workflows with triggers, delays, and conditional logic for sophisticated messaging."},{title:"Developer-Friendly",description:"Comprehensive APIs, SDKs, and documentation designed specifically for developers and development teams."}],features:[{title:"Unified Notification API",description:"Single API to manage notifications across all channels including email, SMS, push, in-app, and chat."},{title:"Workflow Management",description:"Visual workflow builder for creating complex notification sequences with conditions and triggers."},{title:"Template Engine",description:"Rich template system for creating and managing notification content across different channels."},{title:"Subscriber Management",description:"Comprehensive subscriber management with preferences, segmentation, and targeting capabilities."},{title:"Real-time Analytics",description:"Detailed analytics and insights into notification delivery, engagement, and performance metrics."},{title:"Provider Integration",description:"Support for multiple notification providers including SendGrid, Twilio, Firebase, and many others."}],tags:["Notifications","Multi-Channel","Email","SMS","Push Notifications","In-App Messaging","Workflow Automation","API","Open Source","Developer Tools","Analytics","Templates"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32),n=y(32),r=y(32),s=["NODE_ENV=production","MONGO_URL=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-mongodb:27017/$(PROJECT_NAME)?authSource=admin"),"MONGO_MIN_POOL_SIZE=5","MONGO_MAX_POOL_SIZE=10","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_PASSWORD=".concat(r),"NEW_RELIC_ENABLED=false","API_ROOT_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)")],c=["REDIS_DB_INDEX=2","REDIS_CACHE_SERVICE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_CACHE_SERVICE_PORT=6379","S3_LOCAL_STACK=false","S3_BUCKET_NAME=novu-local","S3_REGION=us-east-1","AWS_ACCESS_KEY_ID=test","AWS_SECRET_ACCESS_KEY=test","STORE_ENCRYPTION_KEY=".concat(o),"SUBSCRIBER_WIDGET_JWT_EXPIRATION_TIME=15d"];return t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-mongodb"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:r}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),source:{type:"image",image:e.apiServiceImage},env:Ye(s).concat(Ye(c),["PORT=3000","FRONT_BASE_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-dashboard.$(EASYPANEL_HOST)"),"JWT_SECRET=".concat(i),"NOVU_SECRET_KEY=".concat(n),"API_CONTEXT_PATH=","MONGO_AUTO_CREATE_INDEXES=true","IS_API_IDEMPOTENCY_ENABLED=false","IS_API_RATE_LIMITING_ENABLED=false","IS_NEW_MESSAGES_API_RESPONSE_ENABLED=true","STEP_RESOLVER_DISPATCH_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)"),"IS_V2_ENABLED=true","IS_SELF_HOSTED=true"]).join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),source:{type:"image",image:e.workerServiceImage},env:Ye(s).concat(Ye(c),["PORT=3004","BROADCAST_QUEUE_CHUNK_SIZE=100","MULTICAST_QUEUE_CHUNK_SIZE=100","IS_EMAIL_INLINE_CSS_DISABLED=false","IS_USE_MERGED_DIGEST_ID_ENABLED=false","STEP_RESOLVER_DISPATCH_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)"),"IS_SELF_HOSTED=true"]).join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-ws"),source:{type:"image",image:e.wsServiceImage},env:Ye(s).concat(["PORT=3002","JWT_SECRET=".concat(i),"WS_CONTEXT_PATH="]).join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3002}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-dashboard"),source:{type:"image",image:e.appServiceImage},env:["PORT=4000","VITE_API_HOSTNAME=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)"),"VITE_SELF_HOSTED=true","VITE_WEBSOCKET_HOSTNAME=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-ws.$(EASYPANEL_HOST)"),"VITE_LEGACY_DASHBOARD_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-dashboard.$(EASYPANEL_HOST)")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}
1]}}),{services:t}}},{slug:"ntfy",meta:{name:"Ntfy",description:"ntfy, pronounced as 'notify', is a simple, HTTP-based pub-sub notification service that allows you to send push notifications to your phone or desktop from any computer. It operates via scripts using simple HTTP PUT or POST requests. This makes it a handy tool for notifying yourself when scripts fail or when long-running commands complete. To use ntfy, you simply need to install the app on your phone, subscribe to a topic of your choice, and start sending messages to your topic. The app is available on Google Play, F-Droid, and the App Store. ntfy is open-source and free to use, but also offers paid plans for those who wish to support its development.",instructions:null,changeLog:[{date:"2022-11-21",description:"first release"},{date:"2025-07-24",description:"Update to v2.13"},{date:"2025-12-29",description:"Version bumped to v2.15"},{date:"2026-02-21",description:"Version bumped to v2.17"},{date:"2026-05-04",description:"Version bumped to v2.22"}],links:[{label:"Documentation",url:"https://docs.ntfy.sh"},{label:"Github",url:"https://github.com/binwiederhier/ntfy"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ntfy"},appServiceImage:{type:"string",title:"App Service Image",default:"binwiederhier/ntfy:v2.22"}}},benefits:[{title:"Instant Notifications",description:"With ntfy, you can receive instant push notifications on your phone or desktop. This can be particularly useful for keeping track of scripts or long-running commands, as you'll be notified immediately when they fail or complete."},{title:"Easy to Use",description:"ntfy is designed to be simple and straightforward to use. You can send notifications using simple HTTP PUT or POST requests, and there's no need to sign up or pay any fees."},{title:"Open Source",description:"ntfy is an open-source app, which means you can review its code, contribute to its development, or even run your own instance of the service if you wish."}],features:[{title:"Push Notifications",description:"ntfy allows you to send push notifications to your phone or desktop. You can use scripts from any computer to send these notifications, making it a versatile tool for a variety of use cases."},{title:"Topic Subscription",description:"With ntfy, you can subscribe to a topic of your choosing. Once you've subscribed, the app will listen for new messages on that topic and notify you when they arrive."},{title:"Message Publishing",description:"ntfy makes it easy to publish messages to your chosen topic. You can do this using HTTP PUT/POST requests, or with the ntfy CLI. The message is included in the request body."}],tags:["Notifications","Push Notifications","Mobile Notifications","Desktop Notifications"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["BASE_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"cache",mountPath:"/var/cache/ntfy"},{type:"volume",name:"etc",mountPath:"/etc/ntfy"}],deploy:{command:"ntfy serve"}}}),{services:t}}},{slug:"nzbget",meta:{name:"Nzbget",description:"NZBGet is an efficient Usenet downloader that is open source and hosted on GitHub. This powerful tool is designed to download files from Usenet based on information provided in nzb-files. Known for its performance and efficiency, NZBGet is written in C++ and can run on almost any device, including classic PCs, NAS, media players, SAT-receivers, WLAN-routers, and more. It provides precompiled binaries for Windows, macOS, Linux, FreeBSD, and Android. The app also offers features like RSS and duplicate check for automating your downloads, VideoSort for sorting downloaded video files, and various scripts for enhancing functionality. With NZBGet, you can maximize your device's performance and improve your downloading experience.",instructions:"Default username=nzbget, password=tegbzn6789",changeLog:[{date:"2022-07-12",description:"first release"},{date:"2025-02-28",description:"Version bumped to version-v24.6"},{date:"2025-12-29",description:"Version bumped to version-v25.4"}],links:[{label:"Website",url:"https://nzbget.net/"},{label:"Documentation",url:"https://nzbget.net/documentation"},{label:"Github",url:"https://github.com/nzbget/nzbget"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nzbget"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/nzbget:version-v25.4"},username:{type:"string",title:"Username",default:"nzbget"},password:{type:"string",title:"Password",default:"tegbzn6789"},serviceTimezone:{type:"string",title:"Timezone",default:"Europe/London"}}},benefits:[{title:"Efficient Usenet Downloader",description:"NZBGet is a highly efficient Usenet downloader, known for its performance and efficiency. It downloads files from Usenet based on information given in nzb-files, making it a reliable tool for accessing Usenet content."},{title:"Cross-Platform Compatibility",description:"NZBGet is compatible with a wide range of devices and platforms including Windows, macOS, Linux, FreeBSD, and Android. Whether you're using a classic PC, NAS, media player, SAT-receiver, or WLAN-router, NZBGet can run smoothly."}],features:[{title:"Binary Downloader",description:"NZBGet is a binary downloader, which means it downloads files in binary format from Usenet. This allows for efficient and fast downloading of files."},{title:"Open Source",description:"NZBGet is an open-source application. This means it's constantly being improved by a community of developers, ensuring it stays up-to-date with the latest technology and features."},{title:"Performance and Efficiency",description:"Written in C++, NZBGet is known for its high performance and efficiency. It's designed to maximize your device's capabilities, ensuring fast and reliable downloads."},{title:"RSS and Duplicate Check",description:"NZBGet offers features like RSS and duplicate check to automate your downloads. This means you can set it up to automatically download new content from your favorite Usenet groups."},{title:"VideoSort",description:"With the VideoSort feature, NZBGet can sort your downloaded video files, making it easier for you to manage and organize your downloads."}],tags:["Download","Usenet","Downloader"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["NZBGET_USER=".concat(e.username),"NZBGET_PASS=".concat(e.password),"TZ=".concat(e.serviceTimezone)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:6789}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"downloads",mountPath:"/downloads"}]}}),{services:t}}},{slug:"nzbhydra2",meta:{name:"Nzbhydra2",description:"NZBHydra2 is an advanced meta search application designed to unify and manage searches across multiple Usenet and torrent indexers. It acts as a single access point for all your NZB and torrent needs, aggregating search results from various indexers to save time and improve efficiency. NZBHydra2 offers powerful filtering, duplicate management, and easy integration with automation tools like Sonarr, Radarr, and Lidarr. It provides a web-based interface for seamless configuration and search management, making it a must-have for Usenet and torrent enthusiasts.",instructions:null,changeLog:[{date:"2024-12-31",description:"First Release"},{date:"2025-07-24",description:"Update to 7.15.3"},{date:"2025-12-29",description:"Version bumped to 8.1.2"},{date:"2026-02-21",description:"Version bumped to 8.5.1"},{date:"2026-05-04",description:"Version bumped to 8.8.1"}],links:[{label:"Website",url:"https://github.com/theotherp/nzbhydra2"},{label:"Documentation",url:"https://github.com/theotherp/nzbhydra2/wiki"},{label:"Github",url:"https://github.com/theotherp/nzbhydra2"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nzbhydra2"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/nzbhydra2:8.8.1"}}},benefits:[{title:"Unified Search",description:"NZBHydra2 consolidates search results from multiple Usenet and torrent indexers, providing a single interface for all your search needs."},{title:"Easy Integration",description:"Integrates seamlessly with popular automation tools like Sonarr, Radarr, and Lidarr for an automated media setup."},{title:"Advanced Filtering",description:"Powerful filtering options to refine search results and download only the content you want."},{title:"Duplicate Management",description:"Automatically identifies and removes duplicate results to avoid unnecessary downloads."},{title:"Web-Based Interface",description:"Manage and configure NZBHydra2 from any device using its user-friendly web interface."}],features:[{title:"Meta Search for NZBs and Torrents",description:"Search multiple Usenet and torrent indexers simultaneously from a single application."},{title:"Customizable Filters",description:"Set up custom filters to fine-tune search results and downloads based on your preferences."},{title:"Indexer Statistics",description:"View detailed statistics about indexer performance, including response times and search results."},{title:"Automation Tool Integration",description:"Works with Sonarr, Radarr, Lidarr, and other tools to automate downloading and managing your media."},{title:"Proxy Support",description:"Includes support for proxies to maintain privacy and bypass regional restrictions."},{title:"Logging and Notifications",description:"Comprehensive logging and notification options to keep you informed about search results and downloads."},{title:"Advanced Duplicate Handling",description:"Automatically detects and manages duplicates to avoid redundant downloads."},{title:"Backup and Restore",description:"Easily backup and restore your NZBHydra2 settings for hassle-free migration or recovery."},{title:"Multi-Indexer Support",description:"Supports a wide range of Usenet and torrent indexers for comprehensive search capabilities."},{title:"Performance Optimization",description:"Optimized for high performance with fast search results and minimal resource usage."}],tags:["NZB","Usenet","Torrents","Meta Search","Automation","Media Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5076}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"downloads",mountPath:"/downloads"}]}}),{services:t}}},{slug:"obsidian",meta:{name:"Obsidian",description:"Obsidian is a powerful knowledge base that works on top of a local folder of plain text Markdown files. It provides a flexible and extensible platform for note-taking, knowledge management, and personal knowledge base creation.",instructions:null,changeLog:[{date:"2025-04-11",description:"First Release"},{date:"2026-05-08",description:"Version bumped to 1.12.7"}],links:[{label:"Website",url:"https://obsidian.md"},{label:"Documentation",url:"https://help.obsidian.md"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"obsidian"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/obsidian:1.12.7"}}},benefits:[{title:"Knowledge Management",description:"Organize and manage your knowledge effectively"},{title:"Markdown Support",description:"Write and format notes using Markdown"},{title:"Graph View",description:"Visualize connections between your notes"},{title:"Self-Hosted",description:"Keep your notes private and secure"}],features:[{title:"Note Taking",description:"Create and organize notes in Markdown"},{title:"Knowledge Graph",description:"Visualize connections between notes"},{title:"Plugins",description:"Extend functionality with plugins"},{title:"Search",description:"Powerful search across all notes"},{title:"Sync",description:"Sync your notes across devices"}],tags:["Note Taking","Knowledge Base","Markdown","Self-Hosted","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),mounts:[{type:"volume",name:"obsidian-config",mountPath:"/config"}]}}),{services:t}}},{slug:"octobox",meta:{name:"Octobox",description:"Octobox is an innovative app designed to help you manage your GitHub notifications more efficiently. With Octobox, you no longer have to worry about losing track of important issues or waking up to hundreds of notifications. The app adds an extra 'archived' state to each notification, allowing you to mark it as 'done'. If there's any activity on an archived thread, issue or PR, Octobox will move it back into your inbox. You can also search and filter notifications by repository, organization, type, action, state, CI status, and reason. Octobox keeps your notifications up to date with issue/pull-request status, CI status, labels, and more. The app is free for open source projects and offers enhanced notifications for private projects at a cost. Octobox is the perfect tool for developers who want to stay organized and focused.",instructions:null,changeLog:[{date:"2023-3-22",description:"first release"},{date:"2025-02-28",description:"Version bumped to february-2025"},{date:"2025-07-24",description:"Update to july-2025"},{date:"2025-12-29",description:"Version bumped to december-2025"}],links:[{label:"Website",url:"https://octobox.io"},{label:"Documentation",url:"https://octobox.io/documentation"},{label:"Github",url:"https://github.com/octobox/octobox"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName","githubClient","githubSecret"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"octobox"},appServiceImage:{type:"string",title:"App Service Image",default:"octoboxio/octobox:december-2025"},databaseServiceName:{type:"string",title:"Database Service Name",default:"octobox-db"},redisServiceName:{type:"string",title:"Database Service Name",default:"octobox-redis"},githubClient:{type:"string",title:"Github Client ID"},githubSecret:{type:"string",title:"Github Client Secret"}}},benefits:[{title:"Efficient Notification Management",description:"Octobox helps you manage your GitHub notifications efficiently, freeing up more time for you to focus on your projects. It adds an extra 'archived' state to each notification so you can mark it as 'done'. If anything happens on an archived thread, issue or PR, Octobox will move it back into your inbox."},{title:"Stay Updated",description:"With Octobox, you can keep your notifications up to date with issue/pull-request status, CI status, labels and more shown alongside basic title, organization, repo, and type information."},{title:"Enhanced Notifications",description:"By installing the GitHub app, Octobox will pull basic public and private notification information and add live information on issue, PR, and CI status, labels, authors and more to your organization's notifications."}],features:[{title:"Archiving",description:"Octobox extends GitHub's notification model by providing an additional 'archived' status, much like Gmail's email client. Archived notifications will not appear in your inbox again unless the thread, issue or PR receives a new notification."},{title:"Starring",description:"Octobox also adds a starred status to help you highlight important notifications with a star so you can come back and find them easily. Starred notifications are not social, they are more like bookmarks that GitHub stars."},{title:"Muting",description:"Muting a notification will mark the notification as read, move it to the archive and ignore all further notifications from this thread, issue or PR. Muting also sets the thread to ignore:true ignoring further notifications on GitHub too."},{title:"Syncing",description:"By default Octobox will synchronize every time you hit the synchronize button. You can set automatic refresh interval on the settings page."},{title:"Searching",description:"Octobox's search bar supports various filter prefixes. Combine them together and with free text searches, for example: 'github enterprise type:issue owner:octobox reason:assign'. Many prefixes accept multiple arguments when separated by commas or passed twice."}],tags:["Developer Tools","Code Hosting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["RAILS_ENV=development","GITHUB_CLIENT_ID=".concat(e.githubClient),"GITHUB_CLIENT_SECRET=".concat(e.githubSecret),"OCTOBOX_DATABASE_NAME=$(PROJECT_NAME)","OCTOBOX_DATABASE_USERNAME=postgres","OCTOBOX_DATABASE_PASSWORD=".concat(a),"OCTOBOX_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"ALLOW_ALL_HOSTNAMES=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"octoprint",meta:{name:"OctoPrint",description:"OctoPrint is a comprehensive web interface designed to provide full remote control and monitoring of your 3D printer. It allows you to manage every aspect of your 3D printing jobs directly from your browser. With OctoPrint, you can access the embedded webcam feed to watch your printer in action, receive constant feedback on the progress of your print job, and even view a rendition of the GCODE you are currently printing. The app also enables you to monitor and adjust the temperatures of your hotends and print bed on the fly, move the print head along all axes, and start, stop, or pause your print job at any time. OctoPrint is compatible with most consumer 3D printers and its powerful plugin system allows for functionality extension. It is 100% open source, allowing everyone to modify it to their own needs. Additional features include creating timelapse recordings of your prints, slicing your STL files directly within the app, built-in access controls, and the ability to add system commands to the menu for easy shutdown or reboot of your OctoPrint server or printer.",instructions:null,changeLog:[{date:"2023-07-11",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 1.10.3"},{date:"2025-07-24",description:"Update to 1.11.2"},{date:"2025-12-29",description:"Version bumped to 1.11.5"},{date:"2026-02-24",description:"Version bumped to 1.11.7"}],links:[{label:"Website",url:"https://octoprint.org"},{label:"Docs",url:"https://docs.octoprint.org"},{label:"Github",url:"https://github.com/OctoPrint/OctoPrint"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{enableMjpgStreamer:{type:"boolean",title:"Enable MJPG Streamer",default:!1}
1,appServiceName:{type:"string",title:"App Service Name",default:"octoprint"},appServiceImage:{type:"string",title:"App Service Image",default:"octoprint/octoprint:1.11.7"}}},benefits:[{title:"Full Remote Control & Monitoring",description:"OctoPrint provides a comprehensive web interface for controlling your 3D printer. You can control and monitor every aspect of your 3D printer and your printing jobs right from within your browser. This includes access to the embedded webcam feed, constant feedback on the progress of your print job, temperature control of your hotends and print bed, and movement of the print head along all axes."},{title:"Compatible and Extendable",description:"OctoPrint is compatible with most consumer 3D printers out of the box. Its powerful plugin system allows for extending its functionality in various ways, including bed leveling visualization, timelapse creation, UI theming, firmware updating, and adding support for specific printers."},{title:"100% Open Source",description:"OctoPrint is Free and Open Source Software released under the GNU Affero General Public License (AGPL). This means that all its source code is available in its GitHub repository and can be modified to suit your needs."}],features:[{title:"Remote Control & Monitoring",description:"Control and monitor every aspect of your 3D printer and your printing jobs right from within your browser. This includes starting, stopping, or pausing your current print job at any time."},{title:"Plugin System",description:"OctoPrint's powerful plugin system allows for extending its functionality in various ways. This includes visualizing your bed leveling, creating stunning timelapses, controlling the theming of OctoPrint\u2019s UI, updating your printer\u2019s firmware, and adding support for specific printers."},{title:"Open Source",description:"OctoPrint is Free and Open Source Software, meaning you can modify it to suit your needs. All its source code is available in its GitHub repository."},{title:"Timelapse Recordings",description:"Create awesome timelapse recordings of your prints directly within OctoPrint."},{title:"Built-in Access Controls",description:"Control who can control your printer with the built-in access controls."},{title:"System Commands",description:"Add system commands to the menu to easily shutdown or reboot your OctoPrint server or even your printer."},{title:"Event Hooks",description:"Configure event hooks to react to certain events within OctoPrint by calling external commands or sending custom GCODE to your printer."}],tags:["Developer Tools"],logo:"logo.svg",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png","screenshot4.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["ENABLE_MJPG_STREAMER=".concat(e.enableMjpgStreamer)].join("\n"),mounts:[{type:"volume",name:"octoprint",mountPath:"/octoprint"}]}}),{services:t}}},{slug:"ocular",meta:{name:"Ocular",description:"Ocular is a self-hosted budget and finance app with dashboards, charts, multi-year tracking, imports, and authentication. This template runs the official container image, which bundles the static UI (Caddy) and the Genesis API backend, with persistent data under /data/genesis.",instructions:"After deploy, open your domain and sign in using the initial user from GENESIS_CREATE_USERS (default is admin with a random password set at deploy time; copy it from the service environment if you did not set your own value). Use HTTPS in production; only enable HTTP cookies if you access the app without TLS. Change GENESIS_JWT_SECRET only if you understand that existing sessions will be invalidated.",changeLog:[{date:"2026-04-06",description:"Initial template release"}],links:[{label:"Website",url:"https://simonwep.github.io/ocular/"},{label:"Documentation",url:"https://simonwep.github.io/ocular/pages/quickstart"},{label:"Deploy guide",url:"https://simonwep.github.io/ocular/pages/deploy.html"},{label:"GitHub",url:"https://github.com/simonwep/ocular"},{label:"Container registry",url:"https://github.com/simonwep/ocular/pkgs/container/ocular"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ocular"},appServiceImage:{type:"string",title:"Ocular Image",default:"ghcr.io/simonwep/ocular:v2.3.0"},genesisJwtTokenExpiration:{type:"number",title:"JWT token expiration (ms)",default:12e4},genesisJwtCookieAllowHttp:{type:"boolean",title:"Allow JWT cookie over HTTP (not recommended behind HTTPS)",default:!1},genesisCreateUsers:{type:"string",title:"Initial users (Genesis format)",description:"Comma-separated list of username!:password entries. Leave empty to create a single admin user with a random password."}}},benefits:[{title:"Budget clarity",description:"Dashboards and analytics help you understand spending and plans over time."},{title:"Self-hosted",description:"Keep financial data on infrastructure you control."},{title:"Official image",description:"Uses the published GHCR image maintained by the project."}],features:[{title:"Multi-year budgets",description:"Track and carry budgets across years with flexible financial calendars."},{title:"Import and export",description:"Bring data from common formats and export your work as JSON."},{title:"Genesis backend",description:"API and authentication via the bundled Genesis server (JWT configurable)."}],tags:["Finance","Budget","Self-hosted","PWA","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a,i,o=[],n=y(32),r=null!==(a=e.genesisJwtTokenExpiration)&&void 0!==a?a:12e4,s=null!==(i=e.genesisJwtCookieAllowHttp)&&void 0!==i&&i?"true":"false",c=(null===(t=e.genesisCreateUsers)||void 0===t?void 0:t.trim())||"admin!:".concat(v());return o.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["GENESIS_JWT_SECRET=".concat(n),"GENESIS_JWT_TOKEN_EXPIRATION=".concat(r),"GENESIS_CREATE_USERS=".concat(c),"GENESIS_JWT_COOKIE_ALLOW_HTTP=".concat(s)].join("\n"),mounts:[{type:"volume",name:"ocular-genesis-data",mountPath:"/data/genesis"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:o}}},{slug:"odoo",meta:{name:"Odoo",description:"Odoo is a comprehensive, integrated software platform designed to streamline and automate your business operations. It offers a suite of open-source business applications that cover all your company needs, from sales and services integration to operations management, website building, financial management, and marketing. Odoo's unique value proposition lies in its ease of use and full integration. The apps are designed to work seamlessly together, allowing you to automate and track everything you do in a centralized, online platform accessible from anywhere with any device. With Odoo, you can replace multiple applications with a single, cost-effective, and modular solution, eliminating the need for painful integrations and providing a comprehensive overview of your business. The platform evolves much faster than other solutions, with regular annual releases leveraging the expertise of thousands of developers and business experts. Whether you need a CRM, eCommerce, accounting, inventory, project management, or any other business application, Odoo has got you covered.",instructions:'Odoo automatically creates and initializes its own database (with the base module, no demo data) the first time the service boots, so the home page works immediately without a manual database-manager step. If you deployed before 2026-07-27 and are stuck on a 500 "Database ... not initialized" error, redeploy the service to pick up this fix \u2014 on restart Odoo will create its own valid database alongside the old broken one, and /web/database/selector will let you pick the new, working one.',changeLog:[{date:2023,description:"first release"},{date:"2025-12-29",description:"Version bumped to 19.0"},{date:"2026-07-27",description:'Fixed crash on startup caused by the database user being named "postgres", and Odoo now auto-creates and initializes its own database on first boot (with explicit connection flags, since a custom start command bypasses the image\'s entrypoint.sh) instead of leaving an empty, un-initialized database that 500s on every request'}],links:[{label:"Website",url:"https://www.odoo.com"}
1,{label:"Github",url:"https://github.com/odoo/odoo"},{label:"Documentation",url:"https://www.odoo.com/page/docs"}],contributors:[{name:"DrMxrcy",url:"https://github.com/DrMxrcy"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"odoo"},appServiceImage:{type:"string",title:"App Service Image",default:"odoo:19.0"}}},benefits:[{title:"Integrated Business Management",description:"Odoo is a comprehensive platform designed to streamline your business operations. It integrates all your business needs into a single, easy-to-use platform, eliminating the need for multiple, disjointed software solutions. From sales and services to operations and finances, Odoo has got you covered."},{title:"Automation and Efficiency",description:"Odoo's integrated apps work seamlessly together, allowing you to automate your business processes. This not only saves time and reduces manual effort but also ensures accuracy and efficiency in your operations. With Odoo, you can reap the benefits of automation and focus more on growing your business."},{title:"Scalability and Flexibility",description:"Odoo's modular solution is scalable and flexible, making it suitable for businesses of all sizes and types. Whether you're a small business or a large enterprise, Odoo can adapt to your needs and grow with you. Its open-source development model also allows for customization and development, ensuring a unique user experience."}],features:[{title:"Sales and CRM",description:"Boost your sales with Odoo's CRM and POS solutions. Manage your sales pipeline, track opportunities, and close deals more effectively."},{title:"Service Integration",description:"Integrate your services with Odoo's Project, Timesheet, and Helpdesk apps. Manage your projects, track time, and provide excellent customer service."},{title:"Operations Management",description:"Streamline your operations with Odoo's Inventory, MRP, and Purchase apps. Manage your inventory, manufacturing processes, and purchases efficiently."},{title:"Website and eCommerce",description:"Build stunning websites and manage your online store with Odoo's Website Builder and eCommerce apps. Create a strong online presence and sell your products online."},{title:"Finance Management",description:"Manage your finances with Odoo's Invoicing and Accounting apps. Keep track of your invoices and manage your accounts effectively."},{title:"Marketing",description:"Amplify your marketing with Odoo's Email Marketing and Marketing Automation apps. Reach out to your customers and automate your marketing campaigns."}],tags:["ERP"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,user:"odoo",databaseName:e.appServiceName}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8069}],deploy:{command:"odoo --db_host=$(PROJECT_NAME)_".concat(e.appServiceName,"-db --db_port=5432 --db_user=odoo --db_password=").concat(a," -d ").concat(e.appServiceName," -i base --without-demo=True")},mounts:[{type:"volume",name:"odoo-web-data",mountPath:"/var/lib/odoo"},{type:"volume",name:"odoo-config",mountPath:"/etc/odoo"},{type:"volume",name:"odoo-addons",mountPath:"/mnt/extra-addons"}]}}),{services:t}}},{slug:"offen",meta:{name:"Offen",description:"Offen is a fair and open alternative to common web analytics tools. It gives users access to their data and respects their privacy while providing website owners with the insights they need.",instructions:"After deployment, access your Offen instance through your browser to complete the setup process.",changeLog:[{date:"2025-05-14",description:"First Release (v1.4.2)"}],links:[{label:"Website",url:"https://www.offen.dev"},{label:"Documentation",url:"https://docs.offen.dev"},{label:"Github",url:"https://github.com/offen/offen"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"offen"},appServiceImage:{type:"string",title:"App Service Image",default:"offen/offen:v1.4.2"}}},benefits:[{title:"Fair Analytics",description:"Provides website owners with insights while respecting user privacy."},{title:"User Data Access",description:"Users can access and manage their own data, ensuring transparency."},{title:"Privacy-Focused",description:"Built with privacy in mind, compliant with GDPR and other regulations."}],features:[{title:"Self-Hosted",description:"Complete control over your analytics data with self-hosting capability."},{title:"Transparent",description:"Open source solution with clear data collection and usage policies."},{title:"Secure Storage",description:"Uses PostgreSQL for reliable and secure data storage."}],tags:["Analytics","Privacy","GDPR"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["OFFEN_DATABASE_DIALECT=postgres","OFFEN_DATABASE_CONNECTIONSTRING=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-postgres:5432/$(PROJECT_NAME)?sslmode=disable"),"OFFEN_DATABASE_CONNECTIONRETRIES=10"].join("\n"),mounts:[{type:"volume",name:"certs",mountPath:"/var/www/.cache"}]}}),{services:t}}},{slug:"olivetin",meta:{name:"OliveTin",description:"OliveTin is a web interface for running Linux shell commands. It provides a simple, elegant dashboard that lets you execute predefined commands with a single click. Perfect for system administrators, home automation enthusiasts, or anyone who wants to simplify repetitive tasks without memorizing complex command-line syntax. OliveTin is lightweight, secure, and highly customizable, allowing you to create buttons for anything from system maintenance to home automation controls.",instructions:null,changeLog:[{date:"2025-04-18",description:"first release"},{date:"2026-05-05",description:"Version bumped to 3000.11.3"}],links:[{label:"GitHub",url:"https://github.com/OliveTin/OliveTin"},{label:"Documentation",url:"https://docs.olivetin.app"},{label:"Docker Hub",url:"https://hub.docker.com/r/jamesread/olivetin"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"olivetin"},appServiceImage:{type:"string",title:"App Service Image",default:"jamesread/olivetin:3000.11.3"}}},benefits:[{title:"Simple Command Execution",description:"Transform complex shell commands into simple buttons on a clean web interface, making system administration tasks accessible to users of all skill levels."},{title:"Secure Delegation",description:"Allow others to execute specific commands without giving them full shell access, ensuring security while enabling collaboration."},{title:"Streamlined Workflows",description:"Organize frequently used commands into an intuitive dashboard, saving time and reducing errors in routine tasks."}],features:[{title:"Web Dashboard",description:"Access your predefined commands through a clean, responsive web interface that works on desktop and mobile devices."},{title:"Customizable Commands",description:"Define any shell command as a button with parameters, descriptions, and visual customizations to create a personalized control panel."},{title:"Actionable Output",description:"View the output of your commands directly in the web interface, with proper formatting and error reporting."},{title:"Lightweight Footprint",description:"Run OliveTin with minimal resource usage, making it ideal for both powerful servers and resource-constrained environments."},{title:"YAML Configuration",description:"Configure your command buttons using simple YAML files, making setup and modification straightforward and version-controllable."}],tags:["System Administration","Web Interface","Command Execution","Automation","Linux","Dashboard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1337}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"ollama",meta:{name:"Ollama",description:"Ollama is a powerful tool designed to simplify the deployment and interaction with advanced AI models. It provides a streamlined solution for managing and hosting large language models (LLMs) with an intuitive interface. Ollama allows users to run queries and interact with models like OpenAI GPT and others in a secure and efficient manner. The tool includes a web-based interface that makes managing and testing models straightforward. Ollama is designed to support diverse use cases, from research and development to deploying AI capabilities in production systems. It offers flexible deployment options, powerful API integrations, and role-based access control to ensure secure and scalable AI solutions.",instructions:null,changeLog:[{date:"2024-11-16",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 0.5.12"},{date:"2025-02-28",description:"Version bumped to v0.5.18"},{date:"2025-07-24",description:"Version bumped to 0.9.6"},{date:"2025-12-29",description:"Version bumped to 0.13.5"},{date:"2026-02-24",description:"Version bumped to 0.17.0"},{date:"2026-05-05",description:"Version bumped to 0.23.0"}],links:[{label:"Website",url:"https://ollama.com"},{label:"Docs",url:"https://docs.ollama.com"},{label:"Github",url:"https://github.com/Ollama/Ollama"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","uiServiceImage","webuiName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ollama"},appServiceImage:{type:"string",title:"App Service Image",default:"ollama/ollama:0.23.0"},uiServiceImage:{type:"string",title:"Ollama UI Service Image",default:"ghcr.io/open-webui/open-webui:0.8.5"},webuiName:{type:"string",title:"Ollama UI Name",default:"Ollama"}}},benefits:[{title:"Simplified AI Deployment",description:"Ollama makes it easy to deploy and manage advanced AI models, enabling users to focus on building and scaling AI applications efficiently."},{title:"Secure Model Hosting",description:"Host AI models with enterprise-grade security, ensuring data privacy and role-based access control for users and teams."},{title:"Intuitive Web Interface",description:"Ollama provides a user-friendly web interface for managing AI models, running queries, and testing capabilities without hassle."},{title:"Flexible Deployment Options",description:"Deploy Ollama on your preferred infrastructure, whether it's cloud-based or on-premises, to suit your organizational needs."},{title:"API Integrations",description:"Ollama offers robust APIs for seamless integration with existing applications and workflows, enabling AI-powered automation."}],features:[{title:"Manage AI Models",description:"Deploy, configure, and manage AI models effortlessly with Ollama\u2019s streamlined interface and tools."},{title:"Interactive Query System",description:"Run queries and interact with hosted models to leverage AI for tasks like natural language processing, data generation, and more."},{title:"Web-Based UI",description:"Access a secure, feature-rich web UI to manage your AI models and interact with them in real-time."},{title:"Scalable Architecture",description:"Scale your AI deployments to handle increasing workloads without compromising performance or security."},{title:"Role-Based Access Control",description:"Control who can access and interact with the AI models using role-based access permissions."}],tags:["AI","LLM","Machine Learning","Custom Applications"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:11434}],env:["OLLAMA_KEEP_ALIVE=24h","OLLAMA_HOST=0.0.0.0"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"ollama",mountPath:"/root/.ollama"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),source:{type:"image",image:e.uiServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["OLLAMA_BASE_URLS=http://$(PROJECT_NAME)_".concat(e.appServiceName,":11434"),"ENV=dev","WEBUI_AUTH=False","WEBUI_NAME=".concat(e.webuiName),"WEBUI_URL=http://$(PRIMARY_DOMAIN)","WEBUI_SECRET_KEY=t0p-s3cr3t"].join("\n"),mounts:[{type:"volume",name:"webui-data",mountPath:"/app/backend/data"}]}}),{services:t}}},{slug:"ombi",meta:{name:"Ombi",description:"Ombi allows you to host your own Plex Request and user management system. If you are sharing your Plex server with other users, allow them to request new content using an easy to manage interface! Manage all your requests for Movies and TV with ease, leave notes for the user and get notification when a user requests something. Allow your users to post issues against their requests so you know there is a problem with the audio etc. Even automatically send them weekly newsletters of new content that has been added to your Plex server!",instructions:null,changeLog:[{date:"2024-11-27",description:"first release"},{date:"2025-02-28",description:"Version bumped to 4.47.1"},{date:"2026-02-24",description:"Version bumped to 4.53.4"},{date:"2026-05-05",description:"Version bumped to 4.53.5"}],links:[{label:"Website",url:"https://ombi.io/"},{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-ombi/"},{label:"Github",url:"https://github.com/linuxserver/docker-ombi"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ombi"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/ombi:4.53.5"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC"}}},logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=".concat(e.timezone)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3579}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"omnitools",meta:{name:"Omni Tools",description:"Omni Tools is a comprehensive collection of web-based utilities and tools designed to simplify everyday tasks for developers, designers, and general users. It provides a unified interface for accessing dozens of useful tools including text converters, encoders/decoders, formatters, generators, calculators, image processors, and more. With no need for installation or external dependencies, Omni Tools offers instant access to commonly needed utilities without leaving your browser. The self-hosted solution ensures your data remains private and never leaves your infrastructure, making it ideal for handling sensitive information. All tools run entirely in the web interface with a clean, intuitive design that makes finding and using utilities effortless. Perfect for development teams, content creators, system administrators, and anyone who regularly needs quick access to conversion, formatting, encoding, or calculation tools without relying on multiple online services or installing separate applications.",instructions:null,changeLog:[{date:"2025-11-24",description:"Template Release"},{date:"2026-03-25",description:"Added missing links and pinned image from 0.6 to 0.6.0"}],links:[{label:"Website",url:"https://omnitools.app"},{label:"GitHub",url:"https://github.com/iib0011/omni-tools"},{label:"Documentation",url:"https://github.com/iib0011/omni-tools#readme"},{label:"Releases",url:"https://github.com/iib0011/omni-tools/releases"},{label:"Docker Hub",url:"https://hub.docker.com/r/iib0011/omni-tools"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"omnitools"},appServiceImage:{type:"string",title:"App Service Image",default:"iib0011/omni-tools:0.6.0"}}},benefits:[{title:"All-in-One Utility Suite",description:"Access dozens of commonly needed tools from a single interface, eliminating the need to search for and switch between multiple online services."},{title:"Privacy-Focused",description:"Self-hosted solution ensures your data never leaves your infrastructure, making it safe to process sensitive information."},{title:"Zero Installation",description:"Browser-based tools require no software installation or plugins, providing instant access from any device with a web browser."}],features:[{title:"Text Processing",description:"Convert, format, and manipulate text with tools for case conversion, encoding/decoding, formatting, and text generation."},{title:"Data Converters",description:"Convert between different data formats, number systems, units of measurement, and character encodings with ease."},{title:"Encoders and Decoders",description:"Encode and decode various formats including Base64, URL encoding, HTML entities, JWT tokens, and cryptographic hashes."},{title:"Code Formatters",description:"Format and beautify code in multiple languages including JSON, XML, HTML, CSS, JavaScript, and SQL for better readability."},{title:"Generators",description:"Generate random data, passwords, UUIDs, lorem ipsum text, QR codes, and other commonly needed values for development and testing."},{title:"Calculators",description:"Perform various calculations including mathematical operations, date/time conversions, and specialized calculations for different use cases."}],tags:["Utilities","Developer Tools","Converters","Productivity","Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"once-campfire",meta:{name:"Once Campfire",description:"Once Campfire is a modern, open-source team communication platform built by Basecamp. It provides a simple and intuitive interface for team messaging, file sharing, and collaboration. Once Campfire offers real-time messaging, threaded conversations, file uploads, and search functionality in a clean, distraction-free environment. It's designed to help teams communicate effectively without the complexity of larger enterprise platforms.",instructions:"Setup the initial user and start using the app.",changeLog:[{date:"2025-09-10",description:"Initial Template Release (sha-d7c6727)"},{date:"2025-12-29",description:"Version bumped to v1.4.3"},{date:"2026-05-08",description:"Version bumped to sha-ba11a0a"}],links:[{label:"GitHub",url:"https://github.com/basecamp/once-campfire"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"once-campfire"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/basecamp/once-campfire:sha-ba11a0a",description:"Once Campfire Docker image"}}},benefits:[{title:"Simple Team Communication",description:"Clean, intuitive interface for team messaging without the complexity of enterprise platforms, focusing on essential communication features."},{title:"Real-Time Messaging",description:"Instant messaging capabilities with real-time updates and notifications to keep your team connected and informed."},{title:"File Sharing",description:"Easy file upload and sharing capabilities to collaborate on documents, images, and other files within your team conversations."},{title:"Threaded Conversations",description:"Organized discussions with threaded conversations to keep topics organized and make it easy to follow specific discussions."}],features:[{title:"Modern Interface",description:"Clean, modern web interface designed for productivity and ease of use across desktop and mobile devices."},{title:"Search Functionality",description:"Powerful search capabilities to find messages, files, and conversations quickly across your team's communication history."},{title:"Team Management",description:"Easy team member management with invitation system and user roles for organized team communication."},{title:"Open Source",description:"Open-source platform that you can customize and extend according to your team's specific needs and requirements."},{title:"Self-Hosted",description:"Complete control over your team's communication data with self-hosted deployment and no external dependencies."},{title:"Lightweight",description:"Lightweight application that runs efficiently with minimal resource requirements, perfect for small to medium teams."}],tags:["Team Communication","Messaging","Collaboration","Open Source","Basecamp","Real-Time","File Sharing","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["SECRET_KEY_BASE=".concat(a),"DISABLE_SSL=true"].join("\n")}}),{services:t}}},{slug:"onedev",meta:{name:"OneDev",description:"OneDev is a versatile app designed to streamline your project management and development processes. It offers a comprehensive suite of features including pull requests, issue tracking, and build management. With OneDev, you can easily manage your projects, track commits, and handle branches and tags. The app also provides a platform for managing pull requests, merging them, and discarding when necessary. It allows you to keep track of open and closed issues, as well as those that have been released. OneDev also offers a robust build management system, enabling you to monitor successful builds across various projects. The app is designed to support multiple projects, each with its own set of files, commits, branches, tags, pull requests, and builds. With OneDev, you can streamline your workflow, enhance collaboration, and improve productivity in your development projects.",instructions:null,changeLog:[{date:"2023-02-9",description:"first release"},{date:"2025-02-28",description:"Version bumped to 11.7.2"},{date:"2025-07-24",description:"Version bumped to 12.0"},{date:"2025-12-29",description:"Version bumped to 13.1"},{date:"2026-02-24",description:"Version bumped to 14.1"},{date:"2026-05-05",description:"Version bumped to 15.0.5"}],links:[{label:"Website",url:"https://code.onedev.io/"},{label:"Documentation",url:"https://docs.onedev.io/"},{label:"Github",url:"https://code.onedev.io/onedev/server"}],contributors:[{name:"spaceb0t",url:"https://github.com/spacec0de"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"onedev"},appServiceImage:{type:"string",title:"App Service Image",default:"1dev/server:15.0.5"},databaseServiceName:{type:"string",title:"Database Service Name",default:"onedev-db"}}},benefits:[{title:"Efficient Project Management",description:"OneDev is a comprehensive tool that allows you to manage your projects effectively. It provides a platform where you can keep track of all your projects, pull requests, issues, and builds in one place."},{title:"Streamlined Workflow",description:"OneDev simplifies your workflow by providing a platform where you can easily manage and track the progress of your projects. It allows you to monitor the status of your projects, pull requests, issues, and builds all in one place."},{title:"Improved Productivity",description:"With OneDev, you can increase your productivity by efficiently managing your projects. It provides a platform where you can easily track the progress of your projects, pull requests, issues, and builds, allowing you to focus on what matters most."}],features:[{title:"Project Management",description:"OneDev allows you to manage all your projects in one place. You can easily track the progress of your projects, pull requests, issues, and builds."},{title:"Pull Requests",description:"OneDev provides a platform where you can easily manage and track the status of your pull requests. It allows you to monitor the progress of your pull requests in real-time."},{title:"Issue Tracking",description:"OneDev provides a platform where you can easily manage and track the status of your issues. It allows you to monitor the progress of your issues in real-time."},{title:"Build Management",description:"OneDev provides a platform where you can easily manage and track the status of your builds. It allows you to monitor the progress of your builds in real-time."}],tags:["Code Hosting","Developer Tools","CI/CD","Issue Tracking"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"postgres",data:{serviceName:e.databaseServiceName,image:"postgres:15",password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6610}],env:["HIBERNATE_DIALECT=io.onedev.server.persistence.PostgreSQLDialect","HIBERNATE_CONNECTION_DRIVER_CLASS=org.postgresql.Driver","HIBERNATE_CONNECTION_URL=jdbc:postgresql://$(PROJECT_NAME)_".concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"HIBERNATE_CONNECTION_USERNAME=".concat(e.databaseServiceName),"HIBERNATE_CONNECTION_PASSWORD=".concat(a),"INITIAL_SERVER_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/opt/onedev"},{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}],ports:[{published:6611,target:6611}]}}),{services:t}}},{slug:"onlyoffice",meta:{name:"OnlyOffice",description:"OnlyOffice is a self-hosted office suite that provides powerful document, spreadsheet, and presentation editing capabilities. It offers full compatibility with Microsoft Office formats and allows real-time document collaboration. Designed for businesses, teams, and individuals, OnlyOffice ensures secure, private, and efficient document management. It includes integration with various cloud storage services, supports plugins for extended functionality, and provides a modern web-based interface. OnlyOffice can be deployed on-premise or in the cloud and is ideal for organizations that need control over their document workflow. Additional features include a built-in document management system, mail integration, calendar, CRM tools, and a powerful API for automation.",instructions:null,changeLog:[{date:"2025-02-26",description:"first release"},{date:"2025-12-29",description:"Version bumped to 9.2"},{date:"2026-05-05",description:"Version bumped to 9.3.1.2"}],links:[{label:"Documentation",url:"https://helpcenter.onlyoffice.com/"},{label:"Github",url:"https://github.com/ONLYOFFICE"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"onlyoffice"},appServiceImage:{type:"string",title:"App Service Image",default:"onlyoffice/documentserver:9.3.1.2"}}},benefits:[{title:"Full Office Suite Functionality",description:"OnlyOffice provides a complete set of tools for creating and editing documents, spreadsheets, and presentations. It ensures compatibility with Microsoft Office formats, making it a powerful alternative for businesses and individuals."},{title:"Real-Time Collaboration",description:"OnlyOffice enables teams to work together on documents in real time. Users can co-edit, comment, and track changes, ensuring efficient collaboration while maintaining document integrity."},{title:"Self-Hosted & Secure",description:"OnlyOffice can be deployed on your own server, ensuring full control over your data. It supports encryption, access permissions, and integration with identity management systems for enhanced security."}],features:[{title:"Microsoft Office Compatibility",description:"OnlyOffice supports and maintains full compatibility with DOCX, XLSX, and PPTX formats, allowing seamless document exchange between users of different office suites."},{title:"Integrated Document Management",description:"Includes a built-in document management system that enables file organization, sharing, and permission control, providing an all-in-one productivity solution."},{title:"Plugin Support",description:"Extend OnlyOffice functionality with plugins, including features like text translation, spell checking, and document signing."},{title:"API & Automation",description:"OnlyOffice provides a powerful API for developers to integrate and automate document workflows, making it highly customizable for enterprise needs."},{title:"Multi-Platform Access",description:"With web, desktop, and mobile applications, OnlyOffice ensures users can access their documents from any device, maintaining productivity on the go."}],tags:["Office Suite","Productivity","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"logs",mountPath:"/var/log/onlyoffice"},{type:"volume",name:"data",mountPath:"/var/www/onlyoffice/Data"}]}}),{services:t}}},{slug:"ontime",meta:{name:"Ontime",description:"Ontime is free, open-source software for managing rundowns and event timers. Real-time rundown and timer management for broadcast and live events. Multi-device web access, delay workflow management, team collaboration, and automated or operator-controlled playback. HTTP API, WebSockets, and OSC (Open Sound Control) for integration with Qlab, OBS, disguise, and other tools.",instructions:"After deployment, access the web UI on your assigned domain. Port 4001 serves\nthe web interface and WebSockets. Ports 8888 and 9999 (UDP) are for OSC input\nand output\u2014expose them if you need external control integration.\n",changeLog:[{date:"2026-03-17",description:"First Release"},{date:"2026-03-24",description:"Pinned image fallback to getontime/ontime:v4.5.0 (was latest). Added Website and GitHub links."},{date:"2026-04-05",description:"Version bumped to v4.7.0"}],links:[{label:"Website",url:"https://www.getontime.no/"},{label:"GitHub",url:"https://github.com/cpvalente/ontime"},{label:"Documentation",url:"https://docs.getontime.no/"},{label:"Docker Hub",url:"https://hub.docker.com/r/getontime/ontime"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ontime"},appServiceImage:{type:"string",title:"App Service Image",default:"getontime/ontime:v4.7.0"},oscInputPort:{type:"string",title:"OSC Input Port",default:"8888"},oscOutputPort:{type:"string",title:"OSC Output Port",default:"9999"},timezone:{type:"string",title:"Timezone",default:"UTC",description:"e.g. America/New_York, Europe/London, Asia/Singapore"}}},benefits:[{title:"Rundown Management",description:"Real-time rundown and event timer control"},{title:"Multi-Device",description:"Access from any device via web browser"},{title:"Integration Ready",description:"HTTP API, WebSockets, OSC for external control"},{title:"Lightweight",description:"~58 MB image; runs on Raspberry Pi or cloud"}],features:[{title:"Web UI & WebSockets",description:"Port 4001 for interface and real-time data"},{title:"OSC Support",description:"Ports 8888 (input) and 9999 (output) for protocol control"},{title:"Delay Workflows",description:"Manage broadcast delays and operator-controlled playback"},{title:"Team Collaboration",description:"Real-time collaboration across devices"}],tags:["Broadcast","Timer","Rundown","Events","Open Source","OSC"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[];return a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4001}],env:"TZ=".concat(null!==(t=e.timezone)&&void 0!==t?t:"UTC"),mounts:[{type:"volume",name:"ontime-data",mountPath:"/data"}],ports:[{published:Number(e.oscInputPort),target:8888,protocol:"udp"},{published:Number(e.oscOutputPort),target:9999,protocol:"udp"}]}}),{services:a}}},{slug:"open-archiver",meta:{name:"Open Archiver",description:"Open Archiver is a secure, sovereign, and open-source platform for email archiving and eDiscovery. It provides universal ingestion from IMAP, Google Workspace, Microsoft 365, PST files, mbox files, and zipped .eml files. Emails are stored in standard .eml format with deduplication, compression, and optional AES-256 encryption at rest. Features include full-text search across emails and attachments (PDF, DOCX, etc.), thread discovery, file integrity verification, immutable audit trails, role-based access control, and pluggable storage backends (local or S3-compatible). Built with SvelteKit, Node.js, PostgreSQL, Meilisearch, and BullMQ.",instructions:"After deployment, open the app URL and complete /setup as the first user.\nSecrets (JWT, encryption keys, Meilisearch master key, Redis password) are\ngenerated by the template. Configure ingestion sources from the dashboard.\n",changeLog:[{date:"2026-02-27",description:"First Release (v0.4.2)"},{date:"2026-05-08",description:"Version bumped to v0.5.0"}],links:[{label:"Website",url:"https://openarchiver.com"},{label:"GitHub",url:"https://github.com/LogicLabs-OU/OpenArchiver"},{label:"Documentation",url:"https://docs.openarchiver.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","meilisearchImage","valkeyImage","tikaImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"open-archiver"},appServiceImage:{type:"string",title:"App Service Image",default:"logiclabshq/open-archiver:v0.5.0"},meilisearchImage:{type:"string",title:"Meilisearch Image",default:"getmeili/meilisearch:v1.43.0"},valkeyImage:{type:"string",title:"Valkey Image",default:"valkey/valkey:9.0.4-alpine3.23"},tikaImage:{type:"string",title:"Apache Tika Image",default:"apache/tika:3.3.0.0-full"}}},benefits:[{title:"Legally compliant email archiving",description:"Store emails in standard .eml format with file hash verification, integrity reports, and immutable audit trails for regulatory compliance."},{title:"Universal email ingestion",description:"Connect to IMAP, Google Workspace, Microsoft 365, PST, mbox, and zipped .eml imports."},{title:"Secure by design",description:"AES-256 encryption at rest, deduplication, compression, and RBAC with fine-grained policies."},{title:"Self-hosted & open source",description:"AGPL-3.0; full control over your archive with no vendor lock-in."}],features:[{title:"Full-text search",description:"Meilisearch-backed search across email content and attachments (Tika for PDF, DOCX, etc.)."},{title:"Thread discovery",description:"Identifies conversations and context for eDiscovery and compliance."},{title:"Pluggable storage",description:"Local filesystem or S3-compatible storage with optional encryption at rest."},{title:"Integrity verification",description:"File hashes on ingestion with integrity reports to detect tampering."},{title:"Audit trail",description:"Immutable logging of access and actions for accountability."},{title:"Retention policies",description:"Granular policies for lifecycle management of archived mail."}],tags:["Email","Archiving","eDiscovery","Compliance","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t,a=[],i=v(),o=v(),n=y(32),r=y(64),s=y(64),c=y(64),l="$(PROJECT_NAME)_".concat(e.appServiceName);a.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i}}),a.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-valkey"),password:o,image:e.valkeyImage}}),a.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-meilisearch"),source:{type:"image",image:e.meilisearchImage},env:["MEILI_MASTER_KEY=".concat(n),"MEILI_NO_ANALYTICS=true"].join("\n"),mounts:[{type:"volume",name:"meilisearch_data",mountPath:"/meili_data"}]}}),a.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-tika"),source:{type:"image",image:null!==(t=e.tikaImage)&&void 0!==t?t:"apache/tika:3.2.2.0-full"}}});var p=["NODE_ENV=production","PORT_FRONTEND=3000","APP_URL=https://$(PRIMARY_DOMAIN)","ORIGIN=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgresql://postgres:".concat(i,"@").concat(l,"-db:5432/$(PROJECT_NAME)?sslmode=disable"),"MEILI_HOST=http://".concat(l,"-meilisearch:7700"),"MEILI_MASTER_KEY=".concat(n),"MEILI_INDEXING_BATCH=500","REDIS_HOST=".concat(l,"-valkey"),"REDIS_PORT=6379","REDIS_PASSWORD=".concat(o),"REDIS_TLS_ENABLED=false","TIKA_URL=http://".concat(l,"-tika:9998"),"STORAGE_TYPE=local","STORAGE_LOCAL_ROOT_PATH=/var/data/open-archiver","BODY_SIZE_LIMIT=100M","JWT_SECRET=".concat(r),"ENCRYPTION_KEY=".concat(s),"STORAGE_ENCRYPTION_KEY=".concat(c)].join("\n");return a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:p,mounts:[{type:"volume",name:"storage",mountPath:"/var/data/open-archiver"}]}}),{services:a}}},{slug:"open-notebook",meta:{name:"Open Notebook",description:"An open-source, privacy-focused alternative to Google's Notebook LM. Supports 18+ AI providers, multi-modal content (PDFs, videos, audio, web pages), podcast generation, full-text and vector search, and a full REST API.",instructions:"After deployment, open the Web UI at the assigned domain (port 8502). Configure your AI provider API keys in the Settings page inside the app. Supported providers include OpenAI, Anthropic, Ollama, LM Studio, and 14+ more. The REST API is available on port 5055.",changeLog:[{date:"2026-05-25",description:"Initial release (v1.8.5)"}],links:[{label:"Website",url:"https://www.open-notebook.ai"},{label:"GitHub",url:"https://github.com/lfnovo/open-notebook"},{label:"Documentation",url:"https://github.com/lfnovo/open-notebook/tree/main/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","surrealDbImage","appServiceImage","encryptionKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"open-notebook"},surrealDbImage:{type:"string",title:"SurrealDB Image",default:"surrealdb/surrealdb:v2.6.5-dev"},appServiceImage:{type:"string",title:"App Service Image",default:"lfnovo/open_notebook:1.8.5"},encryptionKey:{type:"string",title:"Encryption Key",description:"Secret key used to encrypt your AI provider API keys in the database. Change this to a unique random string.",default:""}}},benefits:[{title:"Privacy First",description:"Self-hosted deployment keeps your research data completely private and under your control."},{title:"Multi-Provider AI",description:"Connect to 18+ AI providers including OpenAI, Anthropic, Ollama, and LM Studio \u2014 no vendor lock-in."},{title:"Multi-Modal Content",description:"Import PDFs, YouTube videos, audio files, and web pages as notebook sources."},{title:"Podcast Generation",description:"Generate professional multi-speaker podcasts from your research with full script control."},{title:"Full REST API",description:"Automate and integrate via a complete REST API available alongside the Web UI."}],features:[{title:"AI-Powered Research",description:"Chat with your notes and sources using any supported AI provider. Includes full-text and vector search across all content."},{title:"SurrealDB Backend",description:"Powered by SurrealDB for fast, flexible, multi-model data storage with GraphQL support."},{title:"Multi-Language UI",description:"Interface available in English, Portuguese, Chinese, Japanese, Russian, and Bengali."},{title:"Open Source",description:"MIT-licensed and fully customizable. Modify, extend, and integrate as needed."}],tags:["ai","notes","notebook","research","llm"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i="".concat(e.appServiceName,"-surrealdb"),o=e.encryptionKey||y(32);return t.push({type:"app",data:{serviceName:i,source:{type:"image",image:e.surrealDbImage},deploy:{command:"/surreal start --log info --user root --pass ".concat(a," rocksdb:/mydata/mydatabase.db")},env:["SURREAL_BIND=0.0.0.0:8000","SURREAL_EXPERIMENTAL_GRAPHQL=true"].join("\n"),mounts:[{type:"volume",name:"surreal-data",mountPath:"/mydata"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["OPEN_NOTEBOOK_ENCRYPTION_KEY=".concat(o),"SURREAL_URL=ws://$(PROJECT_NAME)_".concat(i,":8000/rpc"),"SURREAL_USER=root","SURREAL_PASSWORD=".concat(a),"SURREAL_NAMESPACE=open_notebook","SURREAL_DATABASE=open_notebook","API_URL=https://api-$(EASYPANEL_DOMAIN)"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8502},{host:"api-$(EASYPANEL_DOMAIN)",port:5055}],mounts:[{type:"volume",name:"notebook-data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"openbao",meta:{name:"OpenBao",description:"OpenBao is an open-source, community-driven secrets manager and fork of HashiCorp Vault, stewarded by the Linux Foundation's OpenSSF. It manages, stores, and distributes sensitive data \u2014 secrets, certificates, and encryption keys \u2014 with fine-grained access control, dynamic secret generation, data encryption as a service, and a full audit log. This template deploys OpenBao in server mode with file-based storage and the built-in web UI enabled.",instructions:"After deployment, open your service URL to reach the OpenBao web UI initialisation wizard.",changeLog:[{date:"2026-06-23",description:"Initial release (2.5.5)"}],links:[{label:"Website",url:"https://openbao.org"},{label:"Documentation",url:"https://openbao.org/docs/"},{label:"GitHub",url:"https://github.com/openbao/openbao"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openbao"},appServiceImage:{type:"string",title:"App Service Image",default:"quay.io/openbao/openbao:2.5.5"}}},benefits:[{title:"Open-Source Vault Alternative",description:"A true community fork of HashiCorp Vault under an OSI-approved licence, governed by the Linux Foundation \u2014 no BSL restrictions."},{title:"Centralized Secret Management",description:"Store API keys, database passwords, certificates, and any sensitive string in one encrypted, audited location accessible by your applications."},{title:"Dynamic Secrets",description:"Generate short-lived, on-demand credentials for AWS, databases, and other backends so static credentials never need to leave the vault."}],features:[{title:"Key/Value Secret Store",description:"Store and retrieve arbitrary secrets with versioning, metadata, and policy-based access control via the KV secrets engine."},{title:"Data Encryption as a Service",description:"Encrypt and decrypt data without storing it, letting applications offload cryptographic operations to OpenBao."},{title:"PKI and Certificate Management",description:"Act as an internal certificate authority to issue, renew, and revoke TLS certificates with configurable TTLs."},{title:"Auth Methods",description:"Authenticate via tokens, AppRole, Kubernetes service accounts, LDAP, GitHub, JWT, and more \u2014 integrating with your existing identity stack."},{title:"Audit Logging",description:"Every request and response is recorded to a tamper-evident audit log for compliance and forensic investigation."},{title:"Web UI",description:"A built-in browser interface lets you browse secrets, manage policies, monitor leases, and unseal the vault without the CLI."}],tags:["Security","Secrets Management","Vault","Encryption","PKI","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a='\nui = true\n\nstorage "file" {\n  path = "/bao/data"\n}\n\nlistener "tcp" {\n  address     = "0.0.0.0:8200"\n  tls_disable = "true"\n}\n\napi_addr     = "http://0.0.0.0:8200"\ncluster_addr = "http://0.0.0.0:8201"\n'.trim();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},deploy:{command:"bao server -config=/bao/config/config.hcl"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8200}],env:["BAO_SKIP_VERIFY=true"].join("\n"),mounts:[{type:"file",content:a,mountPath:"/bao/config/config.hcl"},{type:"volume",name:"data",mountPath:"/bao/data"}]}}),{services:t}}},{slug:"openblocks",meta:{name:"Openblocks",description:"Openblocks is an open-source low code platform designed to help you build internal apps quickly and efficiently. With Openblocks, you can create admin panels, dashboards, approval queues, and client support apps with ease and speed. The platform offers over 50 built-in UI components, allowing you to build beautiful, functional, and user-friendly apps. You can also customize new components and embed them seamlessly into your apps. Openblocks connects to most databases and any REST API platform within clicks, enabling full integration of heterogeneous data from anywhere. It's a developer-first platform, allowing you to extend built-in components using JavaScript and leverage external JavaScript libraries. Openblocks also ensures security and reliability with role-based access control and audit logs. It's loved by developers for its super-polished interface and mind-blowing functionality.",instructions:null,changeLog:[{date:"2023-02-21",description:"first release"}],links:[{label:"Website",url:"https://openblocks.dev/"},{label:"Documentation",url:"https://docs.openblocks.dev/"},{label:"Github",url:"https://github.com/openblocks-dev/openblocks"},{label:"Discord Community",url:"https://discord.com/invite/z5W2YHXdtt"}],contributors:[{name:"spaceb0t",url:"https://github.com/spacec0de"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openblocks"},appServiceImage:{type:"string",title:"App Service Image",default:"openblocksdev/openblocks-ce:1.1.8"}}},benefits:[{title:"Efficient App Development",description:"Openblocks is a developer-friendly platform that significantly reduces the work required to build an app. With its drag-and-drop feature, you can create functional and user-friendly apps quickly, allowing you to focus more on business logic."},{title:"Seamless Data Integration",description:"Openblocks allows you to connect to most databases and any REST API platform within clicks. This feature unleashes the full integration of heterogeneous data from anywhere, making it easier to manage and manipulate data."},{title:"Customizable UI Components",description:"With over 50 built-in UI components, Openblocks offers boundless UI possibilities. You can quickly and easily build beautiful, functional apps and even customize new components to suit your needs."},{title:"High Scalability",description:"Openblocks allows you to write JavaScript code everywhere to access and manipulate data. This feature, combined with the ability to leverage external JavaScript libraries, provides high scalability for your app development."},{title:"Security and Reliability",description:"Openblocks ensures the security and reliability of your apps. It offers role-based access control and audit logs, giving you total control over your resources and ensuring data is stored securely."}],features:[{title:"Low Code Platform",description:"Openblocks is an open-source low code platform that enables you to build admin panels, dashboards, approval queues, and client support apps with ease and speed."},{title:"UI Components",description:"Openblocks offers over 50 built-in UI components that you can use to build beautiful, functional, and user-friendly apps. You can also customize new components and embed them seamlessly into your app."},{title:"Data Source Connectivity",description:"Openblocks can connect to any data sources without limitation. It supports most databases and any REST API platform, allowing for the full integration of heterogeneous data."},{title:"JavaScript Extension",description:"Openblocks is a developer-first platform that allows you to extend built-in components using JavaScript. You can write JavaScript code everywhere to access and manipulate data, and leverage external JavaScript libraries for more functionality."},{title:"Security Features",description:"Openblocks offers robust security features, including role-based access control and audit logs. It also allows for self-hosting, giving you total control over your resources and ensuring data is stored securely."}],tags:["Admin Panels","Dashboards","Approval Queues","Client Support Apps","Opportunities","Possibilities"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:[].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"stacks",mountPath:"/openblocks-stacks"}]}}),{services:t}}},{slug:"openclaw",meta:{name:"OpenClaw",description:"OpenClaw is your own personal AI assistant. Any OS. Any Platform. The lobster way. \ud83e\udd9e An open-source personal AI assistant platform that gives you complete control over your data and AI interactions. Built for Molty, OpenClaw provides a gateway service for WebSocket connections, CLI tools for management, and support for multiple channels including WhatsApp, Telegram, Slack, Discord, and more. Deploy your personal AI assistant with full data ownership and privacy.",instructions:"Once deployed, the gateway service will start automatically. To complete setup, you can run the onboarding wizard by executing `node dist/index.js onboard --no-install-daemon` in the gateway service console. The gateway runs with `--allow-unconfigured` flag to enable initial setup.",changeLog:[{date:"2026-02-02",description:"Initial Template Release"},{date:"2026-03-19",description:"Improved variable descriptions and added agent sandboxing option"},{date:"2026-05-05",description:"Version bumped to 2026.5.3-1"}],links:[{label:"Website",url:"https://openclaw.ai"},{label:"GitHub",url:"https://github.com/openclaw/openclaw"},{label:"Documentation",url:"https://docs.openclaw.ai"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"},{name:"Alan Mosko",url:"https://github.com/moskoweb"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openclaw"},appServiceImage:{type:"string",title:"OpenClaw Image",default:"ghcr.io/openclaw/openclaw:2026.5.3-1",description:"Docker image for OpenClaw"},gatewayToken:{type:"string",title:"Gateway Token",description:"Token for authenticating with the gateway service (leave empty to securely auto-generate)"},gatewayPort:{type:"number",title:"Gateway Port",default:18789,description:"Published HTTP port for the Gateway Service and Control UI"},bridgePort:{type:"number",title:"Bridge Port",default:18790,description:"Published port for the bridge service"},claudeAiSessionKey:{type:"string",title:"Claude AI Session Key",default:"",description:"Claude AI session key (optional)"},claudeWebSessionKey:{type:"string",title:"Claude Web Session Key",default:"",description:"Claude Web session key (optional)"},claudeWebCookie:{type:"string",title:"Claude Web Cookie",default:"",description:"Claude Web cookie (optional)"},enableSandbox:{type:"boolean",title:"Enable Agent Sandboxing",default:!1,description:"Allows OpenClaw to securely spawn isolated Docker containers for agents to run code. (Requires Docker socket mount)"}}},benefits:[{title:"Your Own Personal AI Assistant",description:"Deploy your personal AI assistant with complete data ownership and privacy. No cloud dependencies, your data stays yours."},{title:"Multi-Platform Support",description:"Works on any OS and platform. Connect via WhatsApp, Telegram, Slack, Discord, Microsoft Teams, and more through the gateway."},{title:"Open Source & Self-Hosted",description:"MIT licensed open-source project. Full control over your AI assistant with no vendor lock-in or data sharing."},{title:"Gateway Architecture",description:"WebSocket-based gateway service enables real-time communication with your AI assistant across all connected channels and devices."}],features:[{title:"WebSocket Gateway",description:"High-performance WebSocket gateway service for real-time communication with your AI assistant. Supports configurable bind addresses and ports."},{title:"Multi-Channel Support",description:"Connect your AI assistant to WhatsApp, Telegram, Slack, Discord, Microsoft Teams, SMS, and more through unified channel management."}
1,{title:"Skills & Workspace",description:"Extensible skills system and workspace management for customizing your AI assistant's capabilities and behavior."},{title:"Agent Control Protocol",description:"Full agent control protocol (ACP) for managing AI agents, routing, and isolated agent workspaces with authentication."},{title:"Control UI & Dashboard",description:"Web-based control UI and dashboard for managing your AI assistant, viewing logs, configuring channels, and monitoring health."},{title:"Claude AI Integration",description:"Native support for Claude AI and Claude Web with session key and cookie authentication for seamless AI interactions."},{title:"Persistent Configuration",description:"All configuration, workspace data, and agent state are persisted in volumes for reliable operation across restarts."},{title:"Health Monitoring",description:"Built-in health checks, system events, heartbeat monitoring, and presence tracking for reliable operation."}],tags:["AI Assistant","Personal Assistant","Self-Hosted","Open Source","Privacy","Claude","WhatsApp","Telegram","Slack","Discord","WebSocket","Automation"],logo:"logo.png",screenshots:["screenshot.png","screenshot1.png"]},generate:function(e){var t,a,i=[],o=e.gatewayToken||y(64),n=null!==(t=e.gatewayPort)&&void 0!==t?t:18789,r=null!==(a=e.bridgePort)&&void 0!==a?a:18790,s=["NODE_ENV=production","HOME=/home/node","TERM=xterm-256color","OPENCLAW_GATEWAY_TOKEN=".concat(o)];e.claudeAiSessionKey&&s.push("CLAUDE_AI_SESSION_KEY=".concat(e.claudeAiSessionKey)),e.claudeWebSessionKey&&s.push("CLAUDE_WEB_SESSION_KEY=".concat(e.claudeWebSessionKey)),e.claudeWebCookie&&s.push("CLAUDE_WEB_COOKIE=".concat(e.claudeWebCookie));var c=[{type:"volume",name:"config",mountPath:"/home/node/.openclaw"},{type:"volume",name:"workspace",mountPath:"/home/node/.openclaw/workspace"}];return e.enableSandbox&&(s.push("OPENCLAW_SANDBOX=1"),c.push({type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"})),i.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-gateway"),source:{type:"image",image:e.appServiceImage},env:s.join("\n"),deploy:{command:'node dist/index.js gateway --bind "lan" --port '.concat(n," --allow-unconfigured")},domains:[{host:"$(EASYPANEL_DOMAIN)",port:n}],ports:[{published:r,target:18790}],mounts:c}}),{services:i}}},{slug:"opencloud",meta:{name:"OpenCloud",description:"OpenCloud is an open-source, GDPR-compliant platform for self-hosted file management, sharing, and collaboration. Built with a Go backend, it provides a full cloud-storage experience with WebDAV access, Spaces (team folders), fine-grained sharing controls, file versioning, and activity tracking. An embedded LibreGraph Connect OIDC identity provider handles authentication with no external database required \u2014 all user accounts and data are stored on the filesystem. Optional integrations include Collabora Online for real-time document editing and a bundled Radicale server for CalDAV/CardDAV.",instructions:'After deployment open the app URL. Log in with username "admin" and the password you set in IDM_ADMIN_PASSWORD. Change the admin password immediately from Settings after first login \u2014 the IDM_ADMIN_PASSWORD variable is only read on the very first start.',changeLog:[{date:"2026-07-02",description:"first release"}],links:[{label:"Website",url:"https://opencloud.eu"},{label:"Documentation",url:"https://docs.opencloud.eu"},{label:"GitHub",url:"https://github.com/opencloud-eu/opencloud"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"opencloud"},appServiceImage:{type:"string",title:"App Service Image",default:"opencloudeu/opencloud:7.2.0"},adminPassword:{type:"string",title:"Admin Password",default:"",description:"Autogenerated if not provided."}}},benefits:[{title:"No External Database",description:"Stores all configuration, user accounts, and files in the filesystem via a built-in identity manager \u2014 nothing to provision or maintain externally."},{title:"GDPR-Compliant by Design",description:"Designed for European data sovereignty requirements. All data stays on your infrastructure with no telemetry or third-party data transfers."},{title:"WebDAV and Spaces",description:"Mount your OpenCloud storage as a network drive via WebDAV, and use Spaces to create shared team folders with fine-grained access control."}],features:[{title:"File Management and Sharing",description:"Upload, organize, preview, and share files and folders with per-link passwords and expiry dates. Public and internal share links are supported."},{title:"Versioning and Activity Tracking",description:"Automatically keeps file version history and shows per-file activity logs so you can track who changed what and when."},{title:"Embedded OIDC Identity Provider",description:"LibreGraph Connect ships inside the container and manages user accounts without requiring a separate Keycloak or other IdP deployment."},{title:"Favorites and Trash",description:"Mark frequently accessed files as favorites and recover deleted files from the trash before they are permanently removed."},{title:"Collabora Online Support",description:"Optionally connect a self-hosted Collabora Online instance for in-browser editing of Writer, Calc, and Impress documents."}],tags:["Storage","File Sharing","Collaboration","WebDAV","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.adminPassword||v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["OC_URL=https://$(PRIMARY_DOMAIN)","IDM_ADMIN_PASSWORD=".concat(a),"OC_LOG_LEVEL=info","OC_LOG_COLOR=false","OC_LOG_PRETTY=false","PROXY_TLS=false","OC_INSECURE=false","PROXY_ENABLE_BASIC_AUTH=false","IDM_CREATE_DEMO_USERS=false","OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD=true","OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD=false","OC_PASSWORD_POLICY_DISABLED=false","OC_PASSWORD_POLICY_MIN_CHARACTERS=8","OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS=1","OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS=1","OC_PASSWORD_POLICY_MIN_DIGITS=1","OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS=1"].join("\n"),deploy:{command:"/bin/sh /start.sh"},mounts:[{type:"file",content:"#!/bin/sh\nopencloud init || true\nopencloud server\n",mountPath:"/start.sh"},{type:"volume",name:"config",mountPath:"/etc/opencloud"},{type:"volume",name:"data",mountPath:"/var/lib/opencloud"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:9200}]}}),{services:t}}},{slug:"openemr",meta:{name:"OpenEMR",description:"OpenEMR is a powerful, open-source electronic medical records and practice management solution designed for efficient healthcare operations. It provides a comprehensive, user-friendly interface, supports modular functionality, and offers robust reporting and analytics for clinical and administrative tasks. With OpenEMR, healthcare providers can manage patient records, appointments, billing, and more. The application is accessible via your host on ports 80 and 443. This container is built on a lightweight Docker image, providing additional environment variables and configurations for enhanced flexibility. It also supports the docker manifest for multi-platform awareness, ensuring the correct image for your architecture.",instructions:null,changeLog:[{date:"2025-02-11",description:"Template Release"},{date:"2025-07-24",description:"Version bumped to 7.0.4"},{date:"2025-12-29",description:"Version bumped to 7.0.5"},{date:"2026-02-24",description:"Version bumped to 8.0.1"}],links:[{label:"Documentation",url:"https://www.open-emr.org/wiki/index.php/OpenEMR_Wiki_Home_Page"},{label:"Github",url:"https://github.com/openemr/openemr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminUser","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openemr"},appServiceImage:{type:"string",title:"App Service Image",default:"openemr/openemr:8.0.1"},adminUser:{type:"string",title:"Admin User",default:"admin"},adminPassword:{type:"string",title:"Admin Password",default:"password"}}},benefits:[{title:"Comprehensive Patient Management",description:"OpenEMR streamlines patient data management, scheduling, electronic medical records, and billing, ensuring efficient healthcare operations."},{title:"Open Source Flexibility",description:"As an open source solution, OpenEMR offers unparalleled customization and integration possibilities to meet diverse healthcare needs."},{title:"Regulatory Compliance",description:"With robust reporting and security features, OpenEMR helps healthcare providers adhere to regulatory standards and improve patient care."}],features:[{title:"Electronic Medical Records",description:"Securely store and manage comprehensive patient records, including medical history, treatments, and lab results."},{title:"Appointment Scheduling",description:"Efficiently manage patient appointments, reminders, and calendar integrations for streamlined operations."},{title:"Billing and Insurance Management",description:"Automate billing processes and handle insurance claims to simplify financial administration."},{title:"Reporting and Analytics",description:"Generate detailed reports to gain insights into clinical performance and administrative efficiency."}],tags:["Electronic Health Records","Practice Management","Open Source","Healthcare"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MYSQL_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"MYSQL_ROOT_PASS=".concat(i),"MYSQL_USER=mariadb","MYSQL_PASS=".concat(a),"OE_USER=".concat(e.adminUser),"OE_PASS=".concat(e.adminPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/localhost/htdocs/openemr/sites"},{type:"volume",name:"log",mountPath:"/var/log"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,rootPassword:i}}),{services:t}}},{slug:"opengist",meta:{name:"OpenGist",description:"OpenGist is a self-hosted pastebin powered by Git. All snippets are stored in a Git repository and can be read and/or modified using standard Git commands, or with the web interface. It is similar to GitHub Gist, but open-source and can be self-hosted. Create public, unlisted or private snippets with syntax highlighting, search functionality, and Git integration.",instructions:null,changeLog:[{date:"2025-06-12",description:"First Release"},{date:"2025-12-29",description:"Version bumped to 1.11.1"},{date:"2026-02-24",description:"Version bumped to 1.12.1"},{date:"2026-05-05",description:"Version bumped to 1.12.2"}],links:[{label:"Website",url:"https://opengist.io/"},{label:"Documentation",url:"https://opengist.io/"},{label:"Github",url:"https://github.com/thomiceli/opengist"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"opengist"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/thomiceli/opengist:1.12.2"}}},benefits:[{title:"Git-Powered Storage",description:"All snippets are stored in a Git repository, enabling version control, history tracking, and standard Git operations like clone, pull, and push."},{title:"Self-Hosted Privacy",description:"Host your own pastebin service with complete control over your data. No third-party dependencies or privacy concerns."},{title:"GitHub Gist Alternative",description:"Provides similar functionality to GitHub Gist but with the freedom of self-hosting and customization options."}],features:[{title:"Multiple Snippet Types",description:"Create public, unlisted, or private snippets with syntax highlighting support for various programming languages, markdown, and CSV files."},{title:"Git Integration",description:"Full Git integration allows you to clone, pull, push snippets via HTTP or SSH, making it easy to integrate with your development workflow."},{title:"Search and Organization",description:"Search through code snippets, browse user snippets, add topics for organization, and support for likes and forks to create a collaborative environment."},{title:"OAuth2 Authentication",description:"Supports OAuth2 login with GitHub, GitLab, Gitea, and OpenID Connect providers for easy user authentication and management."},{title:"Embed and Share",description:"Embed snippets in other websites, download raw files or as ZIP archives, and control snippet visibility for anonymous users."}],tags:["Pastebin","Git","Code Sharing","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6157}],mounts:[{type:"volume",name:"opengist",mountPath:"/opengist"}]}}),{services:t}}},{slug:"openhab",meta:{name:"OpenHAB",description:"OpenHAB is an open-source automation software designed to integrate and control smart home devices from various manufacturers. Written in Java, it enables you to create rules, manage devices, and automate processes within your smart home ecosystem. The platform provides a flexible and modular approach, allowing integration with hundreds of devices and technologies through add-ons. OpenHAB features a powerful rule engine, a unified user interface, and supports various communication protocols such as Z-Wave, Zigbee, and MQTT. It is highly customizable, secure, and community-driven, offering extensive documentation and support. OpenHAB supports real-time updates, is mobile-friendly, and can be deployed on multiple platforms including Docker and Kubernetes. Additional features include voice control integration, presence detection, and support for custom scripts.",instructions:null,changeLog:[{date:"2025-01-23",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 4.3.3"},{date:"2025-07-24",description:"Version bumped to 5.0.0"}],links:[{label:"Documentation",url:"https://www.openhab.org/docs/"},{label:"Github",url:"https://github.com/openhab/openhab-addons"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openhab"},appServiceImage:{type:"string",title:"App Service Image",default:"openhab/openhab:5.0.0"}}},benefits:[{title:"Centralized Smart Home Control",description:"OpenHAB allows you to integrate and control multiple smart home devices from a single platform. This provides a unified and seamless experience for managing your home automation setup."},{title:"Flexible Rule Engine",description:"The powerful rule engine in OpenHAB enables you to automate processes by creating complex rules for your smart home devices. This ensures your home works exactly the way you want."},{title:"Multi-Platform Support",description:"OpenHAB supports various platforms including Linux, Windows, macOS, Docker, and Kubernetes. This makes it easy to deploy OpenHAB on your preferred environment."}],features:[{title:"Voice Control Integration",description:"OpenHAB integrates with popular voice assistants like Alexa and Google Assistant, allowing you to control your devices using voice commands for hands-free convenience."},{title:"Presence Detection",description:"This feature uses various methods such as geofencing or network presence to detect when someone is home or away, enabling you to trigger automation based on occupancy."},{title:"Modular Add-On System",description:"OpenHAB supports a wide range of add-ons for integrating with different devices and technologies. This ensures compatibility with hundreds of smart home products."},{title:"Unified User Interface",description:"The OpenHAB platform provides a customizable and user-friendly interface that allows you to control and monitor your smart home devices from any device, including mobile, tablet, and desktop."},{title:"Secure and Private",description:"OpenHAB prioritizes security and privacy by running locally on your network, ensuring that your data stays secure and under your control."}],tags:["Smart Home","Automation","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["CRYPTO_POLICY=unlimited","EXTRA_JAVA_OPTS=-Duser.timezone=Europe/Berlin","OPENHAB_HTTP_PORT=8080","OPENHAB_HTTPS_PORT=8443"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"addons",mountPath:"/openhab/addons"},{type:"volume",name:"conf",mountPath:"/openhab/conf"},{type:"volume",name:"userdata",mountPath:"/openhab/userdata"}]}}),{services:t}}},{slug:"openpanel",meta:{name:"OpenPanel",description:"OpenPanel is a powerful open-source product analytics platform that helps you track and analyze user behavior. Built with modern technologies, it provides real-time insights, custom event tracking, and intuitive dashboards. Features include user segmentation, funnel analysis, retention metrics, and comprehensive reporting capabilities. Self-hosted solution that gives you full control over your data while maintaining privacy and security.",instructions:"You have to provide the domain name in order to access the OpenPanel dashboard successfully and use the Caddy service to access the OpenPanel.",changeLog:[{date:"2025-05-30",description:"First release"}],links:[{label:"Website",url:"https://openpanel.dev/"},{label:"GitHub",url:"https://github.com/Openpanel-dev/openpanel"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appDomain","apiServiceImage","dashboardServiceImage","workerServiceImage","clickhouseServiceImage","geoipServiceImage"],properties:{appServiceName:{type:"string",title:"Service Name",default:"openpanel"}
1,appDomain:{type:"string",title:"Application Domain",description:"This is essential for the OpenPanel dashboard to work. e.g: example.com, without https:// or http://"},apiServiceImage:{type:"string",title:"API Image",default:"lindesvard/openpanel-api:1.0.0"},dashboardServiceImage:{type:"string",title:"Dashboard Image",default:"lindesvard/openpanel-dashboard:1.0.0"},workerServiceImage:{type:"string",title:"Worker Image",default:"lindesvard/openpanel-worker:1.0.0"},clickhouseServiceImage:{type:"string",title:"ClickHouse Image",default:"clickhouse/clickhouse-server:24.3.2-alpine"},geoipServiceImage:{type:"string",title:"GeoIP API Image",default:"observabilitystack/geoip-api:2025-22"},emailSender:{type:"string",title:"Email Sender Address",default:"[email protected]"},resendApiKey:{type:"string",title:"Resend API Key (for email delivery)",default:""}}},benefits:[{title:"Self-Hosted Analytics",description:"Full control over your analytics data with self-hosting."},{title:"Comprehensive Tracking",description:"Track user behavior and product usage in detail."},{title:"Privacy-Focused",description:"Ensure user privacy with your own analytics infrastructure."}],features:[{title:"User Analytics",description:"Track and analyze user behavior across your applications."},{title:"Event Tracking",description:"Log and process custom events from your products."},{title:"Interactive Dashboard",description:"Visualize data with customizable dashboards and reports."},{title:"Geo-Location Analytics",description:"Track user activity by geographic location."},{title:"Real-time Processing",description:"Process analytics data in real-time with distributed workers."}],tags:["Analytics","Self-Hosted","Product Analytics","User Tracking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=v(),n=y(8),r=["NODE_ENV=production","SELF_HOSTED=true","GEO_IP_HOST=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-geo:8080"),"BATCH_SIZE=5000","BATCH_INTERVAL=10000","ALLOW_REGISTRATION=true","ALLOW_INVITATION=true","REDIS_URL=redis://default:".concat(o,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-redis:6379"),"CLICKHOUSE_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-ch:8123"),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?schema=public"),"DATABASE_URL_DIRECT=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?schema=public"),"NEXT_PUBLIC_DASHBOARD_URL=https://".concat(e.appDomain),"NEXT_PUBLIC_API_URL=https://".concat(e.appDomain,"/api"),"COOKIE_SECRET=".concat(i),"EMAIL_SENDER=".concat(e.emailSender||"[email protected]"),e.resendApiKey?"RESEND_API_KEY=".concat(e.resendApiKey):"# RESEND_API_KEY="],s="\nhttp://{$PRIMARY_DOMAIN} {\n    \n    handle_path /api* {\n        reverse_proxy {$API_URL}:3000\n    }\n\n    reverse_proxy /* {$DASHBOARD_URL}:3000\n}\n\nhttp://worker.{$PRIMARY_DOMAIN} {\n\n    basic_auth {\n        admin ".concat(n,"\n    }\n\n    reverse_proxy {$WORKER_URL}:3000\n}\n  \n  ");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-caddy"),env:["API_URL=$(PROJECT_NAME)-".concat(e.appServiceName,"-api"),"DASHBOARD_URL=$(PROJECT_NAME)-".concat(e.appServiceName,"-dashboard"),"WORKER_URL=$(PROJECT_NAME)-".concat(e.appServiceName,"-worker"),"BASIC_AUTH_HASH=".concat(n),"PRIMARY_DOMAIN=".concat(e.appDomain)].join("\n"),source:{type:"image",image:"caddy:2.8-alpine"},domains:[{host:e.appDomain,port:80},{host:"worker.".concat(e.appDomain),port:80}],mounts:[{type:"file",content:s,mountPath:"/etc/caddy/Caddyfile"},{type:"volume",name:"caddy-data",mountPath:"/data"},{type:"volume",name:"caddy-config",mountPath:"/config"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),source:{type:"image",image:e.apiServiceImage},deploy:{command:"sh -c \"echo 'Waiting for PostgreSQL to be ready...' && while ! nc -z $(PROJECT_NAME)_".concat(e.appServiceName,"-db 5432; do sleep 1; done && echo 'PostgreSQL is ready' && echo 'Waiting for ClickHouse to be ready...' && while ! nc -z $(PROJECT_NAME)_").concat(e.appServiceName,"-ch 8123; do sleep 1; done && echo 'ClickHouse is ready' && echo 'Running migrations...' && CI=true pnpm -r run migrate:deploy && pnpm start\"")},env:r.join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-dashboard"),source:{type:"image",image:e.dashboardServiceImage},env:r.join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),source:{type:"image",image:e.workerServiceImage},env:r.join("\n")}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-geo"),source:{type:"image",image:e.geoipServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-ch"),source:{type:"image",image:e.clickhouseServiceImage},mounts:[{type:"volume",name:"ch-data",mountPath:"/var/lib/clickhouse"},{type:"volume",name:"ch-logs",mountPath:"/var/log/clickhouse-server"},{type:"volume",name:"ch-config",mountPath:"/etc/clickhouse-server/config.d"},{type:"volume",name:"ch-users",mountPath:"/etc/clickhouse-server/users.d"},{type:"volume",name:"ch-init",mountPath:"/docker-entrypoint-initdb.d"}]}}),{services:t}}},{slug:"openproject",meta:{name:"OpenProject",description:"OpenProject is an open-source project management software designed to facilitate efficient project management in a secure environment. It caters to various project management styles including classic, agile, or hybrid. The softw
1are allows you to take control of your data with the highest standards in data security and privacy. OpenProject can be installed on-premises in your own infrastructure, ensuring full control and 100% data ownership. It offers a variety of security features such as https encryption of your data, password security, two-factor authentication, and more. OpenProject supports agile project management and methodologies such as Scrum and Kanban, allowing teams to deliver better and faster. It also features a team planner to visually assign tasks to team members, helping to plan activities and gain perspective on the team's workload. OpenProject is also a powerful tool for project planning and scheduling, enabling teams to collaboratively create and visualize project plans, analyze required activities, and create a detailed plan for project deliverables.",instructions:"The default login credentials are admin:admin",changeLog:[{date:"2023-03-26",description:"First Release"}],links:[{label:"Website",url:"https://openproject.org/"},{label:"Docs",url:"https://openproject.org/docs/"},{label:"Github",url:"https://github.com/opf/openproject"},{label:"Docker",url:"https://hub.docker.com/r/openproject/community"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openproject"},appServiceImage:{type:"string",title:"App Service Image",default:"openproject/community:13.4.1"}}},benefits:[{title:"Efficient Project Management",description:"OpenProject offers efficient classic, agile, or hybrid project management in a secure environment. It is designed to make your teams' working lives easier, more productive, and more enjoyable."},{title:"Data Sovereignty",description:"With OpenProject, you have full control over your data. It offers the highest standards in data security and privacy, ensuring that your data is protected and secure."},{title:"Hosting in the EU",description:"OpenProject offers peace of mind hosting in the EU. Your data is stored on secure servers within the EU, meeting the needs of highly security-conscious organizations."}],features:[{title:"Project Management",description:"OpenProject is your base for classic, agile or hybrid project management. It allows you to organize your own tasks and assign tasks to a teammate, providing all the information in one place."},{title:"Project Planning and Scheduling",description:"With shared timelines, OpenProject enables you to activate the experience and creativity of your entire team to collaboratively create and visualize your project plan."},{title:"Agile, Scrum & Kanban",description:"OpenProject supports agile project management and methodologies such as Scrum and Kanban, helping agile teams to deliver better and faster."},{title:"Team Planner",description:"OpenProject includes a team planner feature that allows you to visually assign tasks to team members in a weekly or bi-weekly calendar."}],tags:["Project Management","Open Source","Data Security"],logo:"logo.svg",screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a=["OPENPROJECT_SECRET_KEY_BASE=".concat(y(64)),"OPENPROJECT_HTTPS=true","OPENPROJECT_HOST__NAME=$(PRIMARY_DOMAIN)"];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:a.join("\n"),mounts:[{type:"volume",name:"assets",mountPath:"/var/openproject/assets"},{type:"volume",name:"pgdata",mountPath:"/var/openproject/pgdata"}]}}),{services:t}}},{slug:"openreader-slim",meta:{name:"OpenReader (Slim)",description:"OpenReader is an open-source, self-host-friendly text-to-speech document reader built with Next.js. It supports EPUB, PDF, TXT, MD, and DOCX with multilingual, synchronized read-along playback. Features include layout-aware PDF parsing with PP-DocLayoutV3 (ONNX), word-by-word highlighting via ONNX Whisper alignment, segment-based read-along with cached audio, multi-provider TTS support (self-hosted and cloud), audiobook export in m4b/mp3, and flexible storage backends. The slim variant bundles the Kokoro-FastAPI CPU TTS engine for fully local text-to-speech without external API keys.",instructions:"After deployment, open the web UI at your configured domain. On first access you will be prompted to set up an account using the AUTH_SECRET you provided. The Kokoro TTS service starts automatically alongside the reader \u2014 allow a minute for the model to load before playing audio.",changeLog:[{date:"2026-06-30",description:"first release"}],links:[{label:"Website",url:"https://openreader.richardr.dev"},{label:"Github",url:"https://github.com/richardr1126/openreader"},{label:"Documentation",url:"https://docs.openreader.richardr.dev"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","kokoroServiceImage","s3ServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openreader-slim"},appServiceImage:{type:"string",title:"OpenReader Image",default:"ghcr.io/richardr1126/openreader:v4.3.0"},kokoroServiceImage:{type:"string",title:"Kokoro TTS Image",default:"ghcr.io/remsky/kokoro-fastapi-cpu:v0.2.4"},s3ServiceImage:{type:"string",title:"S3 Storage Image",default:"minio/minio:RELEASE.2025-09-07T16-13-09Z"}}},benefits:[{title:"Fully Local Text-to-Speech",description:"The slim variant ships with Kokoro-FastAPI on CPU so you get high-quality TTS narration without sending your documents to any external API. Your content stays entirely on your own server."},{title:"Read-Along Synchronization",description:"Word-by-word and sentence-level highlighting keeps pace with the audio playback, making it easy to follow along with complex documents at any reading speed."},{title:"Broad Document Support",description:"Upload EPUB, PDF, TXT, Markdown, and DOCX files. Layout-aware PDF parsing detects headings, paragraphs, and columns so reading order is always correct."}],features:[{title:"Kokoro TTS Engine",description:"Powered by the Kokoro-82M model running via ONNX on CPU, delivering natural-sounding narration without a GPU or cloud subscription."},{title:"Audiobook Export",description:"Export any document as an m4b or mp3 audiobook with resumable chapter processing, ready for playback in any podcast or audiobook app."},{title:"Multi-Provider TTS",description:"Add cloud TTS providers (OpenAI, ElevenLabs, Deepgram, and more) alongside the local Kokoro engine via the provider settings screen."},{title:"Device Sync and Library",description:"Built-in document library with server-side storage and device sync so your reading progress follows you across browsers and devices."}],tags:["Documents","Text-to-Speech","AI","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=y(16),o=v(),n=JSON.stringify({version:1,runtimeConfig:{defaultTtsProvider:"kokoro"},providers:[{slug:"kokoro",displayName:"Kokoro",providerType:"custom-openai",baseUrl:"http://$(PROJECT_NAME)_".concat(e.appServiceName,"-kokoro:8880/v1"),defaultModel:"kokoro",enabled:!0}]});return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["BASE_URL=https://$(PRIMARY_DOMAIN)","AUTH_SECRET=".concat(a),"USE_EMBEDDED_WEED_MINI=false","S3_ENDPOINT=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-s3:9000"),"S3_BUCKET=openreader-documents","S3_REGION=us-east-1","S3_ACCESS_KEY_ID=".concat(i),"S3_SECRET_ACCESS_KEY=".concat(o),"S3_FORCE_PATH_STYLE=true","RUNTIME_SEED_JSON=".concat(n)].join("\n"),mounts:[{type:"volume",name:"docstore",mountPath:"/app/docstore"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3003}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-kokoro"),source:{type:"image",image:e.kokoroServiceImage},env:["ONNX_NUM_THREADS=8","ONNX_INTER_OP_THREADS=4","ONNX_EXECUTION_MODE=parallel","ONNX_OPTIMIZATION_LEVEL=all","ONNX_MEMORY_PATTERN=true","ONNX_ARENA_EXTEND_STRATEGY=kNextPowerOfTwo","API_LOG_LEVEL=INFO"].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-s3"),source:{type:"image",image:e.s3ServiceImage},env:["MINIO_ROOT_USER=".concat(i),"MINIO_ROOT_PASSWORD=".concat(o)].join("\n"),deploy:{command:"server /data --console-address :9001"},mounts:[{type:"volume",name:"s3-data",mountPath:"/data"}]}}),{services:t}}},{slug:"openseo",meta:{name:"OpenSEO",description:"OpenSEO is an open source SEO platform and self-hostable alternative to Ahrefs and Semrush. It covers keyword research, domain overviews, backlinks, rank tracking, site audits, and AI visibility, powered by pay-as-you-go DataForSEO data instead of a monthly subscription, plus an MCP server so AI agents can run SEO research for you.",instructions:"The app runs in single-user no-auth mode, so this template protects it with Easypanel basic auth: the username is admin and the generated password is under the service's Advanced > Basic Auth settings. The first start builds the app and can take a few minutes before the domain responds. SEO data needs DATAFORSEO_API_KEY, which is the base64 of your DataForSEO login:password (run printf 'email:password' | base64), not the dashboard API key. Set OPENROUTER_API_KEY to enable the SAM AI agent.",changeLog:[{date:"2026-09-24",description:"first release"}],links:[{label:"Website",url:"https://openseo.so"},{label:"GitHub",url:"https://github.com/every-app/open-seo"},{label:"Documentation",url:"https://openseo.so/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openseo"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/every-app/open-seo:v0.1.9"},dataforseoApiKey:{type:"string",title:"DataForSEO API Key",description:"Base64 of your DataForSEO login:password. Can be added later in the service environment."},openrouterApiKey:{type:"string",title:"OpenRouter API Key",description:"Optional. Enables SAM, the in-app AI SEO agent."},openrouterModel:{type:"string",title:"OpenRouter Model",description:"Optional. Leave blank for the default model."}}},benefits:[{title:"Pay Only For What You Use",description:"Data comes from your own DataForSEO account at raw API rates, with no monthly SEO tool subscription."},{title:"Own Your SEO Workspace",description:"Projects, saved keywords, and audit history live on your server under an MIT license."},{title:"Built For AI Agents",description:"A built-in MCP server and the SAM agent let Claude, ChatGPT, and other agents run keyword and competitor research."}],features:[{title:"Keyword Research",description:"Search volume, CPC, difficulty, search trends, and SERP analysis for any market."},{title:"Domain & Backlink Analysis",description:"Domain overviews, ranked keywords, competitors, and backlink profiles."},{title:"Rank Tracking & Site Audits",description:"Track keyword positions over time and crawl sites for technical SEO issues."},{title:"AI Visibility",description:"See how your brand shows up in AI search answers."}],tags:["SEO","Marketing","Analytics","AI"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PORT=3001","AUTH_MODE=local_noauth","CLOUDFLARE_INCLUDE_PROCESS_ENV=true","ALLOWED_HOST=$(PRIMARY_DOMAIN)","VITE_SHOW_DEVTOOLS=false","DATAFORSEO_API_KEY=".concat(e.dataforseoApiKey||""),"OPENROUTER_API_KEY=".concat(e.openrouterApiKey||""),"OPENROUTER_MODEL=".concat(e.openrouterModel||"")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001}],mounts:[{type:"volume",name:"data",mountPath:"/app/.wrangler"}],basicAuth:[{username:"admin",password:a}]}}),{services:t}}},{slug:"openspeedtest",meta:{name:"OpenSpeedTest",description:"OpenSpeedTest is a powerful and accurate online bandwidth test application that works on any web browser without the need for Flash or Java. It is designed to replicate your real-world connection speed and is capable of testing any connection, from 1 Kbps to 1 Gbps+. The application uses the latest technology to automatically detect your stable download and upload speed from our servers. It also provides a guide on how to increase your internet speed and get more out of your connection. You can create your own network speed test without any client-side software or plugin. The application can also be embedded to your website or application, allowing your users to test their internet speed without leaving your page. It is also available as a standalone application for home or small office LAN and can be used for large-scale deployments as a self-hosted/on-premise network speed test.",instructions:null,changeLog:[{date:"2022-11-30",description:"first release"},{date:"2025-02-28",description:"Version bumped to v2.0.6"}],links:[{label:"Website",url:"https://openspeedtest.com/"},{label:"Github",url:"https://github.com/openspeedtest/Speed-Test"}],contributors:[{name:"Migu2k",url:"https://github.com/migu2k"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openspeedtest"},appServiceImage:{type:"string",title:"App Service Image",default:"openspeedtest/latest:v2.0.6"}}},benefits:[{title:"Accurate Internet Speed Test",description:"Our app offers the most accurate and powerful online bandwidth test, designed to replicate your real-world connection speed. It works on any device and any web browser, without the need for Flash or Java."},{title:"Broad Compatibility",description:"Whether you're using an iPad, iPhone, Android, Smart TV, Xbox, PlayStation, Windows, Mac, or Linux, our app can test your internet speed. It's designed for testing any connection, from 1 Kbps to 1 Gbps+."},{title:"Insightful Results",description:"The final result will be the average value of the fastest download/upload burst rates during the bandwidth test. These results can help you understand your bandwidth and how it may vary at different times of the day."},{title:"Internet Speed Improvement Guide",description:"Our app includes a guide for getting more out of your internet connection before switching broadband plans or Internet service provider. These simple tips can improve your Wifi, DSL, ADSL, Mobile Broadband 3G, 4G LTE, WiMax, Fibre, Satellite broadband etc."}],features:[{title:"HTML5 Internet Speed Test",description:"Our app uses the latest HTML5 technology to test your bandwidth. It automatically detects your stable download and upload speed from our servers."},{title:"Create Your Own Network Speed Test",description:"No client-side software or plugin is required. You can run a network speed test from any device within your network with a web browser that is IE10 or newer."},{title:"Embeddable SpeedTest for Website/App",description:"You can embed OpenSpeedTest to your website or application. This option will use OpenSpeedTest servers to test your user's internet speed."},{title:"SpeedTest for Home or Small Office LAN",description:"Our app offers a standalone application for Desktop and Mobile users for launching HTML5 Network Speed Test Server. You can test download & upload speed from any device within your network with a web browser that is IE10 or newer."},{title:"Self-Hosted SpeedTest",description:"For large-scale deployments, our app offers a Self-hosted/On-Premise HTML5 Network Speed Test. You can download the source code and config your own server or use our Docker Image."}],tags:["Network Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"openvpn",meta:{name:"OpenVPN Access Server",description:"OpenVPN Access Server is a full-featured SSL VPN software solution that integrates OpenVPN server capabilities, enterprise-grade user management, granular access controls, and an easy-to-use web interface for administration.",instructions:'Please use the Guide given below to get the password and access the portal. For admin portal access, use the following URL; https://$(EASYPANEL_HOST_IP):$(mgmtServicePort)/admin. User is openvpn and the password can be searched in logs as "Auto-Generated pass"',changeLog:[{date:"2025-09-03",description:"First Release (2.14.3-5936bcd7-Ubuntu24)"},{date:"2026-05-21",description:"Version bumped to 3.1.0-e22fe316-Ubuntu24"}],links:[{label:"Website",url:"https://openvpn.net/access-server/"},{label:"Documentation",url:"https://openvpn.net/vpn-server-resources/access-server-manager/"},{label:"Docker Hub",url:"https://hub.docker.com/r/openvpn/openvpn-as"},{label:"Guide",url:"https://openvpn.net/as-docs/docker.html#run-the-docker-container"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openvpn-as"},appServiceImage:{type:"string",title:"App Service Image",default:"openvpn/openvpn-as:3.1.0-e22fe316-Ubuntu24"},mgmtServicePort:{type:"string",title:"Management Service Port",default:"8943"},accessServicePort:{type:"string",title:"Access Service Port",default:"8443"},vpnServicePort:{type:"string",title:"VPN Service Port",default:"1194"}}},benefits:[{title:"Enterprise-grade VPN solution",description:"Full-featured SSL VPN with enterprise-grade user management and access controls."},{title:"Easy web administration",description:"User-friendly web interface for easy VPN server administration and user management."},{title:"Secure remote access",description:"Provide secure remote access to your network resources with strong encryption."},{title:"Multi-platform support",description:"Supports clients on Windows, macOS, Linux, iOS, and Android platforms."},{title:"Flexible authentication",description:"Support for various authentication methods including LDAP, RADIUS, and local user accounts."},{title:"Network segmentation",description:"Granular access controls to segment network access based on user groups and policies."}],features:[{title:"Web-based administration",description:"Easy-to-use web interface for server configuration and user management."},{title:"User management",description:"Create and manage VPN users with different access levels and permissions."},{title:"Client configuration",description:"Automatic client configuration generation for easy setup on various platforms."},{title:"Network access control",description:"Configure which network resources users can access through the VPN."},{title:"Authentication integration",description:"Integrate with existing authentication systems like LDAP and RADIUS."},{title:"Monitoring and logging",description:"Comprehensive logging and monitoring of VPN connections and activities."}],tags:["Network Tools","Security","VPN","OpenVPN","Remote Access"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},ports:[{published:Number(e.mgmtServicePort),target:943},{published:Number(e.accessServicePort),target:443},{published:Number(e.vpnServicePort),target:1194,protocol:"udp"}],deploy:{capAdd:["MKNOD","NET_ADMIN"]},mounts:[{type:"volume",name:"openvpn-data",mountPath:"/openvpn"}]}}),{services:t}}},{slug:"openwebui",meta:{name:"OpenWebUI",description:"OpenWebUI is a self-hosted, open-source web-based UI for interacting with various Large Language Models (LLMs). It allows users to chat with AI models, manage API connections, and customize their experience through an intuitive interface. OpenWebUI supports multiple backends such as Ollama, OpenAI-compatible APIs, and local AI runners. It offers a sleek web-based UI, user authentication, and integration with popular LLMs. The application is containerized and easy to deploy with Docker, Kubernetes, or standalone installations. It provides real-time chat, conversation history, and advanced configuration options for AI interactions.",instructions:null,changeLog:[{date:"2025-02-07",description:"First Release"},{date:"2025-02-28",description:"Version bumped to v0.5.18"},{date:"2025-07-24",description:"Version bumped to v0.6.18"},{date:"2025-12-29",description:"Version bumped to 0.6.43"},{date:"2026-02-24",description:"Version bumped to 0.8.5"},{date:"2026-05-05",description:"Version bumped to 0.9.2"}],links:[{label:"Documentation",url:"https://docs.openwebui.com/"},{label:"Github",url:"https://github.com/open-webui/open-webui"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"openwebui"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/open-webui/open-webui:0.9.2"}}},benefits:[{title:"AI Model Interaction",description:"OpenWebUI provides a user-friendly interface to interact with AI models. Users can chat with various LLMs, customize their prompts, and manage API configurations effortlessly."},{title:"Multi-Backend Support",description:"OpenWebUI supports multiple AI backends, including Ollama, OpenAI-compatible APIs, and local AI model hosting. This flexibility allows users to choose their preferred AI provider and optimize cost and performance."},{title:"Self-Hosted & Privacy-Focused",description:"OpenWebUI is self-hosted, ensuring full control over AI interactions and data privacy. Users can deploy it on their own servers or cloud infrastructure without relying on third-party services."}],features:[{title:"Chat Interface",description:"A sleek and responsive chat interface allows users to interact with AI models in real-time. The UI supports markdown, code formatting, and rich text responses."},{title:"API Key Management",description:"Users can configure API keys for different AI providers directly within the web UI. This enables easy switching between AI models and services."},{title:"Conversation History",description:"OpenWebUI stores conversation history, allowing users to revisit past interactions. Sessions can be managed, saved, or deleted as needed."},{title:"Web Search Integration",description:"OpenWebUI can integrate with web search engines such as Google, Brave, and DuckDuckGo. This feature enables AI models to retrieve real-time information from the internet."},{title:"Multi-User Authentication",description:"OpenWebUI includes authentication support, allowing multiple users to securely access the platform. Role-based access control (RBAC) can be configured for enhanced security."}],tags:["AI","Chatbot","Productivity","Self-Hosting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["WEB_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/app/backend/data"}]}}),{services:t}}},{slug:"opera",meta:{name:"Opera",description:"Opera is a multi-platform web browser developed by Opera. This app is based on Chromium, but sets itself apart from other Chromium-based browsers through its unique user interface and additional features. The app can be accessed at http://yourhost:3000/ or https://yourhost:3001/. It provides a true lossless image at a high frame rate to your web browser by changing the Stream Quality preset to 'Lossless'. The app also allows you to specify one or multiple Chromium CLI flags, which will be passed to the application in full. This app is designed to avoid permission issues that can arise between the host OS and the container by allowing you to specify the user PUID and group PGID.",instructions:"use abc:abc to login. To access the login interface, add ?login=true to your URL.",changeLog:[{date:"2023-5-7",description:"first release"},{date:"2025-07-24",description:"Version bumped to 120.0.5543"},{date:"2025-12-29",description:"Version bumped to 125.0.5729"},{date:"2026-02-24",description:"Version bumped to 127.0.5778"},{date:"2026-05-05",description:"Version bumped to 131.0.5877"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-opera"},{label:"Github",url:"https://github.com/linuxserver/docker-opera"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"opera"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/opera:131.0.5877"}}},benefits:[{title:"Multi-Platform Web Browser",description:"Opera is a versatile web browser that can be used across multiple platforms. It is developed by Opera, a company renowned for its innovative and user-friendly browsing solutions."},{title:"Based on Chromium",description:"Opera is built on Chromium, ensuring high performance and compatibility with a wide range of web technologies. Despite its Chromium base, Opera stands out with its unique user interface and features."},{title:"Multi-Architecture Support",description:"The Opera Docker image supports multiple architectures, making it adaptable to various systems. Simply pulling the image should retrieve the correct version for your architecture."}],features:[{title:"User Interface",description:"Opera differentiates itself from other Chromium-based browsers through its unique user interface. It offers a clean, intuitive, and customizable browsing experience."},{title:"Additional Environment Variables",description:"The Docker Baseimage KasmVNC, which the Opera container is based on, provides additional environment variables and run configurations. These allow you to enable or disable specific functionalities as per your requirements."},{title:"Lossless Mode",description:"Opera's Docker container can deliver a true lossless image at a high frame rate to your web browser. This ensures a high-quality browsing experience."},{title:"Docker CLI and Docker Compose Support",description:"You can create a container from the Opera image using either Docker CLI or Docker Compose, providing flexibility in deployment."}],tags:["Web Browsers","Internet","Productivity"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"config",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"opnform",meta:{name:"OpnForm",description:"OpnForm is an open-source form builder that allows you to create beautiful, customizable forms with ease. It provides an intuitive interface for building forms, collecting submissions, and analyzing data.",instructions:"Login using the credentials, [email protected]/password.",changeLog:[{date:"2025-05-23",description:"First release"},{date:"2025-07-24",description:"Version bumped to 1.9.2"},{date:"2025-12-29",description:"Version bumped to 1.12.1"},{date:"2026-02-24",description:"Version bumped to 1.13.1"},{date:"2026-05-05",description:"Version bumped to 1.13.2"},{date:"2026-06-09",description:"Version bumped to 2.0.1"}],links:[{label:"Website",url:"https://opnform.com/"},{label:"Documentation",url:"https://docs.opnform.com/"},{label:"Github",url:"https://github.com/JhumanJ/OpnForm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["serviceName","appServiceImage","apiServiceImage"],properties:{serviceName:{type:"string",title:"Service Name",default:"opnform"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"jhumanj/opnform-client:2.0.1"},apiServiceImage:{type:"string",title:"API Service Image",default:"jhumanj/opnform-api:2.0.1"}}},benefits:[{title:"Easy Form Creation",description:"Build professional forms without coding using an intuitive drag-and-drop interface."},{title:"Customizable Design",description:"Customize the look and feel of your forms with themes and styling options."},{title:"Advanced Features",description:"Access conditional logic, file uploads, and integrations with other tools."},{title:"Self-Hosted Solution",description:"Maintain full control over your data with this self-hosted form solution."}],features:[{title:"Form Builder",description:"Create forms with a variety of field types including text, email, file upload, and more."},{title:"Response Management",description:"View, manage, and export form submissions in various formats."},{title:"Conditional Logic",description:"Show or hide fields based on user input to create dynamic forms."},{title:"Spam Protection",description:"Protect your forms with CAPTCHA and other anti-spam measures."},{title:"Notifications",description:"Receive email notifications when new submissions are received."}],tags:["Forms","Web Apps","Productivity","Business Apps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(64),n=y(64),r=y(32),s="https://$(PROJECT_NAME)-".concat(e.serviceName,"-nginx.$(EASYPANEL_HOST)"),c=["APP_NAME=OpnForm","APP_ENV=production","APP_KEY=base64:".concat(r),"APP_DEBUG=false","APP_URL=".concat(s),"FRONT_URL=".concat(s),"FRONT_API_SECRET=".concat(n),"SELF_HOSTED=true","LOG_CHANNEL=errorlog","LOG_LEVEL=debug","FILESYSTEM_DRIVER=local","LOCAL_FILESYSTEM_VISIBILITY=public","BROADCAST_CONNECTION=log","CACHE_STORE=redis","CACHE_DRIVER=redis","QUEUE_CONNECTION=redis","SESSION_DRIVER=redis","SESSION_LIFETIME=120","MAIL_MAILER=log","MAIL_HOST=null","MAIL_PORT=null","[email protected]","MAIL_PASSWORD=null","MAIL_ENCRYPTION=null","[email protected]","MAIL_FROM_NAME=OpnForm","AWS_ACCESS_KEY_ID=null","AWS_SECRET_ACCESS_KEY=null","AWS_DEFAULT_REGION=us-east-1","AWS_BUCKET=null","JWT_TTL=1440","JWT_SECRET=".concat(o),"JWT_SKIP_IP_UA_VALIDATION=false","PUBLIC_UPLOADS_RATE_LIMIT_PER_MINUTE=30","PUBLIC_UPLOADS_RATE_LIMIT_PER_HOUR=300","OPEN_AI_API_KEY=null","H_CAPTCHA_SITE_KEY=null","H_CAPTCHA_SECRET_KEY=null","RE_CAPTCHA_SITE_KEY=null","RE_CAPTCHA_SECRET_KEY=null","TELEGRAM_BOT_ID=null","TELEGRAM_BOT_TOKEN=null","SHOW_OFFICIAL_TEMPLATES=true","REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.serviceName,"-redis:6379"),"DB_HOST=$(PROJECT_NAME)_".concat(e.serviceName,"-db"),"DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=postgres","DB_PASSWORD=".concat(a),"DB_CONNECTION=pgsql","PHP_MEMORY_LIMIT=1G","PHP_MAX_EXECUTION_TIME=600","PHP_UPLOAD_MAX_FILESIZE=64M","PHP_POST_MAX_SIZE=64M"].join("\n");return t.push({type:"app",data:{serviceName:"".concat(e.serviceName,"-nginx"),env:["OPNFORM_API_HOST=$(PROJECT_NAME)_".concat(e.serviceName,"-api"),"OPNFORM_UI_HOST=$(PROJECT_NAME)_".concat(e.serviceName,"-ui")].join("\n"),source:{type:"image",image:"nginx:latest"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],deploy:{command:"envsubst '${OPNFORM_API_HOST} ${OPNFORM_UI_HOST}' < /etc/nginx/conf.d/opnform.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"},mounts:[{type:"file",content:'\nmap $request_uri $api_uri {\n    ~^/api(/.*$) $1;\n    default $request_uri;\n}\n\nserver {\n    listen 80 default_server;\n    root /usr/share/nginx/html/public;\n\n    access_log /dev/stdout;\n    error_log /dev/stderr error;\n\n    index index.html index.htm index.php;\n\n    location / {\n        proxy_http_version 1.1;\n        proxy_pass http://${OPNFORM_UI_HOST}:3000;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-Host $host;\n        proxy_set_header X-Forwarded-Port $server_port;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection "Upgrade";\n    }\n\n    location ~/(api|open|local\\/temp|forms\\/assets)/ {\n        set $original_uri $uri;\n        try_files $uri $uri/ /index.php$is_args$args;\n    }\n\n    location ~ \\.php$ {\n        fastcgi_split_path_info ^(.+\\.php)(/.+)$;
1\n        fastcgi_pass ${OPNFORM_API_HOST}:9000;\n        fastcgi_index index.php;\n        include fastcgi_params;\n        fastcgi_param SCRIPT_FILENAME $document_root/index.php;\n        fastcgi_param REQUEST_URI $api_uri;\n    }\n\n    # Deny access to . files\n    location ~ /\\. {\n        deny all;\n    }\n}\n',mountPath:"/etc/nginx/conf.d/opnform.template"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.serviceName,"-ui"),env:["NUXT_PUBLIC_APP_URL=/","NUXT_PUBLIC_API_BASE=/api","NUXT_PRIVATE_API_BASE=http://$(PROJECT_NAME)_".concat(e.serviceName,"-nginx/api"),"NUXT_PUBLIC_ENV=production","NUXT_API_SECRET=".concat(n),"NUXT_PUBLIC_LICENSE_API_ENDPOINT=https://api.opnform.com","NUXT_PUBLIC_H_CAPTCHA_SITE_KEY=null","NUXT_PUBLIC_RE_CAPTCHA_SITE_KEY=null","NUXT_PUBLIC_ROOT_REDIRECT_URL=null"].join("\n"),source:{type:"image",image:e.appServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.serviceName,"-api"),env:[c].join("\n"),source:{type:"image",image:e.apiServiceImage},mounts:[{type:"volume",name:"api-storage",mountPath:"/usr/share/nginx/html/storage"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.serviceName,"-worker"),env:[c].join("\n"),source:{type:"image",image:e.apiServiceImage},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.serviceName,"-api/volumes/api-storage/"),mountPath:"/usr/share/nginx/html/storage"}],deploy:{command:"php artisan queue:work"}}}),t.push({type:"app",data:{serviceName:"".concat(e.serviceName,"-scheduler"),env:[c].join("\n"),source:{type:"image",image:e.apiServiceImage},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.serviceName,"-api/volumes/api-storage/"),mountPath:"/usr/share/nginx/html/storage"}],deploy:{command:"php artisan schedule:work"}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.serviceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.serviceName,"-redis"),password:i}}),{services:t}}},{slug:"orangehrm",meta:{name:"OrangeHRM",description:"OrangeHRM is a comprehensive, open-source Human Resource Management (HRM) solution designed to streamline HR processes and manage employee information. It provides modules for employee management, leave tracking, time management, recruitment, and performance reviews. With an intuitive interface and customizable features, OrangeHRM is a great choice for organizations of all sizes.",instructions:null,changeLog:[{date:"2025-01-23",description:"Template Release"},{date:"2025-12-29",description:"Version bumped to 5.8"},{date:"2026-05-05",description:"Version bumped to 5.8.1"}],links:[{label:"Website",url:"https://www.orangehrm.com/"},{label:"Github",url:"https://github.com/orangehrm/orangehrm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"orangehrm"},appServiceImage:{type:"string",title:"App Service Image",default:"orangehrm/orangehrm:5.8.1"}}},benefits:[{title:"Comprehensive HR Management",description:"OrangeHRM offers a complete suite of tools to manage all aspects of human resources, from recruitment to performance evaluations."},{title:"Open Source and Customizable",description:"Enjoy the flexibility of an open-source solution that you can tailor to fit your organization\u2019s unique requirements."},{title:"Scalable Solution",description:"Ideal for small businesses and enterprises alike, OrangeHRM grows with your organization."}],features:[{title:"Employee Information Management",description:"Maintain a centralized database of employee records with easy access and updating capabilities."},{title:"Leave and Time Tracking",description:"Streamline leave requests, approvals, and attendance tracking with automated tools."},{title:"Recruitment and Onboarding",description:"Manage job postings, applicant tracking, and onboarding processes with ease."},{title:"Performance Reviews",description:"Conduct structured performance evaluations and manage employee goals."}],tags:["Human Resource Management","Open Source","Employee Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ORANGEHRM_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"ORANGEHRM_DATABASE_USER=mariadb","ORANGEHRM_DATABASE_PASSWORD=".concat(a),"ORANGEHRM_DATABASE_NAME=$(PROJECT_NAME)","PUID=998","PGID=100"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"mariadb",data:{image:"mariadb:10.4",serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"organizer",meta:{name:"Organizer",description:"Organizer is a self-hosted service designed to help you manage and organize your various web applications efficiently. It serves as a centralized portal where you can categorize and access all your self-hosted apps in a simple and intuitive way. Written in PHP, Organizer provides a dashboard for quick navigation, supports authentication for security, and integrates with various third-party applications. It offers a customizable interface, supports mobile devices, and ensures a seamless experience for managing multiple services within your home or business environment.",instructions:null,changeLog:[{date:"2025-01-30",description:"First release"}],links:[{label:"Github",url:"https://github.com/causefx/Organizr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"organizer"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/organizr:version-f6d984d2"}}},benefits:[{title:"Centralized App Management",description:"Organizer acts as a single portal to access and manage all your self-hosted applications. This helps streamline navigation and enhances productivity."},{title:"Secure Authentication",description:"Supports user authentication to restrict access and ensure only authorized users can manage and access applications."},{title:"Customizable Interface",description:"Provides options to customize the look and feel, allowing users to tailor the dashboard according to their preferences."}],features:[{title:"Dashboard View",description:"Offers a simple and intuitive dashboard where users can quickly access various self-hosted applications."},{title:"Multi-User Support",description:"Supports multiple users with different permission levels, making it ideal for shared environments."},{title:"API Integration",description:"Integrates with external APIs for enhanced functionality, such as fetching data from other applications."},{title:"Mobile-Friendly Design",description:"Designed to work seamlessly on mobile devices, allowing users to manage their applications from anywhere."},{title:"Authentication & Security",description:"Provides authentication mechanisms, including OAuth and LDAP integration, to secure access to the portal."}],tags:["Dashboard","Productivity","App Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Europe/London"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"osticket",meta:{name:"OSTicket",description:"OSTicket is a widely-used, open-source ticketing system designed to streamline customer support management. It provides a user-friendly interface for handling, tracking, and organizing support tickets across multiple channels, including email, web forms, and API integrations. With OSTicket, you can efficiently manage inquiries, automate workflows, and improve customer satisfaction.",instructions:"You can configure other Environmental settings in Environment Section.",changeLog:[{date:"2024-12-16",description:"Template Release"}],links:[{label:"Documentation",url:"https://docs.osticket.com"},{label:"Github",url:"https://github.com/osTicket/osTicket"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","smtpServerHost","smtpServerPort","smtpFromEmail","smtpFromName","installName","installEmail","adminFirstName","adminLastName","adminEmail","adminPassword","adminUsername"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"osticket"},appServiceImage:{type:"string",title:"App Service Image",default:"tiredofit/osticket:3.6.2"},smtpServerHost:{type:"string",title:"SMTP Server Host",default:"smtp.example.com"},smtpServerPort:{type:"integer",title:"SMTP Server Port",default:25},smtpServerUsername:{type:"string",title:"SMTP Server Username"},smtpServerPassword:{type:"string",title:"SMTP Server Password",secret:!0},smtpFromEmail:{type:"string",title:"SMTP From Email",default:"[email protected]"},smtpFromName:{type:"string",title:"SMTP From Name",default:"example"},installName:{type:"string",title:"SMTP From Name",default:"my-company-desk",description:"Name for your company's desk."},installEmail:{type:"string",title:"Install Email",default:"[email protected]"},adminFirstName:{type:"string",title:"Admin First Name",default:"John"},adminLastName:{type:"string",title:"Admin Last Name",default:"Doe"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]"},adminUsername:{type:"string",title:"Admin Username",default:"ostadmin",description:"Username must be at least 6 characters"},adminPassword:{type:"string",title:"Admin Password",secret:!0,description:"Password must be at least 6 characters"}}},benefits:[{title:"Streamlined Ticket Management",description:"OSTicket simplifies the process of handling, organizing, and managing customer support tickets across multiple channels, improving response times and customer satisfaction."},{title:"Self-Hosted Solution",description:"Retain full control over your customer support system with a self-hosted solution, ensuring privacy and security for your organization."},{title:"Workflow Automation",description:"Automate common support processes like ticket routing, escalation, and responses to save time and boost team efficiency."}],features:[{title:"Multi-Channel Ticket Support",description:"Receive and manage tickets through email, web forms, and API integrations to centralize customer inquiries in one platform."},{title:"Customizable Ticket Workflows",description:"Define custom workflows, forms, and fields to meet your specific support needs."},{title:"Reporting and Analytics",description:"Gain valuable insights into your support team's performance with built-in reporting and analytics tools."},{title:"SLA Management",description:"Track and enforce Service Level Agreements (SLAs) to ensure tickets are resolved within committed timelines."},{title:"Knowledge Base",description:"Provide self-service options to customers by creating and managing a searchable knowledge base with FAQs and guides."}],tags:["Ticketing System","Customer Support","Self-Hosted","Workflow Automation","SLA Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TIMEZONE=America/Vancouver","CONTAINER_NAME=osticket-app","CRON_INTERVAL=10","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_NAME=$(PROJECT_NAME)","DB_USER=mariadb","DB_PASS=".concat(a),"SMTP_HOST=".concat(e.smtpServerHost),"SMTP_PORT=".concat(e.smtpServerPort),"SMTP_FROM=".concat(e.smtpFromEmail),"SMTP_TLS=0","SMTP_USER=".concat(e.smtpServerUsername?e.smtpServerUsername:""),"SMTP_PASS=".concat(e.smtpServerPassword?e.smtpServerPassword:""),"INSTALL_SECRET=somerandomlargecharacterstring","INSTALL_EMAIL=".concat(e.installEmail),"INSTALL_NAME=".concat(e.installName),"ADMIN_FIRSTNAME=".concat(e.adminFirstName),"ADMIN_LASTNAME=".concat(e.adminLastName),"ADMIN_EMAIL=".concat(e.adminEmail),"ADMIN_USER=".concat(e.adminUsername),"ADMIN_PASS=".concat(e.adminPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"osticket-data",mountPath:"/www/osticket"},{type:"volume",name:"osticket-logs",mountPath:"/www/logs"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"ots",meta:{name:"Ots",description:"Ots (One-Time-Secret) lets you share a password or other sensitive text through a link that can only be opened once \u2014 the secret is deleted the moment it's viewed. It's fully open by design (anyone with the link can read it, that's the whole point), so it has no login of its own.",instructions:"Open the app URL, paste the text you want to share, and send the generated one-time link to the recipient. The secret is permanently deleted the first time that link is opened, and unread secrets expire automatically after 7 days.",changeLog:[{date:"2026-07-24",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/Luzifer/ots"},{label:"Documentation",url:"https://github.com/Luzifer/ots/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ots"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/luzifer/ots:v1.21.8"}}},benefits:[{title:"Secrets Never Sit in Chat History",description:"Once a link is opened, the secret is gone \u2014 it can't be re-read later from a chat log or email thread."},{title:"Self-Hosted, No Third-Party Relay",description:"Sensitive text never passes through a shared public instance you don't control."},{title:"Lightweight",description:"A single small service backed by Redis, with nothing else to provision or maintain."}],features:[{title:"One-Time Read",description:"Each link can be opened exactly once \u2014 the secret is deleted immediately after."},{title:"Automatic Expiry",description:"Unread secrets are automatically purged after a set time."},{title:"Simple Paste-and-Share Flow",description:"Paste text, get a link, share it \u2014 no account or setup needed on either end."}],tags:["Secret Sharing","Privacy","Self-Hosted","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i="".concat(e.appServiceName,"-redis");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["LISTEN=:3000","STORAGE_TYPE=redis","REDIS_URL=redis://default:".concat(a,"@$(PROJECT_NAME)_").concat(i,":6379/0"),"SECRET_EXPIRY=604800"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"redis",data:{serviceName:i,password:a}}),{services:t}}},{slug:"otterwiki",meta:{name:"OtterWiki",description:"OtterWiki is a simple, easy-to-use wiki software for personal use and small teams. It's designed to be minimalist, focusing on the essentials without unnecessary complexity. OtterWiki stores all content as Markdown files in a Git repository, providing automatic version control and the ability to edit pages using your favorite text editor. It features a clean, modern interface with syntax highlighting, file attachments, full-text search, and dark mode support. The wiki requires no database setup - everything is stored in plain text files, making backups and migrations simple. OtterWiki supports user authentication, page permissions, and comes with a built-in editor with live preview. Perfect for documentation, note-taking, knowledge management, and collaborative writing in small teams.",instructions:null,changeLog:[{date:"2025-11-10",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to 2.17"},{date:"2026-05-05",description:"Version bumped to 2.20.4"}],links:[{label:"Website",url:"https://otterwiki.com/"},{label:"Github",url:"https://github.com/redimp/otterwiki"},{label:"Docker Hub",url:"https://hub.docker.com/r/redimp/otterwiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"otterwiki"},appServiceImage:{type:"string",title:"App Service Image",default:"redimp/otterwiki:2.20.4"}}},benefits:[{title:"Simple & Lightweight",description:"Minimalist design focusing on essential wiki features without unnecessary complexity. No database required - everything stored in plain text files."},{title:"Git-Based Version Control",description:"All content automatically stored in Git repository, providing complete version history, rollback capabilities, and the ability to edit using any text editor."},{title:"Easy to Deploy",description:"Single container deployment with no complex configuration or database setup. Just deploy and start writing your documentation."}],features:[{title:"Markdown Editor",description:"Built-in editor with live preview, syntax highlighting, and support for Markdown formatting for easy content creation."},{title:"File Attachments",description:"Upload and manage images and files directly through the web interface, with all files stored alongside your wiki content."},{title:"Full-Text Search",description:"Quickly find information across all wiki pages with powerful full-text search capabilities."},{title:"User Authentication",description:"Built-in user management with authentication and page-level permissions to control access to your content."},{title:"Dark Mode Support",description:"Modern interface with both light and dark themes for comfortable viewing in any environment."},{title:"Version History",description:"View complete page history, compare versions, and revert changes thanks to Git-based storage."}],tags:["Wiki","Documentation","Markdown","Git","Knowledge Base"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"app-data",mountPath:"/app-data"}]}}),{services:t}}},{slug:"outline",meta:{name:"Outline Wiki",description:"Outline is a team knowledge base and wiki that helps organize your team's information in a structured and searchable manner. It offers an intuitive editing experience with markdown support, slash commands, and rich embeds. You can collaborate on documents in real-time, with comments and threads keeping conversations organized. The platform integrates seamlessly with Slack, allowing you to search and share documents without leaving the chat. Outline also supports public sharing of documents with your own brand colors, logos, and domain. It's designed to be fast, collaborative, and easy to use, with a focus on security and permissions. It also supports multiple languages and offers integrations with tools like Figma, Loom, and more.",instructions:"Notice, Auththenication Method is Required to use Outline. To use Other Login Methods, Just fill in dummy Cridentials and edit the env! Check out the Docs https://wiki.generaloutline.com/s/hosting/doc/authentication-7ViKRmRY5o! Notice, Some sort of SMTP is Optinal! Check the env Here https://github.com/outline/outline/blob/main/.env.sample",changeLog:[{date:"2023-01-15",description:"first release"},{date:"2023-03-04",description:"Version bumped to 0.75.2"},{date:"2025-02-28",description:"Version bumped to 0.82.0"},{date:"2025-07-24",description:"Version bumped to 0.85"}],links:[{label:"Website",url:"https://www.getoutline.com/"},{label:"Documentation",url:"https://www.getoutline.com/developers"},{label:"Github",url:"https://github.com/outline"}],contributors:[{name:"DrMxrcy",url:"https://github.com/DrMxrcy"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","domainURL","googleClient","googleClientSecret","databaseServiceName","redisServiceName","minioServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"outline"},appServiceImage:{type:"string",title:"App Service Image",default:"outlinewiki/outline:0.85"},domainURL:{type:"string",title:"Domain Url",description:"outline.domain.com"},databaseServiceName:{type:"string",title:"Database Service Name",default:"outline-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"outline-redis"},googleClient:{type:"string",title:"Google Client ID"},googleClientSecret:{type:"string",title:"Google Client Secret"},minioServiceName:{type:"string",title:"Minio Service Name",default:"outline-minio"}}},benefits:[{title:"Beautiful Documents",description:"Outline provides an intuitive editor with markdown support, slash commands, rich embeds, and more. This allows you to create beautiful documents without even trying."},{title:"Collaborate & Comment",description:"Outline allows you to collaborate on documents in real-time. Comments and threads keep conversations organized, making collaboration efficient and effective."},{title:"Structured & Instantly Searchable",description:"With Outline, you can nest documents in a hierarchy, automatically build a network of backlinks, and search across everything in milliseconds."},{title:"Integrated with Slack",description:"Outline integrates with Slack, allowing you to search and share documents without leaving chat, and automatically post document updates."},{title:"Public Sharing",description:"Outline allows you to share documents publicly with a link, or privately with a team. You can use your own brand colors, logos, and domain."},{title:"Fast & Collaborative",description:"Outline is designed to be fast, collaborative, and easy to use. It ensures millisecond response times, documents load instantly, search is speedy and navigating the UI is snappy."}],features:[{title:"Intuitive Editing Experience",description:"Outline provides a blazing fast editor with markdown support, slash commands, embeds, and more."},{title:"Collaboration",description:"Outline allows you to collaborate on documents in real-time. Comments and threads keep conversations organized."},{title:"Structured & Searchable",description:"Outline allows you to nest documents in a hierarchy, automatically build a network of backlinks, and search across everything in milliseconds."},{title:"Slack Integration",description:"Outline integrates with Slack, allowing you to search and share documents without leaving chat, and automatically post document updates."},{title:"Public Sharing",description:"Outline allows you to share documents publicly with a link, or privately with a team. You can use your own brand colors, logos, and domain."},{title:"Customizable",description:"Outline supports custom domains, allowing you to have docs.yourteam.com. You can white label with your own brand and colors."}],tags:["Documentation","Productivity","Business Apps","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64),i=y(64),o=v(),n=v(),r=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PGSSLMODE=disable","SECRET_KEY=".concat(a),"UTILS_SECRET=".concat(i),"DATABASE_URL=postgres://postgres:".concat(o,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"REDIS_URL=redis://default:".concat(r,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"URL=https://".concat(e.domainURL||"$(EASYPANEL_DOMAIN)"),"PORT=3000","AWS_ACCESS_KEY_ID=minio","AWS_REGION=us-east-1","AWS_SECRET_ACCESS_KEY=".concat(n),"AWS_S3_UPLOAD_BUCKET_URL=http://$(PROJECT_NAME)_minio:9000","AWS_S3_UPLOAD_BUCKET_NAME=wiki","AWS_S3_UPLOAD_MAX_SIZE=26214400","AWS_S3_FORCE_PATH_STYLE=true","AWS_S3_ACL=private","GOOGLE_ALLOWED_DOMAINS=gmail.com","GOOGLE_CLIENT_ID=".concat(e.googleClient),"GOOGLE_CLIENT_SECRET=".concat(e.googleClientSecret)].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:'sh -c "yarn db:migrate --env=production-ssl-disabled && yarn start --env=production-ssl-disabled"'},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:o}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:r}}),t.push({type:"app",data:{serviceName:e.minioServiceName,env:["MINIO_ROOT_USER=minio","MINIO_ROOT_PASSWORD=".concat(n)].join("\n"),source:{type:"image",image:"bitnami/minio:2022.12.12"},mounts:[{type:"volume",name:"data",mountPath:"/data"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:9001}]}}),{services:t}}}
1,{slug:"overseerr",meta:{name:"Overseerr",description:"Overseerr is a request management and media discovery tool for the Plex ecosystem. It provides a clean, modern interface for users to browse and request content for Plex, seamlessly integrating with services like Sonarr, Radarr, and Jellyfin.",instructions:null,changeLog:[{date:"2025-04-25",description:"Initial release"}],links:[{label:"Website",url:"https://overseerr.dev"},{label:"Documentation",url:"https://docs.overseerr.dev"},{label:"GitHub",url:"https://github.com/sct/overseerr"},{label:"Docker Hub",url:"https://hub.docker.com/r/linuxserver/overseerr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"overseerr"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/overseerr:develop-7f868f38e6f2f1834ea12dc8f5c095000c7a3c09-ls368"}}},benefits:[{title:"Streamlined Media Requests",description:"Allow users to easily request movies and TV shows through an intuitive interface"},{title:"Automated Content Management",description:"Integrates with Sonarr and Radarr to automatically download and manage requested content"},{title:"User Management",description:"Manage users with customizable permission levels for different request capabilities"},{title:"Plex Integration",description:"Connect to your Plex server to track available content and viewing status"}],features:[{title:"Modern UI",description:"Clean, responsive web interface built with React for desktop and mobile use"},{title:"Content Discovery",description:"Browse popular and trending content from various streaming platforms"},{title:"Request Management",description:"Review, approve, and manage user media requests in one place"},{title:"Email Notifications",description:"Send automated emails for request status updates and new content availability"},{title:"Multi-language Support",description:"Interface available in multiple languages through community translations"},{title:"Issue Reporting",description:"Built-in system for users to report problems with media"}],tags:["Media","Plex","Requests","Content Management","Sonarr","Radarr"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:5055}],mounts:[{type:"volume",name:"overseerr-config",mountPath:"/config"}]}}),{services:t}}},{slug:"owncast",meta:{name:"Owncast",description:"Owncast is a free and open-source live video and web chat server that works seamlessly with your existing broadcasting software. It gives you complete control and ownership over your stream, allowing you to create the content you want. The app comes with a frictionless built-in chat feature that enables your viewers to engage and be a part of the action. You can include custom emotes and build chat bots to encourage viewer engagement. Owncast also allows your live stream to reach a wider audience on The Fediverse, including platforms like Mastodon and other Fediverse services. It's a self-hosted and independent solution for live streaming, offering a high level of performance comparable to proprietary platforms.",instructions:null,changeLog:[{date:"2023-2-21",description:"first release"},{date:"2025-02-28",description:"Version bumped to 0.2.1"},{date:"2025-07-24",description:"Version bumped to 0.2.3"},{date:"2026-02-24",description:"Version bumped to 0.2.4"},{date:"2026-05-05",description:"Version bumped to 0.2.5"}],links:[{label:"Website",url:"https://owncast.online/"},{label:"Documentation",url:"https://owncast.online/docs"},{label:"Github",url:"https://github.com/owncast/owncast"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"owncast"},appServiceImage:{type:"string",title:"App Service Image",default:"gabekangas/owncast:0.2.5"}}},benefits:[{title:"Self-Hosted and Independent",description:"Owncast gives you complete control and ownership over your stream, allowing you to create the content you want. It's a self-hosted solution, meaning you have the freedom to manage your own server and data."},{title:"Reach a Wider Audience",description:"With Owncast, your live stream can reach a wider audience on The Fediverse. This allows people to follow and share your stream on Mastodon and other Fediverse services, expanding your viewer base."}],features:[{title:"Live Video and Web Chat Server",description:"Owncast is a free and open source live video and web chat server. It works with your existing broadcasting software, allowing you to start streaming on your own server in minutes."},{title:"Built-in Chat",description:"Owncast includes a frictionless built-in chat that allows your viewers to be a part of the action. You can include custom emotes and build chat bots to encourage engagement from your viewers."},{title:"Customizable",description:"Owncast allows you to tweak the content of your page, the video quality, server performance and more. You can also extend Owncast\u2019s functionality by building your own bots, overlays, tools and integrations."}],tags:["Chat","Media","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"owncloud",meta:{name:"Owncloud",description:"ownCloud Infinite Scale 3.0 is a secure cloud platform designed for real-time content collaboration. It is trusted by over 200 million users worldwide and offers a revolutionary project folder concept, Spaces, to boost seamless digital collaboration for remote teams of all sizes. The platform also provides a suite of powerful integrations through Web Office, including OnlyOffice, Microsoft 365, Collabora Online, and Microsoft Office Online, enabling users to collaborate seamlessly and securely from any location and device. ownCloud Infinite Scale 3.0 is designed with state-of-the-art security standards and best practices, ensuring superior data protection and privacy. It allows organizations to control their data at all times, anywhere, and can be deployed on-premises, in a data center of choice, or in a hybrid setup. The platform also supports multi-factor authentication, encryption, and elaborate file lifecycle management for enhanced security. ownCloud Infinite Scale 3.0 is designed to increase productivity by enabling modern teams to store, share, and work on their data and documents through a single point of access.",instructions:null,changeLog:[{date:"2023-2-28",description:"first release"},{date:"2025-07-24",description:"Version bumped to 10.15.3"},{date:"2026-02-24",description:"Version bumped to 10.16.1"},{date:"2026-05-08",description:"Version bumped to 10.16.2"}],links:[{label:"Website",url:"https://owncloud.com/"},{label:"Documentation",url:"https://doc.owncloud.com/"},{label:"Github",url:"https://github.com/owncloud/core"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName","redisServiceName","adminUsername","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"owncloud"},appServiceImage:{type:"string",title:"App Service Image",default:"owncloud/server:10.16.2"},databaseType:{type:"string",title:"Database Type",default:"postgres",oneOf:[{enum:["postgres"],title:"Postgres"},{enum:["mariadb"],title:"MariaDB"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"owncloud-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"owncloud-redis"},adminUsername:{type:"string",title:"Username"},adminPassword:{type:"string",title:"Password"}}},benefits:[{title:"Secure Cloud Platform",description:"ownCloud Infinite Scale 3.0 is the latest and most secure version of the ownCloud real-time content collaboration platform. It incorporates state-of-the-art security standards and best practices to ensure superior data protection and privacy."},{title:"Efficient Collaboration",description:"With ownCloud, modern teams can collaborate from anywhere and from any device. They can store, share and work on their data and documents through a single point of access, saving time on coordination and feedback processes."},{title:"Data Sovereignty",description:"ownCloud allows you to control your data at all times, anywhere and everywhere. It can be deployed on-premises, in a data center of your choice or in a hybrid setup, ensuring 100% data ownership."}],features:[{title:"Filesharing",description:"Trusted by 200 million users worldwide, ownCloud provides an easy, flexible and secure way for staff to share files and folders. It allows safe involvement of contacts outside your organization with select documents."},{title:"Spaces",description:"Spaces is a revolutionary project folder concept designed to boost seamless digital collaboration for remote teams of all sizes, while ensuring compliance, data control and security."},{title:"Web Office",description:"Web Office provides a suite of powerful integrations including OnlyOffice, Microsoft 365, Collabora Online and Microsoft Office Online. This enables users to collaborate seamlessly and securely irrespective of location and device."},{title:"Infinite Scale",description:"Infinite Scale is designed as a three-tier architecture separating storage, backend and frontend components communicating through secure, well-defined APIs. It ensures superior data protection and privacy."}],tags:["File Management","Collaboration","Data Security"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png","screenshot4.png"]},generate:function(e){var t=[],a=v(),i=v(),o=["OWNCLOUD_DOMAIN=https://$(PRIMARY_DOMAIN)","OWNCLOUD_TRUSTED_DOMAINS=$(PRIMARY_DOMAIN)","OWNCLOUD_TRUSTED_PROXIES=0.0.0.0/0","OWNCLOUD_REDIS_ENABLED=true","OWNCLOUD_REDIS_HOST=$(PROJECT_NAME)_".concat(e.redisServiceName),"OWNCLOUD_REDIS_PASSWORD=".concat(i),"OWNCLOUD_ADMIN_USERNAME=".concat(e.adminUsername),"OWNCLOUD_ADMIN_PASSWORD=".concat(e.adminPassword)];return"mariadb"===e.databaseType&&(o.push("OWNCLOUD_DB_TYPE=mysql","OWNCLOUD_DB_NAME=$(PROJECT_NAME)","OWNCLOUD_DB_USERNAME=mariadb","OWNCLOUD_DB_PASSWORD=".concat(a),"OWNCLOUD_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"OWNCLOUD_MYSQL_UTF8MB4=true"),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}})),"postgres"===e.databaseType&&(o.push("OWNCLOUD_DB_TYPE=pgsql","OWNCLOUD_DB_NAME=$(PROJECT_NAME)","OWNCLOUD_DB_USERNAME=postgres","OWNCLOUD_DB_PASSWORD=".concat(a),"OWNCLOUD_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName)),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}})),t.push({type:"app",data:{serviceName:e.appServiceName,env:o.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/mnt/data"}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"oxicloud",meta:{name:"OxiCloud",description:"OxiCloud is an ultra-fast, secure, and lightweight self-hosted cloud storage written in Rust. It serves as a lightweight alternative to NextCloud, designed for low-resource environments. OxiCloud runs on just 512MB RAM with sub-second response times, offering file management, user authentication, file deduplication, search, CalDAV calendars, CardDAV contacts, and multi-language support. Built with Clean Architecture, it provides a clean UI that works on desktop and mobile.",instructions:"Set OXICLOUD_BASE_URL on the app service to your public URL (e.g. https://cloud.example.com)\nif you access OxiCloud via a domain; otherwise auth and share links can break. Database\nmigrations run automatically on first start. JWT signing uses a generated OXICLOUD_JWT_SECRET.\n",changeLog:[{date:"2026-02-16",description:"Template Release (v0.3.4)"}],links:[{label:"Github",url:"https://github.com/DioCrafts/OxiCloud"},{label:"Documentation",url:"https://github.com/DioCrafts/OxiCloud/tree/main/doc"},{label:"Docker Hub",url:"https://hub.docker.com/r/diocrafts/oxicloud"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"oxicloud"},appServiceImage:{type:"string",title:"OxiCloud Image",default:"diocrafts/oxicloud:0.5.1"},databaseImage:{type:"string",title:"PostgreSQL Image",default:"postgres:17.9-alpine3.23"}}},benefits:[{title:"Lightweight & Fast",description:"Runs on 512MB RAM with sub-second responses. Built in Rust with LTO optimization\u2014no PHP overhead or garbage collection."},{title:"NextCloud Alternative",description:"A simpler, faster alternative to NextCloud for home servers and low-resource hardware like Raspberry Pi."},{title:"Complete Data Ownership",description:"Self-hosted solution with full control over your files, calendars, and contacts. No third-party cloud dependency."}],features:[{title:"File Storage",description:"Upload, download, and organize files with folder management, drag-and-drop, trash bin, and file deduplication."},{title:"CalDAV & CardDAV",description:"Calendars and contacts with standard CalDAV/CardDAV support for sync with mobile and desktop clients."},{title:"User Authentication",description:"JWT-based authentication with personal folders per user, favorites, and recent files."},{title:"Search & Multi-Language",description:"Search across files and folders. Supports English, Spanish, and Persian out of the box."}],tags:["File Storage","Cloud Storage","Self-Hosted","NextCloud Alternative","CalDAV","CardDAV"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[],i=v(),o=y(64),n="postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)");return a.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i,image:null!==(t=e.databaseImage)&&void 0!==t?t:"postgres:17.9-alpine3.23"}}),a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8086}],env:["OXICLOUD_DB_CONNECTION_STRING=".concat(n),"DATABASE_URL=".concat(n),"OXICLOUD_JWT_SECRET=".concat(o),"MIMALLOC_PURGE_DELAY=0","MIMALLOC_ALLOW_LARGE_OS_PAGES=0"].join("\n"),mounts:[{type:"volume",name:"storage_data",mountPath:"/app/storage"}]}}),{services:a}}},{slug:"oxigen",meta:{name:"Oxigen",description:"Oxigen is a dynamic social media image generator designed to streamline the process of creating and customizing og images. With a user-friendly interface and API, Oxigen allows you to effortlessly generate images tailored to your specific needs. Whether you're looking to create unique images for your social media posts or need a reliable tool for generating og images, Oxigen offers a flexible and efficient solution.",instructions:null,changeLog:[{date:"2023-1-22",description:"first release"},{date:"2025-07-24",description:"Version bumped to 2.1.0"}],links:[{label:"Github",url:"https://github.com/yuriizinets/oxigen"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"oxigen"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/yuriizinets/oxigen:2.1.0"}}},benefits:[{title:"Dynamic Social Media Image Generation",description:"Oxigen allows you to easily create and customize social media images. This dynamic image generation capability can greatly enhance your social media presence and engagement."},{title:"User Interface and API",description:"Oxigen provides both a user interface and an API, giving you the flexibility to create images in the way that suits you best. Whether you prefer a visual approach or a more programmatic one, Oxigen has you covered."}],features:[{title:"Customizable Images",description:"With Oxigen, you have the power to customize your social media images to your liking. You can easily adjust various elements of your images to make them truly unique and eye-catching."},{title:"API Access",description:"Oxigen provides an API that allows you to programmatically create and customize images. This feature is perfect for those who prefer to automate their image creation process."}],tags:["Social Networking","Image Generator"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"paaster",meta:{name:"Paaster",description:"Paaster is a secure and user-friendly pastebin application with end-to-end encryption. Content is encrypted locally in your browser\u2014the key never reaches the server. Features paste history, delete-after-view, file drag & drop, and API. Supports MinIO, S3, R2, and other S3-compatible storage.",instructions:'After deployment, access Paaster via the main domain. Pastes are E2EE by\ndefault. Uses built-in MinIO for storage. If using MinIO, create the bucket\n"paaster" in the MinIO console (minio-$(domain):9001) or via mc CLI:\nmc mb minio_instance/paaster; mc anonymous set none minio_instance/paaster.\nFor external S3/R2, set S3 env vars on the Paaster service.\n',changeLog:[{date:"2026-03-09",description:"First Release"},{date:"2026-05-08",description:"Version bumped to 3.2.0"}],links:[{label:"GitHub",url:"https://github.com/WardPearce/paaster"},{label:"Website",url:"https://paaster.com"},{label:"Documentation",url:"https://github.com/WardPearce/paaster/blob/main/README.md"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","mongoImage","minioImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"paaster"},appServiceImage:{type:"string",title:"App Service Image",default:"wardpearce/paaster:3.2.0"},mongoImage:{type:"string",title:"MongoDB Image",default:"mongo:8.3.1"},minioImage:{type:"string",title:"MinIO Image",default:"quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z"}}},benefits:[{title:"End-to-End Encryption",description:"Content encrypted in browser, key never sent to server"},{title:"Privacy-First",description:"Your pastes stay confidential and under your control"},{title:"Paste History",description:"Unix-like search across your paste history"},{title:"Flexible Storage",description:"MinIO, S3, R2, or other S3-compatible backends"}],features:[{title:"Delete After View",description:"Auto-delete pastes after views or expiration"},{title:"File Drag & Drop",description:"Easy file upload support"},{title:"API & CLI",description:"REST API and pip CLI for terminal uploads"},{title:"QR Code Sharing",description:"Share pastes via QR codes"}],tags:["Pastebin","Privacy","Encryption","Open Source","Self-hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v(),o="minioadmin",n=v(),r="$(PROJECT_NAME)_".concat(e.appServiceName);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["COOKIE_SECRET=".concat(a),"S3_ENDPOINT=http://".concat(r,"-minio:9000"),"S3_REGION=us-east-1","S3_ACCESS_KEY_ID=".concat(o),"S3_SECRET_ACCESS_KEY=".concat(n),"S3_BUCKET=paaster","S3_FORCE_PATH_STYLE=true","MONGO_DB=paasterv3","MONGO_URL=mongodb://mongo:".concat(i,"@").concat(r,"-db:27017/paasterv3?authSource=admin")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i,image:e.mongoImage}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),source:{type:"image",image:e.minioImage},deploy:{command:'minio server /data --console-address ":9001"'},env:["MINIO_ROOT_USER=".concat(o),"MINIO_ROOT_PASSWORD=".concat(n)].join("\n"),domains:[{host:"minio-$(EASYPANEL_DOMAIN)",port:9001}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"pairdrop",meta:{name:"PairDrop",description:"PairDrop is an open-source peer-to-peer file sharing application designed for seamless and secure data transfer between devices on the same network. With its minimalist design and cross-platform compatibility, PairDrop ensures a user-friendly and efficient file sharing experience. It eliminates the need for third-party cloud services, offering a direct and private solution for sharing files, links, and other data securely.",instructions:null,changeLog:[{date:"2024-11-17",description:"Template Release"},{date:"2025-02-28",description:"Version bumped to 1.11.2"}],links:[{label:"Website",url:"https://pairdrop.net"},{label:"Documentation",url:"https://pairdrop.net/docs"},{label:"Github",url:"https://github.com/schlagmichdoch/pairdrop"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pairdrop"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/pairdrop:1.11.2"}}},benefits:[{title:"Peer-to-Peer File Sharing",description:"PairDrop provides direct peer-to-peer file sharing, ensuring that your data is not stored on third-party servers, keeping transfers private and secure."},{title:"Cross-Platform Compatibility",description:"PairDrop supports various platforms, including Windows, macOS, Linux, Android, and iOS, making it accessible for all devices on the same network."},{title:"Easy to Use",description:"With its simple and intuitive interface, PairDrop enables users to share files quickly and effortlessly, without requiring complex configurations."},{title:"Open-Source and Free",description:"PairDrop is an open-source solution, allowing users to enjoy its features without subscription fees or hidden costs."}],features:[{title:"Local Network File Sharing",description:"PairDrop operates on local networks, enabling secure and fast file transfers without the need for an internet connection."},{title:"Device Discovery",description:"Automatically discover and connect to nearby devices for quick file sharing."},{title:"End-to-End Encryption",description:"Ensure that your files are transferred securely with built-in end-to-e
1nd encryption, protecting your data from unauthorized access."},{title:"Lightweight and Minimalist",description:"Designed to be lightweight, PairDrop runs efficiently on all devices, consuming minimal resources while providing robust functionality."}],tags:["File Sharing","Peer-to-Peer","Cross-Platform","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC","RATE_LIMIT=false","WS_FALLBACK=false","RTC_CONFIG=","DEBUG_MODE=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"paisa",meta:{name:"Paisa",description:"Paisa is a personal finance manager and expense tracker that helps you manage your finances, track expenses, and visualize your financial data.",instructions:null,changeLog:[{date:"2025-04-14",description:"First Release"},{date:"2026-02-23",description:"Version bumped to v0.7.4"}],links:[{label:"Website",url:"https://paisa.fyi"},{label:"GitHub",url:"https://github.com/ananthakumaran/paisa"},{label:"Documentation",url:"https://paisa.fyi/reference/accounts/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"paisa"},appServiceImage:{type:"string",title:"App Service Image",default:"ananthakumaran/paisa:v0.7.4"}}},benefits:[{title:"Expense Tracking",description:"Track and categorize your expenses easily"},{title:"Financial Visualization",description:"Visualize your financial data with charts and graphs"},{title:"Budget Management",description:"Create and manage budgets for different categories"},{title:"Self-Hosted",description:"Keep your financial data private on your own server"},{title:"Open Source",description:"Free and open-source personal finance manager"}],features:[{title:"Expense Tracking",description:"Record and categorize all your expenses"},{title:"Income Management",description:"Track your income sources and payments"},{title:"Budget Planning",description:"Create monthly or yearly budgets"},{title:"Financial Reports",description:"Generate financial reports and insights"},{title:"Data Visualization",description:"View your financial data in visual charts"}],tags:["Finance","Budgeting","Expense Tracker","Self-Hosted","Personal Finance"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7500}],mounts:[{type:"volume",name:"paisa-data",mountPath:"/root/Documents/paisa/"}]}}),{services:t}}},{slug:"palmr",meta:{name:"Palmr",description:"Palmr is a self-hosted file management and download application that provides a comprehensive solution for managing files and downloads. It features a modern web interface for file operations, download management, and file organization. Palmr supports various file operations including uploading, downloading, organizing, and managing your files in a centralized location.",instructions:null,changeLog:[{date:"2025-09-18",description:"Template Release"}],links:[{label:"Github",url:"https://github.com/kyantech/palmr"},{label:"Documentation",url:"https://palmr.kyantech.com.br/docs/2.0.0-beta"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"palmr"},appServiceImage:{type:"string",title:"App Service Image",default:"kyantech/palmr:v3.1.1-rc.1"}}},benefits:[{title:"File Management",description:"Centralized file management with uploading, downloading, and organizing capabilities for your file collection."},{title:"Self-Hosted Control",description:"Keep your files completely private and secure on your own server with full control over your file library."},{title:"Download Management",description:"Advanced download management with concurrent downloads, queue management, and memory optimization for large files."}],features:[{title:"File Operations",description:"Comprehensive file operations including upload, download, organize, and manage files with a modern web interface."},{title:"Download Management",description:"Advanced download system with concurrent downloads, queue management, and automatic memory scaling for optimal performance."},{title:"Memory Optimization",description:"Intelligent memory management with auto-scaling capabilities and garbage collection for large file downloads."},{title:"S3 Compatible Storage",description:"Optional S3-compatible storage integration for scalable file storage and cloud integration capabilities."},{title:"File Encryption",description:"Optional filesystem encryption for secure file storage with configurable encryption keys."},{title:"Multi-Language Support",description:"Multi-language interface support with configurable default language settings."},{title:"Presigned URLs",description:"Secure file sharing with presigned URLs and configurable expiration times for temporary access."},{title:"Data Persistence",description:"Reliable data storage for files, user preferences, and application state with persistent volume mounting."}],tags:["File Management","Download Manager","Self-Hosted","Web Interface","File Storage","Download Queue","Memory Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/app/server"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:5487}]}}),{services:t}}},{slug:"paperclip",meta:{name:"Paperclip",description:"Paperclip is an open-source orchestration platform for running autonomous AI-powered businesses. It provides a Node.js server and React UI that coordinates teams of AI agents \u2014 supporting Claude Code, Codex, Cursor, Bash, and HTTP webhooks \u2014 through a structured org chart with roles, budgets, governance, and goal alignment. Agents are assigned missions, given budgets, and run on heartbeat schedules, while you monitor costs and audit every tool-call from one dashboard.",instructions:"After the deployment is complete, open the service console and go to the Scripts tab. Run the Onboard script and copy the invite and paste it in the browser and create the admin user.",changeLog:[{date:"2026-05-11",description:"first release"}],links:[{label:"Website",url:"https://paperclip.ing"},{label:"Documentation",url:"https://paperclip.ing/docs"},{label:"Github",url:"https://github.com/paperclipai/paperclip"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"paperclip"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/paperclipai/paperclip:sha-8af38fb"}}},benefits:[{title:"Autonomous AI Business Orchestration",description:"Define a mission, hire agents (Claude Code, Codex, Cursor, or any HTTP endpoint), set budgets, and let Paperclip coordinate the entire operation 24/7 without manual intervention."},{title:"Unified Cost Control",description:"Per-agent budgets with hard-stop enforcement prevent runaway API costs. Track spend in real time and get full visibility into every tool call and decision."},{title:"Self-Hosted and Private",description:"All data stays on your own infrastructure. No third-party SaaS dependency \u2014 full control over agents, tasks, secrets, and audit logs."},{title:"Multi-Company Isolation",description:"Run multiple independent companies from a single deployment with complete data isolation, company import/export, and secret scrubbing."}],features:[{title:"Org Chart with Roles and Reporting Lines",description:"Model your AI company structurally with job titles, permissions, and manager/report relationships so every agent knows its responsibilities."},{title:"Goal-Traced Task System",description:"Every issue traces back to the company mission. Atomic checkout prevents duplicate work, and structured dependencies keep tasks ordered correctly."},{title:"Heartbeat Scheduling",description:"Agents wake on a configurable schedule, check their queue, and take action. Delegation flows up and down the org chart automatically."},{title:"Board Approval Workflows",description:"Require human sign-off before agents execute critical actions, giving you governance control without micromanaging every step."},{title:"Adapter-Agnostic Agent Support",description:"Connect any agent runtime \u2014 Claude Code, OpenAI Codex, Cursor, Gemini, Bash scripts, or plain HTTP webhooks \u2014 through a unified adapter layer."},{title:"Full Audit Logging",description:"Every tool call, cost event, and decision is logged and queryable, giving you a complete history of what every agent did and why."}],tags:["AI","Automation","Agents","Orchestration","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"PORT=3100","SERVE_UI=true","BETTER_AUTH_SECRET=".concat(i),"PAPERCLIP_PUBLIC_URL=https://$(PRIMARY_DOMAIN)","PAPERCLIP_DEPLOYMENT_MODE=authenticated","PAPERCLIP_DEPLOYMENT_EXPOSURE=private"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3100}],mounts:[{type:"volume",name:"data",mountPath:"/paperclip"}],scripts:[{name:"Onboard",script:"pnpm paperclipai onboard"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"papercups",meta:{name:"Papercups",description:"Papercups is a privacy-focused, open-source app designed to streamline communication with your customers. It provides a powerful dashboard to coordinate and reply to messages over various platforms including chat, email, Slack, and SMS. The app offers a customizable widget that you can tailor to your brand's aesthetics, without the need for any coding. Papercups also integrates seamlessly with your existing work environment, eliminating the need to log in to another dashboard. It supports HTML, React, React Native, and Flutter integrations. The app is built with Elixir on top of BEAM for incredible scalability, making it a suitable choice for businesses of all sizes. It also offers personalized support, managing your deployment on your infrastructure while providing the benefits of self-hosting with the reliability and scalability of the cloud.",instructions:null,changeLog:[{date:"2023-3-20",description:"first release"}],links:[{label:"Website",url:"https://papercups.io"},{label:"Documentation",url:"https://docs.papercups.io/"},{label:"Github",url:"https://github.com/papercups-io/papercups"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"papercups"},appServiceImage:{type:"string",title:"App Service Image",default:"papercups/papercups:latest"},databaseServiceName:{type:"string",title:"Database Service Name",default:"papercups-db"}}},benefits:[{title:"Streamlined Communication",description:"Coordinate and reply to messages over chat, email, Slack, and SMS, all from one powerful dashboard. This removes the friction of having to log in to multiple platforms to manage customer communications."},{title:"Privacy-focused",description:"Papercups is a privacy-focused, open-source alternative to other customer communication platforms. It is designed with a focus on protecting customer data and ensuring secure communications."},{title:"Customizable Widget",description:"Our widget is highly customizable. You can change your color, greetings, text and more through our simple UI without needing any code. This allows you to personalize your customer interactions and align them with your brand."},{title:"Scalability",description:"Built with Elixir on top of BEAM, Papercups offers incredible scalability. This means it can handle an unlimited volume of customer communications, making it a reliable solution for businesses of all sizes."},{title:"Personalized Support",description:"We offer personalized support, managing your deployment on your infrastructure. This combines the benefits of self-hosting with the reliability and scalability of the cloud."}],features:[{title:"Powerful Dashboard",description:"Streamline customer support and feedback with our feature-rich dashboard. It allows you to manage all your customer communications from one place."},{title:"Reply from Where You Work",description:"You can reply to conversations from Slack, our dashboard, or our mobile app. This flexibility allows you to manage customer communications from wherever you are."},{title:"Brand and Customize Your Widget",description:"Our widget is highly customizable. You can change your color, greetings, text and more through our simple UI without needing any code."},{title:"Integration Support",description:"Papercups supports HTML, React, React Native and Flutter integrations. Our integration takes minutes to setup, saving your developers time."},{title:"Self-managed Deployment",description:"Papercups can be deployed in your cloud, for painless adoption and onboarding. Whether it's AWS, Docker, or Heroku, we've got you covered."}],tags:["Customer Support","Communication","Privacy"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(128),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"SECRET_KEY_BASE=".concat(a),"BACKEND_URL=localhost","MIX_ENV=prod","REQUIRE_DB_SSL=false","REACT_APP_FILE_UPLOADS_ENABLED=1","REACT_APP_URL=$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{command:"sh -c 'sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && echo 'running' && /entrypoint.sh run'"}}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"paperlessngx",meta:{name:"Paperless-ngx",description:"Paperless-ngx is a modern document management system designed to convert your physical documents into a searchable online archive, helping you maintain a clutter-free, paperless environment. It uses advanced OCR technology to add selectable text to image-only documents, and allows you to organize and index your scanned documents with tags, correspondents, types, and more. The app supports a variety of file formats including PDFs, images, plain text files, and Office documents. It also features a single-page application front end with a dashboard that displays basic statistics and allows document upload. With its full-text search functionality, you can easily find the documents you need, with results sorted by relevance to your search query. The app also includes email processing, enabling it to add documents from your email accounts. Moreover, Paperless-ngx is powered by machine learning, enabling it to learn from your documents and automatically assign tags, correspondents, and types to documents once you've stored a few documents in it. It is optimized for multi-core systems, allowing it to process multiple documents in parallel.",instructions:"Please use the following credentials to login. admin|password",changeLog:[{date:"2022-10-28",description:"first release"},{date:"2025-07-24",description:"Update to 2.17"},{date:"2025-12-29",description:"Version bumped to 2.20"},{date:"2026-05-05",description:"Version bumped to 2.20.15"}],links:[{label:"Documentation",url:"https://paperless-ngx.readthedocs.io/en/latest/"},{label:"Github",url:"https://github.com/paperless-ngx/paperless-ngx"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"paperlessngx"},appServiceImage:{type:"string",title:"App Service Image",default:"paperlessngx/paperless-ngx:2.20.15"},redisServiceName:{type:"string",title:"Redis Service Name",default:"paperlessngx-redis"}}},benefits:[{title:"Efficient Document Management",description:"Paperless-ngx is a document management system that transforms your physical documents into a searchable online archive, reducing the need for physical storage and making document retrieval easier and faster."},{title:"Advanced Search Capabilities",description:"With full text search, auto completion, and results sorted by relevance, Paperless-ngx makes it easy to find the documents you need. Highlighting shows you which parts of the document matched the query, and you can even search for similar documents."},{title:"Email Processing",description:"Paperless-ngx can add documents from your email accounts, allowing you to manage and archive important emails alongside your other documents. You can configure multiple accounts and filters for each account."},{title:"Machine Learning Powered Document Matching",description:"Paperless-ngx learns from your documents and can automatically assign tags, correspondents, and types to documents once you've stored a few documents in the system, saving you time and effort in document organization."}],features:[{title:"Document Scanning and Indexing",description:"Paperless-ngx allows you to organize and index your scanned documents with tags, correspondents, types, and more. It performs OCR on your documents, adds selectable text to image-only documents, and adds tags, correspondents, and document types to your documents."},{title:"Support for Various Document Types",description:"Paperless-ngx supports PDF documents, images, plain text files, and Office documents (Word, Excel, Powerpoint, and LibreOffice equivalents). Office document support is optional and provided by Apache Tika."},{title:"Customizable Views",description:"You can customize views in Paperless-ngx, save them, and display them on the dashboard. This allows you to tailor the system to your specific needs and preferences."},{title:"Email Processing",description:"When adding documents from mail, Paperless-ngx can move these mail to a new folder, mark them as read, flag them as important or delete them. This helps in managing your email documents efficiently."},{title:"Sanity Checker",description:"The integrated sanity checker in Paperless-ngx makes sure that your document archive is in good health, providing peace of mind and ensuring the integrity of your document archive."}],tags:["Documents","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PAPERLESS_SECRET_KEY=".concat(a),"PAPERLESS_REDIS=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"PAPERLESS_ADMIN_USER=admin","PAPERLESS_ADMIN_PASSWORD=password","PAPERLESS_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"consume",mountPath:"/usr/src/paperless/consume"},{type:"volume",name:"data",mountPath:"/usr/src/paperless/data"},{type:"volume",name:"export",mountPath:"/usr/src/paperless/export"},{type:"volume",name:"media",mountPath:"/usr/src/paperless/media"}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"papermerge",meta:{name:"Papermerge",description:"Papermerge is an open-source document management system (DMS) designed to help you digitize, store, and organize documents efficiently. It simplifies document workflows with features like automated OCR, smart categorization, and role-based access control. By centralizing all your documents in a single platform, Papermerge enables teams to improve collaboration and streamline document handling processes.",instructions:null,changeLog:[{date:"2025-01-15",description:"Template Release"},{date:"2025-02-28",description:"Version bumped to 3.4"},{date:"2025-12-29",description:"Version bumped to 3.5.3"}],links:[{label:"Documentation",url:"https://docs.papermerge.io/3.3/"},{label:"GitHub",url:"https://github.com/ciur/papermerge"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"papermerge"},appServiceImage:{type:"string",title:"App Service Image",default:"papermerge/papermerge:3.5.3"},username:{type:"string",title:"Auth Username",default:"admin"},password:{type:"string",title:"Auth Password",default:"admin"}}},benefits:[{title:"Centralized Document Management",description:"Papermerge consolidates all your documents into a single platform for better organization and easy retrieval."},{title:"Enhanced Team Efficiency",description:"Save time and effort by digitizing, categorizing, and searching documents, improving overall team collaboration."},{title:"Open-Source and Flexible",description:"Leverage an open-source solution with the flexibility to adapt to your organization\u2019s specific needs."}],features:[{title:"Automated OCR",description:"Automatically extract text from scanned documents, making them easy to search and reference."},{title:"Smart Tagging and Categorization",description:"Assign tags and categorize your documents for seamless organization and workflow management."},{title:"Role-Based Access Control",description:"Secure your documents with fine-grained permissions and user management features."},{title:"Advanced Search Capabilities",description:"Quickly locate documents using full-text search or by leveraging custom metadata fields."}],tags:["Document Management","OCR","Workflow Automation","Open-Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(5),n=["PAPERMERGE__SECURITY__SECRET_KEY: ".concat(o),"PAPERMERGE__AUTH__USERNAME: ".concat(e.username),"PAPERMERGE__AUTH__PASSWORD: ".concat(e.password),"PAPERMERGE__DATABASE__URL: postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"PAPERMERGE__REDIS__URL: redis://default:".concat(i,"@").concat(e.appServiceName,"-redis:6379/0")].join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,env:[n].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:[n].join("\n"),source:{type:"image",image:e.appServiceImage}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"papra",meta:{name:"Papra",description:"Papra is a modern, open-source project management and collaboration platform designed to help teams organize their work, track progress, and collaborate effectively. It provides a comprehensive suite of tools for task management, team communication, file sharing, and project tracking in a single, integrated platform. Papra offers an intuitive interface with powerful features for managing complex projects and workflows.",instructions:null,changeLog:[{date:"2025-09-11",description:"Initial Template Release (0.9.1-rootless)"}],links:[{label:"GitHub",url:"https://github.com/papra-hq/papra"},{label:"Documentation",url:"https://docs.papra.app"},{label:"Website",url:"https://papra.app"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"papra"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/papra-hq/papra:0.9.1-rootless",description:"Papra Docker image"}}},benefits:[{title:"Comprehensive Project Management",description:"All-in-one platform for project management with task tracking, team collaboration, and progress monitoring in a single, integrated solution."},{title:"Team Collaboration",description:"Advanced collaboration features with real-time communication, file sharing, and team coordination tools for effective teamwork."},{title:"Intuitive Interface",description:"User-friendly interface designed for productivity with clean layouts, intuitive navigation, and customizable dashboards."},{title:"Self-Hosted Solution",description:"Complete control over your data with a self-hosted solution that keeps your projects and team information private and secure."}],features:[{title:"Task Management",description:"Powerful task management system with priority settings, due dates, assignments, and progress tracking for organized project execution."},{title:"Team Communication",description:"Built-in communication tools with messaging, comments, and notifications to keep your team connected and informed."},{title:"File Sharing",description:"Secure file sharing and document management with version control and collaborative editing capabilities."},{title:"Project Tracking",description:"Comprehensive project tracking with timelines, milestones, and progress reports for better project visibility and control."},{title:"Customizable Workflows",description:"Flexible workflow customization to match your team's processes and project requirements."},{title:"Mobile Access",description:"Mobile-responsive design with native app support for accessing your projects and tasks from anywhere."}],tags:["Project Management","Team Collaboration","Task Management","Self-Hosted","Productivity","Workflow","Communication","File Sharing","Progress Tracking","Mobile Access"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["APP_BASE_URL=https://$(PRIMARY_DOMAIN)"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:1221}],mounts:[{type:"volume",name:"app-data",mountPath:"/app/app-data"}]}}),{services:t}}},{slug:"passbolt",meta:{name:"Passbolt",description:"Passbolt is a security-first, open source password manager designed for teams and businesses. It is trusted by thousands of organizations worldwide, including Fortune 500 companies, defense industry, universities, startups, and many others. The app puts security first, with top penetration testers regularly assessing its software. It supports user-owned secret keys and end-to-end encryption even in complex scenarios. Passbolt is also built for collaboration, allowing organizations and teams to securely share credentials with powerful auditing tools. It offers unparalleled granularity for both access controls and encrypted data. The app is headquartered in the EU, ensuring that privacy is not only a top priority but also guaranteed by law. Passbolt can be used from your browser or mobile phone, with real-time sharing. It also supports programmatic password retrieval, storage, and sharing with its JSON API.",instructions:'In order to create the first admin account, the following needs to be executed inside the passpolt container "su -m -c "bin/cake passbolt register_user -u [email protected] -f YOURNAME -l SURNAME -r admin" -s /bin/sh www-data". Please follow further instructions of the command output.',changeLog:[{date:"2023-04-03",description:"first release"},{date:"2025-07-24",description:"Update to 5.3.2"},{date:"2025-12-29",description:"Update to 5.8.0"},{date:"2026-02-24",description:"Update to 5.9.0"},{date:"2026-05-05",description:"Update to 5.11.0"}],links:[{label:"Website",url:"https://passbolt.com"},{label:"Documentation",url:"https://help.passbolt.com"},{label:"Github",url:"https://github.com/passbolt/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"passbolt"},appServiceImage:{type:"string",title:"App Service Image",default:"passbolt/passbolt:5.11.0-1-ce"},databaseServiceName:{type:"string",title:"Database Service Name",default:"passbolt-db"}}},benefits:[{title:"Unparalleled Security",description:"Passbolt is a password manager that prioritizes security above all else. It is regularly assessed by top penetration testers and the findings are made public. This transparency ensures that you can trust Passbolt with your most sensitive information."},{title:"Built for Team Collaboration",description:"Unlike most password managers that focus on individual users, Passbolt is designed to meet the needs of organizations and teams. It allows you to securely share your credentials and provides powerful auditing tools for power users."},{title:"Privacy Guaranteed",description:"Based in the EU, Passbolt guarantees your privacy by law. You can host it behind your firewalls or in an air-gapped environment where you have full control. Even the paid versions of Passbolt are 100% open source, ensuring transparency and allowing anyone to audit the code."}],features:[{title:"User-Owned Secret Keys and End-to-End Encryption",description:"Passbolt supports user-owned secret keys and end-to-end encryption, even in complex scenarios. This ensures that your data is always secure."},{title:"Granular Access Controls",description:"Passbolt provides unparalleled granularity for both access controls and encrypted data. This allows you to manage who has access to what information and when."},{title:"Real-Time Password Syncing",description:"Passbolt can be used from your browser or mobile phone, and sharing happens in real time. This means that you can access your passwords from any device, at any time."},{title:"Developer-Friendly",description:"Passbolt allows developers to retrieve, store, and share passwords programmatically with the JSON API. This makes it easy to automate tasks at scale."}],tags:["Security","Password Manager","Collaboration"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_FULL_BASE_URL=https://$(PRIMARY_DOMAIN)","DATASOURCES_DEFAULT_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DATASOURCES_DEFAULT_USERNAME=mysql","DATASOURCES_DEFAULT_PASSWORD=".concat(a),"DATASOURCES_DEFAULT_DATABASE=$(PROJECT_NAME)","PASSBOLT_REGISTRATION_PUBLIC=false","PASSBOLT_SSL_FORCE=false"].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"sleep 10 && /docker-entrypoint.sh"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"gpg",mountPath:"/etc/passbolt/gpg"},{type:"volume",name:"jwt",mountPath:"/etc/passbolt/jwt"}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"passky",meta:{name:"Passky Server",description:"Passky is a simple, modern, lightweight, open source and secure password manager. It allows you to securely store and manage your passwords, ensuring your sensitive credentials remain protected. This self-hosted server component works with the Passky clients (web, desktop, and mobile apps) to provide a complete password management solution that puts you in control of your data.",instructions:null,changeLog:[{date:"2025-04-22",description:"first release"}],links:[{label:"Website",url:"https://passky.org"},{label:"GitHub",url:"https://github.com/Rabbit-Company/Passky-Server"},{label:"Docker Hub",url:"https://hub.docker.com/r/rabbitcompany/passky-server"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminUsername","adminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"passky-server"},appServiceImage:{type:"string",title:"App Service Image",default:"rabbitcompany/passky-server:8.1.8"},adminUsername:{type:"string",title:"Admin Username",default:"admin"},adminPassword:{type:"string",title:"Admin Password",default:"admin"}}},benefits:[{title:"Complete Privacy Control",description:"Self-host your password manager to maintain full control over your sensitive credentials without relying on third-party services."},{title:"Open Source Security",description:"Passky's open-source nature means the code can be audited by security professionals, ensuring there are no hidden vulnerabilities or backdoors."},{title:"Scalable Architecture",description:"Configure your server with SQLite for simplicity or scale up with MySQL and Redis for improved performance and concurrent connections."}],features:[{title:"Secure Password Storage",description:"Store passwords with strong encryption to keep your sensitive data protected from unauthorized access."},{title:"Two-Factor Authentication",description:"Enhance security with optional two-factor authentication including YubiKey support for hardware-based security."},{title:"Multiple Database Options",description:"Choose between SQLite for simplicity or MySQL for better performance and scalability depending on your needs."},{title:"Rate Limiting Protection",description:"Built-in rate limiting protects your server from brute force attacks and ensures stable performance under load."},{title:"Cross-Platform Compatibility",description:"Works with all Passky clients including web, desktop (Windows, macOS, Linux), and mobile (Android, iOS) applications."}],tags:["Password Manager","Security","Authentication","Self-Hosted","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(),n=y();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"passky_data",mountPath:"/var/www/html/data"}],env:["SERVER_LOCATION=US","SERVER_CORES=1","ADMIN_USERNAME=".concat(e.adminUsername),"ADMIN_PASSWORD=".concat(e.adminPassword),"CF_TURNSTILE_SITE_KEY=".concat(o),"CF_TURNSTILE_SECRET_KEY=".concat(n),"DATABASE_ENGINE=mysql","DATABASE_FILE=passky","MYSQL_HOST=$(PROJECT_NAME)-".concat(e.appServiceName,"-db"),"MYSQL_PORT=3306","MYSQL_DATABASE=$(PROJECT_NAME)","MYSQL_USER=mysql","MYSQL_PASSWORD=".concat(a),"MYSQL_SSL=false","MYSQL_SSL_CA=/etc/ssl/certs/ca-certificates.crt","MYSQL_CACHE_MODE=0","REDIS_HOST=$(PROJECT_NAME)-".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_PASSWORD=".concat(i),"MAIL_ENABLED=false","MAIL_HOST=","MAIL_PORT=465","MAIL_USERNAME=","MAIL_PASSWORD=","MAIL_USE_TLS=true","ACCOUNT_MAX=100","ACCOUNT_MAX_PASSWORDS=10000","ACCOUNT_PREMIUM=-1","YUBI_CLOUD=https://api.yubico.com/wsapi/2.0/verify","YUBI_ID=67857","LIMITER_ENABLED=true","LIMITER_GET_INFO=-1","LIMITER_GET_STATS=-1","LIMITER_GET_TOKEN=3","LIMITER_GET_PASSWORDS=2","LIMITER_SAVE_PASSWORD=2","LIMITER_EDIT_PASSWORD=2","LIMITER_DELETE_PASSWORD=2","LIMITER_DELETE_PASSWORDS=10","LIMITER_CREATE_ACCOUNT=10","LIMITER_DELETE_ACCOUNT=10","LIMITER_IMPORT_PASSWORDS=10","LIMITER_FORGOT_USERNAME=60","LIMITER_ENABLE_2FA=10","LIMITER_DISABLE_2FA=10","LIMITER_ADD_YUBIKEY=10","LIMITER_REMOVE_YUBIKEY=10","LIMITER_UPGRADE_ACCOUNT=10","LIMITER_GET_REPORT=-1"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"passwordpusher",meta:{name:"Password Pusher",description:"Password Pusher is an open-source, self-hosted application designed to securely share passwords and sensitive information via unique, time-sensitive URLs. It eliminates the need to send sensitive credentials through insecure channels like email or messaging apps. The app is lightweight, easy to deploy, and prioritizes user privacy and security. Password Pusher allows for fine-grained control over link expiration, including the number of views or days before a link expires. It ensures that shared passwords are destroyed after expiration, adding an extra layer of security. The app can be deployed on various platforms such as Docker or Kubernetes, making it highly flexible and accessible for individuals and organizations alike.",instructions:null,changeLog:[{date:"2025-01-27",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 1.51"},{date:"2025-07-24",description:"Version bumped to 1.59"},{date:"2025-12-29",description:"Version bumped to 1.65"},{date:"2026-02-24",description:"Version bumped to 1.68"}],links:[{label:"Website",url:"https://pwpush.com"},{label:"Documentation",url:"https://github.com/pglombardo/PasswordPusher/wiki"},{label:"Github",url:"https://github.com/pglombardo/PasswordPusher"}
1],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"passwordpusher"},appServiceImage:{type:"string",title:"App Service Image",default:"pglombardo/pwpush:1.68"}}},benefits:[{title:"Secure Password Sharing",description:"Password Pusher ensures secure password sharing through self-destructing URLs. This eliminates the need to send passwords via insecure channels like email or chat, protecting sensitive credentials."},{title:"Time-Sensitive Links",description:"Links generated by Password Pusher can be set to expire after a specific number of views or days. This ensures that shared credentials are automatically destroyed after their intended use, enhancing security."},{title:"Easy Deployment",description:"Password Pusher is lightweight and easy to deploy on various platforms like Docker and Kubernetes. This makes it highly accessible for individuals and organizations to set up and use."}],features:[{title:"Customizable Expiration Controls",description:"Password Pusher provides fine-grained control over link expiration. You can specify the number of views or days after which the shared link will be destroyed, ensuring sensitive data is not accessible indefinitely."},{title:"Self-Hosted Privacy",description:"Password Pusher is self-hosted, ensuring that you have complete control over your data. This means that no third party has access to your shared credentials."},{title:"Lightweight and Fast",description:"The app is designed to be lightweight and fast, with minimal resource usage. It is easy to deploy and maintain, making it ideal for small teams or large organizations."},{title:"Flexible Integration",description:"Password Pusher supports integration into existing workflows through its API. This allows you to automate the process of password sharing and management."}],tags:["Security","Password Sharing","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"pasta",meta:{name:"Pasta",description:"PASTA (Plex Audio and Subtitle Track Automation) is a browser-based tool that connects directly to your Plex media server and lets you bulk-change audio and subtitle tracks across an entire TV series, a single season, or individual episodes. It solves the frustration of having to manually set preferred audio/subtitle tracks on every episode after adding a new show. The app runs entirely client-side \u2014 no backend processing, no user data sent to third-party servers. Users authenticate against their own Plex server using a Plex token or OAuth.",instructions:"After deployment open the app URL in your browser. Enter your Plex server URL (e.g. http://your-plex-ip:32400) and your Plex authentication token on the settings page, then browse your libraries to select a show. PASTA works fastest when the browser is on the same network as the Plex server.",changeLog:[{date:"2026-07-01",description:"first release"}],links:[{label:"Website",url:"https://www.pastatool.com"},{label:"GitHub",url:"https://github.com/cglatot/pasta"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pasta"},appServiceImage:{type:"string",title:"App Service Image",default:"cglatot/pasta:2.2.13"}}},benefits:[{title:"Bulk Track Management",description:"Change audio and subtitle tracks across hundreds of episodes at once instead of opening each file individually in Plex."},{title:"Client-Side Only",description:"All communication happens directly between the browser and your Plex server \u2014 nothing is routed through PASTA's server and no data is stored."},{title:"No Configuration Required",description:"No database, no config files, no API keys. Just point it at your Plex server and start managing tracks."}],features:[{title:"Series, Season, and Episode Views",description:"Switch tracks for an entire series in one click, or drill down to a specific season or individual episode."},{title:"Audio Track Selection",description:"Lists all audio tracks with codec, language, and channel information so you can pick the right dub or surround-sound track."},{title:"Subtitle Track Selection",description:"Browse all subtitle tracks including forced, SDH, and foreign language options, and set them as default across multiple episodes at once."},{title:"Plex OAuth Login",description:"Authenticate with your Plex account via OAuth or paste a Plex token directly \u2014 no additional credentials to manage."}],tags:["Media","Plex","Automation","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"pastefy",meta:{name:"Pastefy",description:"Pastefy is a feature-rich, open-source, self-hostable pastebin alternative to GitHub Gist or Pastebin. Share code snippets with friends or save them for yourself with syntax highlighting, file format previews, folder organization, OAuth2 authentication, API access, and powerful features for developers. Upload files via curl, integrate with VS Code, and enjoy extensive format support including Markdown, Mermaid, CSV, GeoJSON, and more.",instructions:null,changeLog:[{date:"2025-06-12",description:"First Release"},{date:"2025-12-29",description:"Version bumped to 7.1.5"},{date:"2026-05-05",description:"Version bumped to 7.2.1"}],links:[{label:"Website",url:"https://pastefy.app/"},{label:"Documentation",url:"https://github.com/interaapps/pastefy/wiki"},{label:"Github",url:"https://github.com/interaapps/pastefy"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pastefy"},appServiceImage:{type:"string",title:"App Service Image",default:"interaapps/pastefy:7.2.1"}}},benefits:[{title:"Feature-Rich Pastebin",description:"Comprehensive alternative to GitHub Gist and Pastebin with advanced features like folder organization, OAuth2 authentication, API access, and extensive file format support."},{title:"Developer-Friendly",description:"Upload files via curl, integrate with VS Code and Raycast, access RESTful API with SDKs for JavaScript/TypeScript, Java, and Go. Perfect for development workflows."},{title:"Extensive Format Support",description:"Preview support for Markdown, Mermaid diagrams, SVG, CSV, GeoJSON, Diff files, calendar files, regex patterns, and Asciinema recordings with syntax highlighting."}],features:[{title:"Rich Content Previews",description:"Support for previewing various file formats including Markdown, Mermaid diagrams, SVG graphics, CSV data, GeoJSON maps, calendar files, and Asciinema terminal recordings."},{title:"Authentication & Organization",description:"OAuth2 login with multiple providers (InteraApps, Google, GitHub, Discord, Twitch), folder organization, paste management, and the ability to like and fork pastes."},{title:"API & Integrations",description:"Comprehensive REST API with official SDKs for JavaScript/TypeScript, Java, and Go. Extensions for VS Code and Raycast, plus command-line upload support via curl."},{title:"Advanced Features",description:"Copy buttons, raw preview mode, paste forking, custom CORS settings, encryption support, and configurable login requirements for reading and creating pastes."}],tags:["Pastebin","Code Sharing","API","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["HTTP_SERVER_PORT=80","HTTP_SERVER_CORS=*","DATABASE_DRIVER=mysql","DATABASE_NAME=$(PROJECT_NAME)","DATABASE_USER=mariadb","DATABASE_PASSWORD=".concat(a),"DATABASE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DATABASE_PORT=3306","SERVER_NAME=
1https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"paymenter",meta:{name:"Paymenter",description:"Paymenter is a modern, open-source billing and client management system. It provides a seamless platform for handling payments, subscriptions, and client services with support for multiple payment gateways and automated billing processes.",instructions:'Connect the shell and run "php artisan app:init" to initialize the application, and paste your domain inside. Secondly, create an admin user on the same shell using "php artisan app:user:create".',changeLog:[{date:"2025-05-13",description:"First Release"},{date:"2025-07-24",description:"Update to 1.2.5"},{date:"2026-02-24",description:"Update to 1.4.7"}],links:[{label:"Website",url:"https://paymenter.org"},{label:"Documentation",url:"https://paymenter.org/docs/getting-started/introduction"},{label:"Github",url:"https://github.com/paymenter/paymenter"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"paymenter"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/paymenter/paymenter:v1.4.7"}}},benefits:[{title:"Modern Billing System",description:"A comprehensive solution for managing payments, subscriptions, and client services."},{title:"Multiple Payment Gateways",description:"Support for various payment providers to accommodate different business needs."},{title:"Open Source",description:"Fully open-source solution with active community support and regular updates."}],features:[{title:"Automated Billing",description:"Streamlined billing processes with automatic invoice generation and payment processing."},{title:"Client Management",description:"Complete client portal for managing services, invoices, and support tickets."},{title:"Redis Integration",description:"Uses Redis for efficient caching and session management."}],tags:["Billing","Payment","Client Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-mysql"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["DB_PASSWORD=".concat(a),"APP_ENV=production","CACHE_STORE=redis","SESSION_DRIVER=redis","QUEUE_CONNECTION=redis","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PASSWORD=".concat(i),"DB_CONNECTION=mariadb","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"DB_PORT=3306","DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mariadb"].join("\n"),mounts:[{type:"volume",name:"app-var",mountPath:"/app/var"},{type:"volume",name:"app-logs",mountPath:"/app/storage/logs"},{type:"volume",name:"app-public",mountPath:"/app/storage/public"}]}}),{services:t}}},{slug:"pdfding",meta:{name:"PdfDing",description:"PdfDing is a self-hosted PDF management and processing application that provides a comprehensive solution for handling PDF documents. It offers features for viewing, organizing, and managing PDF files with a clean web interface. PdfDing supports various PDF operations including viewing, searching, and organizing your PDF collection in a centralized location.",instructions:null,changeLog:[{date:"2025-09-18",description:"Template Release"},{date:"2025-12-29",description:"Version bumped to v1.4.1"},{date:"2026-02-24",description:"Version bumped to v1.5.1"},{date:"2026-05-05",description:"Version bumped to v1.7.2"}],links:[{label:"Github",url:"https://github.com/mrmn2/PdfDing"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pdfding"},appServiceImage:{type:"string",title:"App Service Image",default:"mrmn/pdfding:v1.7.2"}}},benefits:[{title:"PDF Management",description:"Centralized PDF document management with viewing, organizing, and searching capabilities for your PDF collection."},{title:"Self-Hosted Control",description:"Keep your PDF documents completely private and secure on your own server with full control over your document library."},{title:"Clean Interface",description:"Modern web interface with customizable themes and colors for a personalized document management experience."}],features:[{title:"PDF Viewing",description:"Built-in PDF viewer with support for various PDF formats and high-quality document rendering."},{title:"Document Organization",description:"Organize and categorize your PDF documents with folder structures and metadata management."},{title:"Search Functionality",description:"Search through your PDF collection with text-based search capabilities and metadata filtering."},{title:"Theme Customization",description:"Customizable themes and colors including dark and light modes with various color schemes."},{title:"Secure Access",description:"Secure document access with configurable cookie settings and CSRF protection for production deployments."},{title:"Media Storage",description:"Persistent storage for PDF documents and media files with reliable data persistence."},{title:"SQLite Database",description:"Lightweight SQLite database for storing document metadata, user preferences, and application state."}],tags:["PDF Management","Document Viewer","Self-Hosted","Web Interface","SQLite","File Management","Document Organization"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DEFAULT_THEME=dark","DEFAULT_THEME_COLOR=blue","SECRET_KEY=".concat(a),"HOST_NAME=$(PRIMARY_DOMAIN)","CSRF_COOKIE_SECURE=FALSE","SESSION_COOKIE_SECURE=FALSE","ALLOWED_HOSTS=$(PRIMARY_DOMAIN)"].join("\n"),mounts:[{type:"volume",name:"sqlite-data",mountPath:"/home/nonroot/pdfding/db"},{type:"volume",name:"media",mountPath:"/home/nonroot/pdfding/media"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),{services:t}}},{slug:"peertube",meta:{name:"PeerTube",description:"PeerTube is a revolutionary video sharing tool developed by Framasoft, a French non-profit organization. It offers an alternative to mainstream video platforms, allowing you to establish your own video platform with complete independence. Unlike other platforms, PeerTube doesn't rely on opaque algorithms or obscure moderation policies. The platforms you visit are built, managed, and moderated by their owners. PeerTube also enables platforms to connect with each other, forming a large network of autonomous yet interconnected platforms. Importantly, PeerTube doesn't depend on advertising and doesn't track your activities. It hosts a wide variety of content, with over 600,000 videos across 1,000 platforms in the PeerTube network. PeerTube is free, open-source, and created for non-commercial purposes, ensuring that you are treated as a person, not a product. It is a tool that truly belongs to you and respects your fundamental freedoms as a user.",instructions:null,changeLog:[{date:"2023-03-24",description:"First Release"},{date:"2025-02-28",description:"Version bumped to v7.0.1-bookworm"},{date:"2025-12-29",description:"Version bumped to v7.3.0-bookworm"},{date:"2026-05-05",description:"Version bumped to v8.1.5"}],links:[{label:"Website",url:"https://joinpeertube.org/"},{label:"Documentation",url:"https://docs.joinpeertube.org/"},{label:"Github",url:"https://github.com/Chocobozzz/PeerTube"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["peertubeAdminMail","appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{peertubeAdminMail:{type:"string",title:"Admin Mail"},peertubeSmtpHostname:{type:"string",title:"SMTP Hostname"},peertubeSmtpPort:{type:"number",title:"SMTP Port",default:25},peertubeSmtpUsername:{type:"string",title:"SMTP Username"},peertubeSmtpPassword:{type:"string",title:"SMTP Password"},peertubeSmtpFrom:{type:"string",title:"SMTP From",default:"[email protected]"},peertubeSmtpTls:{type:"boolean",title:"SMTP TLS",default:!1},peertubeSmtpDisableStarttls:{type:"boolean",title:"SMTP Disable STARTTLS",default:!1},peertubeSignupEnabled:{type:"boolean",title:"Signup Enabled",default:!0},peertubeTranscodingEnabled:{type:"boolean",title:"Transcoding Enabled",default:!0},peertubeContactFormEnabled:{type:"boolean",title:"Contact Form Enabled",default:!0}
1,appServiceName:{type:"string",title:"App Service Name",default:"peertube"},appServiceImage:{type:"string",title:"App Service Image",default:"chocobozzz/peertube:v8.1.5"},databaseServiceName:{type:"string",title:"Database Service Name",default:"peertube-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"peertube-redis"}}},benefits:[{title:"Independence",description:"PeerTube gives you the freedom to create your own video platform, free from opaque algorithms or obscure moderation policies. The platforms you visit are built, managed, and moderated by their owners, ensuring complete independence."},{title:"Interconnectivity",description:"PeerTube allows platforms to be connected to each other, creating a large network of platforms that are both autonomous and interconnected. This ensures a wide reach and diverse content."},{title:"Privacy",description:"PeerTube does not depend on any advertising and does not track you, ensuring your privacy is respected."},{title:"Ethical and Open Source",description:"PeerTube is free, open-source, and created for non-commercial purposes. It is an ethical and open source digital common that belongs to you."}],features:[{title:"Video Sharing",description:"PeerTube is a tool for sharing online videos. It allows you to publish your own videos and browse content from a network of over 1,000 platforms."},{title:"Platform Creation",description:"With PeerTube, you can create your own video platform, managed and moderated by you. This gives you complete control over your content and its moderation."},{title:"Interconnected Platforms",description:"PeerTube allows platforms to be connected to each other, creating a network of platforms that are both autonomous and interconnected."},{title:"Privacy Focused",description:"PeerTube does not depend on any advertising and does not track you. Your privacy is respected and protected."},{title:"Open Source",description:"PeerTube is free and open-source. You can help improve PeerTube with your ideas, suggestions, or by modifying the source code yourself."}],tags:["Media","Video","Social Networking"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=["PEERTUBE_WEBSERVER_HOSTNAME=$(PRIMARY_DOMAIN)","PEERTUBE_SECRET=".concat(y(32)),"PEERTUBE_DB_NAME=$(PROJECT_NAME)","PEERTUBE_DB_HOSTNAME=$(PROJECT_NAME)_".concat(e.databaseServiceName),"PEERTUBE_DB_USERNAME=postgres","PEERTUBE_DB_PASSWORD=".concat(a),"PEERTUBE_REDIS_HOSTNAME=$(PROJECT_NAME)_".concat(e.redisServiceName),"PEERTUBE_REDIS_AUTH=".concat(i),"PEERTUBE_ADMIN_EMAIL=".concat(e.peertubeAdminMail),"PEERTUBE_SIGNUP_ENABLED=".concat(e.peertubeSignupEnabled),"PEERTUBE_TRANSCODING_ENABLED=".concat(e.peertubeTranscodingEnabled),"PEERTUBE_CONTACT_FORM_ENABLED=".concat(e.peertubeContactFormEnabled)];return e.peertubeSmtpHostname&&o.push("PEERTUBE_SMTP_HOSTNAME=".concat(e.peertubeSmtpHostname),"PEERTUBE_SMTP_PORT=".concat(e.peertubeSmtpPort||""),"PEERTUBE_SMTP_USERNAME=".concat(e.peertubeSmtpUsername||""),"PEERTUBE_SMTP_PASSWORD=".concat(e.peertubeSmtpPassword||""),"PEERTUBE_SMTP_FROM=".concat(e.peertubeSmtpFrom||""),"PEERTUBE_SMTP_TLS=".concat(e.peertubeSmtpTls),"PEERTUBE_SMTP_DISABLE_STARTTLS=".concat(e.peertubeSmtpDisableStarttls)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],env:o.join("\n"),mounts:[{type:"volume",name:"assets",mountPath:"/app/client/dist"},{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"config",mountPath:"/config"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"penpot",meta:{name:"Penpot",description:"Penpot is an open-source, design and prototyping platform that empowers teams to collaborate and bring creative ideas to life. Unlike other design tools, Penpot is entirely web-based and runs on open standards, allowing teams to access it from anywhere and on any platform. Trusted by designers and developers worldwide, Penpot is known for its flexibility and integration within diverse workflows. It offers real-time collaboration, making it easy for team members to co-create, review, and provide feedback instantly. The app supports complex design requirements, from vector editing to responsive design, and prioritizes user control over projects with extensive customization options. Penpot is built by a team dedicated to privacy and security, with a strong commitment to open-source principles. It ensures that designers and developers alike have the freedom to innovate without restrictions, providing a transparent, community-driven alternative to proprietary tools.",instructions:"In order to configure email invitations for team members, please configure the environment variables provided in backend configuration.",changeLog:[{date:"2024-11-08",description:"Template Release"},{date:"2025-02-28",description:"Version bumped to 2.4.3"},{date:"2025-07-24",description:"Version bumped to 2.8.0"},{date:"2025-12-29",description:"Version bumped to 2.12.1"},{date:"2026-02-24",description:"Version bumped to 2.13.3"},{date:"2026-05-05",description:"Version bumped to 2.14.4"}],links:[{label:"Website",url:"https://penpot.app"},{label:"Documentation",url:"https://help.penpot.app"},{label:"Github",url:"https://github.com/penpot"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","appBackendServiceImage","appExporterServiceImage","redisServiceName","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"penpot"},appServiceImage:{type:"string",title:"App Service Image",default:"penpotapp/frontend:2.14.4"},appBackendServiceImage:{type:"string",title:"App Backend Service Image",default:"penpotapp/backend:2.14.4"},appExporterServiceImage:{type:"string",title:"App Exporter Service Image",default:"penpotapp/exporter:2.14.4"},redisServiceName:{type:"string",title:"Redis Service Name",default:"penpot-redis"},databaseServiceName:{type:"string",title:"Database Service Name",default:"penpot-db"}}},benefits:[{title:"Open Source and Transparent",description:"Penpot is fully open source, making it a transparent tool for design and prototyping. As an open-source project, it invites the community to contribute, improve, and verify its reliability and security."},{title:"Collaboration-First Design",description:"Penpot is built from the ground up for teamwork, allowing designers, developers, and stakeholders to collaborate in real-time. It\u2019s ideal for organizations and teams that require a seamless design process with effective communication and instant feedback."},{title:"Cross-Platform Accessibility",description:"Penpot runs on web-based, open standards, making it accessible across all platforms. It ensures that designers and developers can access their work from any device without being tied to proprietary software or specific operating systems."}],features:[{title:"Real-Time Collaboration and Feedback",description:"Penpot enables real-time collaboration, allowing team members to co-create, review, and provide feedback on designs instantly. This feature streamlines the workflow and enhances team productivity."},{title:"Responsive and Flexible Design Tools",description:"Penpot offers advanced tools for vector editing, responsive design, and complex layouts, giving designers the flexibility they need to create beautiful and functional designs."},{title:"Integration with Developer Workflows",description:"Penpot is designed to integrate seamlessly with developer workflows, making hand-offs easier and faster. It bridges the gap between designers and developers, helping teams work together more effectively."},{title:"Community-Driven Development",description:"As a community-driven project, Penpot grows through user feedback and contributions. This means new features, improvements, and bug fixes are continuously shaped by the needs of its users."}],tags:["Design","Prototyping","Collaboration","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-frontend"),env:["PENPOT_BACKEND_URI=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-backend:6060"),"PENPOT_EXPORTER_URI=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-exporter:6061")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"assets",mountPath:"/opt/data/assets"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-backend"),env:["PENPOT_FLAGS=enable-registration enable-login-with-password disable-email-verification enable-smtp enable-prepl-server","PENPOT_PUBLIC_URI=https://$(PRIMARY_DOMAIN)","PENPOT_DATABASE_URI=postgresql://$(PROJECT_NAME)_".concat(e.databaseServiceName,"/$(PROJECT_NAME)"),"PENPOT_DATABASE_USERNAME=postgres","PENPOT_DATABASE_PASSWORD=".concat(a),"PENPOT_REDIS_URI=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.redisServiceName,"/0"),"PENPOT_ASSETS_STORAGE_BACKEND=assets-fs","PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets","PENPOT_TELEMETRY_ENABLED=true","[email protected]","[email protected]","PENPOT_SMTP_HOST=penpot-mailcatch","PENPOT_SMTP_PORT=1025","PENPOT_SMTP_USERNAME=","PENPOT_SMTP_PASSWORD=","PENPOT_SMTP_TLS=false","PENPOT_SMTP_SSL=false"].join("\n"),source:{type:"image",image:e.appBackendServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"-frontend/volumes/assets"),mountPath:"/opt/data/assets"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-exporter"),env:["PENPOT_PUBLIC_URI=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-frontend"),"PENPOT_REDIS_URI=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.redisServiceName,"/0")].join("\n"),source:{type:"image",image:e.appExporterServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"peppermint",meta:{name:"Peppermint",description:"Peppermint is a cutting-edge, open-source issue management and helpdesk platform designed to rival Jira and Zendesk while remaining cost-effective and highly customizable. Built with the user in mind, Peppermint empowers teams to manage support tickets, customer requests, and projects with efficie
1ncy and ease.",instructions:"Default credentials are; email; [email protected], password; 1234",changeLog:[{date:"2024-12-25",description:"Template Release"}],links:[{label:"Website",url:"https://peppermint.sh/"},{label:"Github",url:"https://github.com/Peppermint-Lab/peppermint"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"peppermint"},appServiceImage:{type:"string",title:"App Service Image",default:"pepperlabs/peppermint:latest"}}},bbenefits:[{title:"Efficient Issue Management",description:"Peppermint simplifies the process of managing tickets and customer support requests, making it easier for teams to stay organized and productive."},{title:"Open-Source and Self-Hosted",description:"Retain full control of your data with a self-hosted platform, ensuring security, privacy, and flexibility for your organization."},{title:"Cost-Effective Solution",description:"Benefit from a feature-rich, open-source platform designed to offer a budget-friendly alternative to traditional helpdesk solutions."}],features:[{title:"Mailbox Integration",description:"Automatically convert emails into support tickets using SMTP/IMAP for streamlined ticket management."},{title:"Third-Party Integrations",description:"Connect Peppermint to external tools and services through webhooks and integrations with providers like email."},{title:"Analytics and Reporting",description:"Gain insights into ticket performance, customer trends, and team productivity with built-in analytics and reporting tools."},{title:"OIDC Authentication",description:"Securely authenticate users by connecting to your existing identity provider through OIDC."},{title:"Lightweight and Scalable",description:"Designed to run efficiently on low-end hardware while being scalable for larger deployments using Docker and Kubernetes."}],tags:["Issue Management","Helpdesk","Open-Source","Self-Hosted","Analytics"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_USERNAME=postgres","DB_PASSWORD=".concat(a),"DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"SECRET=peppermint4life"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:3e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"pgadmin",meta:{name:"Pgadmin",description:"PGAdmin is a popular open-source administration and management tool for PostgreSQL databases. It provides a web-based interface to interact with PostgreSQL databases, allowing users to create, modify, and manage databases, tables, roles, and queries with ease. PGAdmin supports advanced query execution, database performance analysis, and extensive user management capabilities. With a modern and intuitive UI, it is designed for database administrators, developers, and analysts to efficiently work with PostgreSQL databases. Additional features include SQL query editor, ERD diagrams, scheduled backups, and monitoring tools.",instructions:null,changeLog:[{date:"2025-02-25",description:"first release"},{date:"2025-07-24",description:"Update to 9.5.0"},{date:"2025-12-29",description:"Version bumped to 9.11.0"},{date:"2026-02-24",description:"Version bumped to 9.12.0"},{date:"2026-05-05",description:"Version bumped to 9.14"}],links:[{label:"Documentation",url:"https://www.pgadmin.org/docs/"},{label:"Github",url:"https://github.com/pgadmin-org/pgadmin4"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","defaultEmail","defaultPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pgadmin"},appServiceImage:{type:"string",title:"App Service Image",default:"dpage/pgadmin4:9.14"},defaultEmail:{type:"string",title:"Default Email",default:"[email protected]"},defaultPassword:{type:"string",title:"Default Password",default:"password"}}},benefits:[{title:"Web-Based Database Administration",description:"PGAdmin provides a powerful web-based interface for managing PostgreSQL databases, making it accessible from anywhere without needing a desktop client installation."},{title:"Advanced Query Execution",description:"The built-in SQL editor allows users to write, execute, and debug queries efficiently with syntax highlighting, autocompletion, and query history."},{title:"User and Role Management",description:"PGAdmin enables administrators to manage users, roles, and permissions effectively, ensuring secure access control over the database."}],features:[{title:"Query Tool",description:"PGAdmin includes an advanced SQL query tool that supports syntax highlighting, query formatting, and execution plan visualization."},{title:"Database Designer (ERD)",description:"This feature allows users to visualize database schema relationships with an entity-relationship diagram (ERD) builder."},{title:"Backup and Restore",description:"PGAdmin provides tools to schedule and perform database backups and restorations, ensuring data safety and recovery options."},{title:"Server Monitoring",description:"Users can monitor database performance and resource usage through PGAdmin's built-in dashboard, helping identify slow queries and bottlenecks."},{title:"Multi-Database Support",description:"PGAdmin supports managing multiple PostgreSQL servers from a single interface, making it ideal for large-scale database environments."}],tags:["Database Management","PostgreSQL","Web UI","Administration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PGADMIN_DEFAULT_EMAIL=".concat(e.defaultEmail),"PGADMIN_DEFAULT_PASSWORD=".concat(e.defaultPassword)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/lib/pgadmin"}]}}),{services:t}}},{slug:"pgbackweb",meta:{name:"PgBackWeb",description:"PgBackWeb is a comprehensive web-based backup solution for PostgreSQL databases. It provides an intuitive interface to manage, schedule, and monitor PostgreSQL backups with support for multiple backup destinations including local storage and S3-compatible object storage. The application allows you to configure automated backup schedules, manage retention policies, and restore databases through a user-friendly web interface. PgBackWeb ensures your PostgreSQL databases are safely backed up with encryption support, making it an essential tool for database administrators who need reliable backup management without complex command-line operations. It supports multiple PostgreSQL instances and provides detailed backup logs and notifications.",instructions:null,changeLog:[{date:"2025-10-22",description:"Initial Template Release"}],links:[{label:"GitHub",url:"https://github.com/eduardolat/pgbackweb"},{label:"Documentation",url:"https://github.com/eduardolat/pgbackweb#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pgbackweb"},appServiceImage:{type:"string",title:"App Service Image",default:"eduardolat/pgbackweb:0.5.1",description:"PgBackWeb Docker image"},connectionString:{type:"string",title:"Connection String",description:"The connection string to the PostgreSQL database"}}},benefits:[{title:"Web-Based Management",description:"Manage all your PostgreSQL backups through an intuitive web interface without needing to write complex scripts or use command-line tools."},{title:"Automated Backup Scheduling",description:"Configure automated backup schedules with flexible timing options and retention policies to ensure your databases are always protected."},{title:"Multiple Storage Options",description:"Store backups locally or in S3-compatible object storage services like AWS S3, MinIO, or DigitalOcean Spaces for offsite backup redundancy."},{title:"Encryption Support",description:"Protect sensitive data with built-in encryption capabilities, ensuring your backup data remains secure both in transit and at rest."}],features:[{title:"Backup Scheduling",description:"Create flexible backup schedules with cron-like expressions to automate database backups at any frequency that suits your needs."},{title:"Multiple Database Support",description:"Manage backups for multiple PostgreSQL databases from a single interface, perfect for administrators managing several database instances."},{title:"Retention Policies",description:"Configure automatic backup retention policies to manage storage space efficiently by removing old backups based on your requirements."},{title:"Restore Functionality",description:"Easily restore databases from backups through the web interface with support for point-in-time recovery and selective restoration."},{title:"S3 Integration",description:"Native support for S3-compatible storage backends allows you to store backups in cloud object storage for disaster recovery scenarios."},{title:"Backup Monitoring",description:"Monitor backup job status, view detailed logs, and receive notifications about backup success or failures to ensure data protection."},{title:"Local Storage Support",description:"Store backups on local volumes for quick access and recovery, ideal for development environments or air-gapped deployments."},{title:"User-Friendly Interface",description:"Clean, modern web interface makes backup management accessible to users of all technical skill levels without sacrificing advanced features."}],tags:["Database","Backup","PostgreSQL","Data Management","Database Tools","Self-Hosted","Disaster Recovery","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PBW_ENCRYPTION_KEY=".concat(a),"PBW_POSTGRES_CONN_STRING=".concat(e.connectionString)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8085}],mounts:[{type:"volume",name:"backups",mountPath:"/backups"}]}}),{services:t}}},{slug:"pghero",meta:{name:"PgHero",description:"PgHero is a powerful performance dashboard for PostgreSQL databases that provides real-time insights into query performance, slow queries, index usage, and database health metrics. It helps database administrators and developers optimize their PostgreSQL databases by identifying performance bottlenecks, unused indexes, and query patterns. The dashboard features an intuitive web interface with detailed analytics and recommendations for database optimization.",instructions:null,changeLog:[{date:"2025-06-25",description:"Initial Template Release"},{date:"2026-05-05",description:"Version bumped to v3.8.0"}],links:[{label:"GitHub",url:"https://github.com/ankane/pghero"},{label:"Documentation",url:"https://github.com/ankane/pghero#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pghero"},appServiceImage:{type:"string",title:"App Service Image",default:"ankane/pghero:v3.8.0",description:"PgHero Docker image"}}},benefits:[{title:"Performance Monitoring",description:"Monitor PostgreSQL database performance in real-time with detailed metrics on query execution times, database connections, and resource usage."},{title:"Query Analysis",description:"Identify slow queries, analyze query patterns, and get recommendations for optimizing database performance and query efficiency."},{title:"Index Optimization",description:"Discover unused indexes, missing indexes, and get suggestions for index optimization to improve database performance."},{title:"Easy Setup",description:"Simple deployment with automatic PostgreSQL database provisioning and seamless integration with existing database infrastructure."}],features:[{title:"Real-time Dashboard",description:"Comprehensive web-based dashboard showing live database metrics, performance graphs, and health indicators."},{title:"Slow Query Detection",description:"Automatically detect and analyze slow queries with detailed execution plans and optimization suggestions."},{title:"Index Monitoring",description:"Monitor index usage, detect unused indexes, and identify missing indexes that could improve query performance."},{title:"Connection Monitoring",description:"Track database connections, connection pools, and identify potential connection bottlenecks or issues."}],tags:["PostgreSQL","Database","Monitoring","Performance","Analytics","Dashboard"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"pgvector",meta:{name:"pgvector",description:"pgvector is an open-source app designed to facilitate vector similarity search for Postgres. It allows you to store all your application data in one place, supporting both exact and approximate nearest neighbor search. The app is capable of handling L2 distance, inner product, and cosine distance, making it versatile for various data analysis needs. It is compatible with any language that has a Postgres client. The app also boasts of ACID compliance, point-in-time recovery, JOINs, and all the other great features of Postgres. With pgvector, you can create a new table with a vector column or add a vector column to an existing table, insert vectors, upsert vectors, update vectors, and delete vectors. It also allows you to get the nearest neighbors to a vector or a row, and get rows within a certain distance. The app also supports indexing for improved search performance. It is a powerful tool for managing and analyzing your data in a Postgres environment.",instructions:null,changeLog:[{date:"2023-06-30",description:"first release"}],links:[{label:"Github",url:"https://github.com/pgvector/pgvector"}],contributors:[{name:"AlexSerban",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["serviceName","serviceImage"],properties:{serviceName:{type:"string",title:"Service Name"},serviceImage:{type:"string",title:"Service Image",default:"ankane/pgvector:v0.5.1"}}},benefits:[{title:"Unified Data Storage",description:"pgvector allows you to store all of your application data in one place, eliminating the need for multiple databases or storage solutions."},{title:"Advanced Search Capabilities",description:"The app supports exact and approximate nearest neighbor search, enabling you to find the most relevant data quickly and efficiently."},{title:"Versatile Distance Measures",description:"pgvector supports various distance measures including L2 distance, inner product, and cosine distance, providing flexibility in how you search and compare data."},{title:"ACID Compliance and Recovery Features",description:"With ACID compliance and point-in-time recovery, pgvector ensures the integrity and reliability of your data."},{title:"Integration with Postgres",description:"pgvector integrates seamlessly with Postgres, allowing you to leverage all of the features of this popular database system."}],features:[{title:"Vector Similarity Search",description:"pgvector allows you to perform vector similarity searches in Postgres, making it easier to find and retrieve relevant data."},{title:"Data Manipulation",description:"You can easily create new tables with vector columns, add vector columns to existing tables, insert vectors, update vectors, and delete vectors."},{title:"Querying",description:"pgvector provides a variety of querying options, including getting the nearest neighbors to a vector or a row, and getting rows within a certain distance."},{title:"Indexing",description:"pgvector supports exact and approximate nearest neighbor search indexing, allowing you to optimize your search performance."},{title:"Multi-language Support",description:"pgvector can be used from any language with a Postgres client, offering flexibility in how you interact with your data."}],tags:["Databases","Data Science"],logo:null,screenshots:[]},generate:function(e){var t=[];return t.push({type:"postgres",data:{serviceName:e.serviceName,image:e.serviceImage}}),{services:t}}},{slug:"pgweb",meta:{name:"pgweb",description:"Pgweb is a simple, web-based, cross-platform PostgreSQL database explorer. It is designed to work seamlessly on Mac, Linux, and Windows machines. The app is distributed as a single binary with zero dependencies, making it incredibly easy to use. It supports PostgreSQL 9.1 and later versions, and allows for multiple database sessions. With Pgweb, you can execute and analyze custom SQL queries, export table and query data to CSV/JSON/XML, and keep track of your query history. The app also supports native SSH tunnels and server bookmarks for easy navigation.",instructions:null,changeLog:[{date:"2023-3-15",description:"first release"},{date:"2025-02-28",description:"Version bumped to 0.16.2"},{date:"2025-12-29",description:"Version bumped to 0.17.0"}],links:[{label:"Documentation",url:"https://github.com/sosedoff/pgweb/wiki"},{label:"Github",url:"https://github.com/sosedoff/pgweb"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pgweb"},appServiceImage:{type:"string",title:"App Service Image",default:"sosedoff/pgweb:0.17.0"}}},benefits:[{title:"Cross-Platform Compatibility",description:"Pgweb is a web-based PostgreSQL database explorer that works seamlessly across Mac, Linux, and Windows machines, making it a versatile tool for database management."},{title:"Zero Dependencies",description:"The app is distributed as a simple binary with zero dependencies, making it extremely easy to use."},{title:"Supports Multiple Database Sessions",description:"Pgweb supports multiple database sessions, allowing you to manage and interact with multiple databases simultaneously."}],features:[{title:"Native SSH Tunnels",description:"Pgweb supports native SSH tunnels, providing secure and encrypted channels for database communication."},{title:"Custom SQL Queries",description:"With Pgweb, you can execute and analyze custom SQL queries, providing you with the flexibility to interact with your database as needed."},{title:"Data Export",description:"Pgweb allows you to export table and query data to CSV, JSON, and XML formats, making data migration and backup a breeze."},{title:"Query History",description:"The app keeps a history of your queries, allowing you to revisit and analyze past database interactions."},{title:"Server Bookmarks",description:"Pgweb allows you to bookmark your servers for quick and easy access in the future."}],tags:["Databases"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}]}}),{services:t}}},{slug:"photoprism",meta:{name:"PhotoPrism",description:"PhotoPrism is an AI-powered photos app designed for the decentralized web. It uses the latest technologies to automatically tag and find pictures without interrupting your workflow. You can run it at home, on a private server, or in the cloud. PhotoPrism allows you to browse all your photos and videos without worrying about RAW conversion, duplicates, or video formats. It offers powerful search filters to easily find specific pictures and includes high-resolution world maps to relive your favorite trips. The app supports playing Live Photos by hovering over them in albums and search results, recognizes the faces of your family and friends, and automatically classifies pictures based on their content and location. PhotoPrism is committed to user and privacy-friendly solutions, ensuring your data is never shared without your consent.",instructions:null,changeLog:[{date:"2023-03-16",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 250228"},{date:"2025-12-29",description:"Version bumped to 251130"}],links:[{label:"Website",url:"https://photoprism.app"},{label:"Demo",url:"https://try.photoprism.app"},{label:"Github",url:"https://github.com/photoprism/photoprism"},{label:"Docker",url:"https://hub.docker.com/r/photoprism/photoprism"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","photoprismAdminUser","photoprismAdminPassword","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"photoprism"},appServiceImage:{type:"string",title:"App Service Image",default:"photoprism/photoprism:251130"},photoprismAdminUser:{type:"string",title:"Username"},photoprismAdminPassword:{type:"string",title:"Password"},databaseType:{type:"string",title:"Database Type",default:"mariadb",oneOf:[{enum:["mariadb"],title:"MariaDB"},{enum:["sqlite"],title:"SQLite"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"photoprism-db"}}},benefits:[{title:"AI-Powered Photos App",description:"PhotoPrism is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way."},{title:"Privacy-Friendly",description:"PhotoPrism was built from the ground up to run wherever you need it, without compromising freedom, privacy, or functionality. Your data will never be shared with Google, Amazon, Microsoft or Apple unless you intentionally upload files to one of their services."},{title:"User-Friendly",description:"PhotoPrism provides an intuitive user interface that ensures millisecond response times, documents load instantly, search is speedy and navigating the UI is snappy."}],features:[{title:"Multimedia Browsing",description:"Browse all your photos and videos without worrying about RAW conversion, duplicates or video formats."},{title:"Powerful Search",description:"Easily find specific pictures using powerful search filters."},{title:"High-Resolution World Maps",description:"Includes four high-resolution world maps to bring back the memories of your favorite trips."},{title:"Live Photos",description:"Play Live Photos by hovering over them in albums and search results."},{title:"Face Recognition",description:"Recognizes the faces of your family and friends."},{title:"Automatic Classification",description:"Automatic classification of pictures based on their content and location."}],tags:["Media","Gallery","Productivity"],logo:"logo.svg",screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a=v(),i=["PHOTOPRISM_ADMIN_USER=".concat(e.photoprismAdminUser),"PHOTOPRISM_ADMIN_PASSWORD=".concat(e.photoprismAdminPassword)];return"mariadb"===e.databaseType&&(i.push("PHOTOPRISM_DATABASE_DRIVER=mysql","PHOTOPRISM_DATABASE_NAME=$(PROJECT_NAME)","PHOTOPRISM_DATABASE_SERVER=$(PROJECT_NAME)_".concat(e.databaseServiceName,":3306"),"PHOTOPRISM_DATABASE_USER=".concat(e.databaseType),"PHOTOPRISM_DATABASE_PASSWORD=".concat(a)),t.push({type:e.databaseType,data:{serviceName:e.databaseServiceName,password:a}})),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:2342}],env:i.join("\n"),mounts:[{type:"volume",name:"originals",mountPath:"/photoprism/originals"},{type:"volume",name:"storage",mountPath:"/photoprism/storage"}]}}),{services:t}}},{slug:"photoview",meta:{name:"Photoview",description:"Photoview is a user-friendly photo gallery designed for photographers. It allows you to easily navigate through directories filled with high-resolution photos and videos. The app syncs with your file system, automatically organizing your media based on the file structure. Directories become albums filled with the photos and videos found within them. Photoview also automatically rescans for new media, keeping your gallery updated. Multiple users can be configured, each with their own directory of photos and videos, and each user's media is kept private with a username and password. Albums and individual photos or videos can be shared through public or password-protected links. Photoview also analyzes photos for EXIF metadata, displaying this information next to the photo and using it to present photos on a map. The app also has a mobile version for iOS, allowing you to quickly access your media library from your phone. Photoview supports RAW images, automatically extracts metadata from images and videos, and optimizes videos for the web. It also generates thumbnails automatically and ensures that your media is secure and private.",instructions:"After deployment, you need to mount your photos directory to the /photos path.\nThis can be done using bind mounts in Easypanel's advanced settings.\nOn first access, you will be prompted to create an admin user and configure\nthe photo source path (use /photos as the path).\n",changeLog:[{date:"2023-03-16",description:"First Release"},{date:"2025-07-24",description:"Version bumped to sha-84c642c"},{date:"2025-12-05",description:"Updated to photoview/photoview:2 with new volume paths"},{date:"2026-05-08",description:"Version bumped to 2.4.0"}],links:[{label:"Website",url:"https://photoview.github.io/"},{label:"Github",url:"https://github.com/photoview/photoview"},{label:"Demo",url:"https://photos.qpqp.dk/"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"photoview"},appServiceImage:{type:"string",title:"App Service Image",default:"photoview/photoview:2.4.0"},databaseType:{type:"string",title:"Database Type",default:"mariadb",oneOf:[{enum:["mariadb"],title:"MariaDB"},{enum:["mysql"],title:"MySQL"},{enum:["postgres"],title:"PostgreSQL"},{enum:["sqlite"],title:"SQLite"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"photoview-db"},mapboxToken:{type:"string",title:"Mapbox Token (Optional)",default:""}}},benefits:[{title:"Easy Media Organization",description:"Photoview allows you to easily organize your media files. It automatically scans your file system for media and organizes them based on the file structure. Directories become albums populated with the photos and videos found inside."},{title:"User Privacy",description:"Photoview ensures user privacy by allowing each user to have their own directory of photos and videos. Each user is configured with a username and password, keeping their media private."},{title:"Quick Access",description:"With the official iOS app, you can quickly access your entire media library from your phone. Navigate, share, and download photos and videos directly within the app."},{title:"Secure and Private",description:"Photoview ensures the security of your media resources with a cookie-token, properly hashed passwords, and a strict CORS policy. Your media is valuable, and with Photoview, nothing leaves your server."}],features:[{title:"File System Sync",description:"Photoview syncs with your file system, automatically scanning for new media and adding it to keep your gallery updated. This gives you full control to organize your media how you want."},{title:"User and Sharing",description:"Photoview allows multiple users, each with their own directory of photos and videos. Albums and individual photos or videos can easily be shared by generating a public or password-protected link."},{title:"Maps Integration",description:"When photos are analyzed for EXIF metadata, this information is displayed next to the photo. If the photo includes GPS coordinates, Photoview presents the photos on a map using Mapbox integration."},{title:"Mobile App",description:"Photoview has an official iOS app that allows you to quickly access your entire media library from your phone. Navigate, share, and download photos and videos directly within the app."},{title:"RAW Support",description:"Photoview uses Darktable under the hood to convert RAW images, supporting many common formats."},{title:"EXIF Metadata",description:"Photoview automatically extracts the metadata of images and videos and shows it in the sidebar. It's also used to present images on a map."},{title:"Video Support",description:"Photoview uses FFmpeg under the hood to convert videos and optimize them for the web with hardware acceleration support."},{title:"Multi-Database Support",description:"Choose between MariaDB, MySQL, PostgreSQL, or SQLite as your database backend based on your needs and infrastructure."}],tags:["Gallery","Media","Photography","Photos","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=[];switch(e.databaseType){case"sqlite":i.push("PHOTOVIEW_DATABASE_DRIVER=sqlite"),i.push("PHOTOVIEW_SQLITE_PATH=/home/photoview/database/photoview.db");break;case"postgres":i.push("PHOTOVIEW_DATABASE_DRIVER=postgres","PHOTOVIEW_POSTGRES_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)")),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}});break;default:i.push("PHOTOVIEW_DATABASE_DRIVER=mysql","PHOTOVIEW_MYSQL_URL=".concat(e.databaseServiceName,":").concat(a,"@tcp($(PROJECT_NAME)_").concat(e.databaseServiceName,")/$(PROJECT_NAME)")),t.push({type:e.databaseType,data:{serviceName:e.databaseServiceName,password:a}})}return i.push("PHOTOVIEW_LISTEN_IP=0.0.0.0"),e.mapboxToken&&i.push("MAPBOX_TOKEN=".concat(e.mapboxToken)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:i.join("\n"),mounts:[{type:"volume",name:"media-cache",mountPath:"/home/photoview/media-cache"},{type:"volume",name:"database",mountPath:"/home/photoview/database"},{type:"volume",name:"photos",mountPath:"/photos"}]}}),{services:t}}},{slug:"phpbb",meta:{name:"phpBB",description:"phpBB is a free and open-source bulletin board software that enables you to create online communities and discussion forums. It offers a highly customizable platform with a user-friendly interface that supports multiple languages and includes features like custom BBCode, private messaging, search functionality, and user groups. The Bitnami phpBB container provides a ready-to-use instance of phpBB with all its dependencies, configured for security and performance. This deployment includes both the phpBB application and a MariaDB database for storing your forum data.",instructions:'Login to the phpBB forum via the provided URL. During the first login, use the username "admin" and the passowrd is "admin"',changeLog:[{date:"2025-03-21",description:"Initial template release"}],links:[{label:"Website",url:"https://www.phpbb.com/"},{label:"Documentation",url:"https://www.phpbb.com/support/documentation/"},{label:"Docker Hub",url:"https://hub.docker.com/r/bitnami/phpbb"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"phpbb"},appServiceImage:{type:"string",title:"App Service Image",default:"bitnami/phpbb:3.3.12"}}},benefits:[{title:"Easy Forum Creation",description:"Set up a fully functional discussion forum without complex configuration or technical knowledge."},{title:"Highly Customizable",description:"Tailor your forum's appearance and functionality with thousands of styles, extensions, and language packs."},{title:"Active Community",description:"Join a large and active community of users and developers who contribute to the platform's growth and improvement."}],features:[{title:"User Management",description:"Create user groups with different permission levels and manage user accounts with comprehensive moderation tools."},{title:"Mobile-Responsive Design",description:"Offer a seamless browsing experience across all devices with phpBB's responsive design."},{title:"Powerful Search Functionality",description:"Enable users to quickly find content using the built-in search system with advanced filtering options."},{title:"Anti-Spam Measures",description:"Protect your forum from unwanted content with various anti-spam tools and CAPTCHA verification."}],tags:["Forum","Community","Discussion Board","Bulletin Board"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PHPBB_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"PHPBB_DATABASE_PORT_NUMBER=3306","PHPBB_DATABASE_NAME=$(PROJECT_NAME)","PHPBB_DATABASE_USER=mariadb","PHPBB_DATABASE_PASSWORD=".concat(a),"PHPBB_USERNAME=admin","PHPBB_PASSWORD=admin","[email protected]","PHPBB_FORUM_NAME=My phpBB Forum","PHPBB_FORUM_DESCRIPTION=A forum powered by phpBB","PHPBB_HOST=$(PRIMARY_DOMAIN)","PHPBB_SKIP_BOOTSTRAP=no","ALLOW_EMPTY_PASSWORD=no"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"phpbb-data",mountPath:"/bitnami/phpbb"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"phpmyadmin",meta:{name:"phpMyAdmin",description:"phpMyAdmin is a free software tool designed to manage MySQL over the web. This powerful tool supports a broad spectrum of operations on MySQL and MariaDB. It allows you to perform frequently used operations such as managing databases, tables, columns, relations, indexes, users, permissions, and more through its user-friendly interface. Additionally, it provides the flexibility to directly execute any SQL statement. phpMyAdmin also features an intuitive web interface and supports most MySQL features. You can browse and drop databases, tables, views, fields, and indexes; create, copy, drop, rename, and alter databases, tables, fields, and indexes; manage MySQL user accounts and privileges; and much more. It also allows you to import data from CSV and SQL, export data to various formats, administer multiple servers, create graphics of your database layout in various formats, and create complex queries using Query-by-example (QBE).",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2025-07-24",description:"Version bumped to 5.2.2"},{date:"2025-12-29",description:"Version bumped to 5.2.3"}],links:[{label:"Website",url:"https://www.phpmyadmin.net/"},{label:"Documentation",url:"https://www.phpmyadmin.net/docs/"},{label:"Github",url:"https://github.com/phpmyadmin/phpmyadmin"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"phpmyadmin"},appServiceImage:{type:"string",title:"App Service Image",default:"phpmyadmin:5.2.3"}}},benefits:[{title:"Efficient MySQL Management",description:"phpMyAdmin is a free software tool that allows you to handle the administration of MySQL over the web. It supports a wide range of operations on MySQL and MariaDB, making it a comprehensive tool for managing your databases."},{title:"Intuitive User Interface",description:"With phpMyAdmin, you can perform frequently used operations such as managing databases, tables, columns, relations, indexes, users, permissions, etc., via the user interface. It also allows you to directly execute any SQL statement."},{title:"Multilingual Support",description:"To cater to a wide range of users, phpMyAdmin is translated into 72 languages and supports both left-to-right and right-to-left languages."}],features:[{title:"Wide Range of MySQL Operations",description:"phpMyAdmin supports a wide range of operations on MySQL and MariaDB. You can browse and drop databases, tables, views, fields, and indexes; create, copy, drop, rename, and alter databases, tables, fields, and indexes; manage MySQL user accounts and privileges; and much more."},{title:"Direct SQL Statement Execution",description:"phpMyAdmin allows you to directly execute any SQL statement, providing you with the flexibility to perform complex operations."},{title:"Data Import and Export",description:"With phpMyAdmin, you can import data from CSV and SQL files and export data to various formats including CSV, SQL, XML, PDF, ISO/IEC 26300 - OpenDocument Text and Spreadsheet, Word, LATEX, and others."},{title:"Complex Query Creation",description:"phpMyAdmin enables you to create complex queries using Query-by-example (QBE), making it easier to search globally in a database or a subset of it."},{title:"Data Transformation",description:"phpMyAdmin allows you to transform stored data into any format using a set of predefined functions, like displaying BLOB-data as image or download-link."}],tags:["Databases","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:"PMA_ARBITRARY=1",domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"pic-o",meta:{name:"Pic-O",description:"Pic-O is a modern self-hosted photo gallery application with a clean web interface for browsing and organizing image collections. This template deploys Pic-O with a MariaDB backend and preconfigured application settings so the app and database communicate correctly at first startup.",instructions:"Deploy the template and wait until both services are healthy, then open the configured domain to access the Pic-O interface and complete initial setup in the web UI.",changeLog:[{date:"2026-04-01",description:"Initial template release"}],links:[{label:"Documentation",url:"https://github.com/Xirt/Pic-O#readme"},{label:"GitHub",url:"https://github.com/Xirt/Pic-O"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"app"},appServiceImage:{type:"string",title:"App Service Image",default:"xirtnl/pic-o:latest"}}},benefits:[{title:"Simple Photo Stack",description:"Run Pic-O with a straightforward app plus database architecture."},{title:"Persistent Media Storage",description:"Store photos and application data in mounted volumes for long term use."},{title:"Self-Hosted Control",description:"Keep your image data and metadata in your own infrastructure."}],features:[{title:"MariaDB Backed",description:"Uses MariaDB for durable application metadata and configuration state."},{title:"Dedicated Photo Mount",description:"Maps a persistent storage path to /var/www/resources/photos."},{title:"Dedicated App Storage Mount",description:"Maps a persistent path to /var/www/storage/app."}],tags:["Photos","Gallery","MariaDB","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),source:{type:"image",image:e.appServiceImage},env:["DB_CONNECTION=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=3306","DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mariadb","DB_PASSWORD=".concat(a),"APP_URL=https://$(EASYPANEL_DOMAIN)"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"photos",mountPath:"/var/www/resources/photos"},{type:"volume",name:"app-storage",mountPath:"/var/www/storage/app"}]}}),{services:t}}},{slug:"picoshare",meta:{name:"Picoshare",description:"Picoshare is a lightweight, self-hosted file-sharing platform designed for simplicity and privacy. It provides a minimalistic interface for uploading, sharing, and managing files, without the complexity of traditional cloud storage services. Picoshare emphasizes ease of use and security, making it an ideal solution for personal or small team file-sharing needs. It supports a variety of file types and provides a secure, private environment for sharing files with full control over your data.",instructions:null,changeLog:[{date:"2025-01-16",description:"First Release"},{date:"2025-12-29",description:"Version bumped to 1.5.1"}],links:[{label:"Website",url:"https://picoshare.net/"},{label:"Documentation",url:"https://github.com/mtlynch/picoshare/wiki"},{label:"Github",url:"https://github.com/mtlynch/picoshare"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","authPassphrase"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"picoshare"},appServiceImage:{type:"string",title:"App Service Image",default:"mtlynch/picoshare:1.5.1"},authPassphrase:{type:"string",title:"Auth Passphrase"}}},benefits:[{title:"Lightweight File Sharing",description:"Picoshare offers a lightweight and self-hosted solution for sharing files without the overhead of complex cloud storage services."},{title:"Privacy and Security",description:"With Picoshare, your files remain private and secure on your server, giving you full control over your data."},{title:"Simple User Interface",description:"Picoshare provides a clean, minimalistic interface that focuses on ease of use, making file sharing straightforward and hassle-free."}],features:[{title:"Secure File Sharing",description:"Picoshare ensures secure file transfers, giving you peace of mind when sharing sensitive documents or media."},{title:"Support for Various File Types",description:"Share a wide range of file types, including documents, images, videos, and more, without compatibility concerns."},{title:"Self-Hosted Environment",description:"Host Picoshare on your own server, ensuring privacy and complete control over your file-sharing platform."},{title:"Minimal Resource Usage",description:"Picoshare is designed to be lightweight, making it efficient to run even on low-resource systems."},{title:"Easy Setup and Maintenance",description:"Picoshare is easy to set up and maintain, with clear documentation and minimal configuration required."}],tags:["File Sharing","Privacy","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PS_SHARED_SECRET=".concat(e.authPassphrase),"PORT=4001","PS_BEHIND_PROXY=true"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:4001}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"picsur",meta:{name:"Picsur",description:"Picsur is a simple and fast image hosting service. It provides a user-friendly interface for uploading, managing, and sharing images with support for various image formats and features.",instructions:null,changeLog:[{date:"2025-04-28",description:"First Release"}],links:[{label:"Github",url:"https://github.com/caramelfur/picsur"},{label:"Documentation",url:"https://github.com/caramelfur/picsur#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"picsur"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/caramelfur/picsur:0.5.6"}}},benefits:[{title:"Simple Image Hosting",description:"Picsur provides a simple and fast way to host and share images with a user-friendly interface."},{title:"Secure by Default",description:"Built with security in mind, providing secure image storage and sharing capabilities."},{title:"Easy to Use",description:"Simple configuration and easy to set up, making it perfect for personal or small team use."}],features:[{title:"Image Upload",description:"Simple and fast image upload with support for various image formats."},{title:"User Management",description:"User authentication and management with admin capabilities."},{title:"Image Management",description:"Easy management of uploaded images with deletion and sharing options."},{title:"Customizable",description:"Configurable file size limits and JWT settings for security."},{title:"PostgreSQL Backend",description:"Uses PostgreSQL for reliable and scalable data storage."},{title:"Containerized",description:"Easy to deploy and manage in containerized environments."}],tags:["Image Hosting","File Sharing","PostgreSQL","Web Interface"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["PICSUR_HOST=0.0.0.0","PICSUR_PORT=8080","PICSUR_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"PICSUR_DB_PORT=5432","PICSUR_DB_USERNAME=postgres","PICSUR_DB_PASSWORD=".concat(a),"PICSUR_DB_DATABASE=$(PROJECT_NAME)","PICSUR_ADMIN_PASSWORD=picur","PICSUR_JWT_SECRET=".concat(i),"PICSUR_JWT_EXPIRY=1h","PICSUR_MAX_FILE_SIZE=104857600","PICSUR_VERBOSE=false"].join("\n")}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"pidgin",meta:{name:"Pidgin",description:"Pidgin is a versatile chat application that allows you to log into multiple chat networks simultaneously. This means you can chat with friends on XMPP while also participating in an IRC channel. The application supports a wide range of chat networks, including but not limited to Bonjour, Discord, Facebook, Google Talk, Hangouts, ICQ, Instagram, IRC, Skype, Slack, Telegram, and XMPP. This Pidgin installation comes with default chat plugins and a series of third-party ones. The application also includes Firefox to help you fill out captchas or pre-auth before loading your credentials into the program. Pidgin can be accessed at http://yourhost:3000/ or https://yourhost:3001/. The app is designed to provide a seamless and integrated chat experience across multiple platforms.",instructions:"use abc:abc to login. To access the login interface, add ?login=true to your URL.",changeLog:[{date:"2022-11-23",description:"first release"},{date:"2025-07-24",description:"Version bumped to 2.14.13"},{date:"2025-12-29",description:"Version bumped to 2.14.14"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-pidgin"},{label:"Github",url:"https://github.com/linuxserver/docker-pidgin"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pidgin"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/pidgin:2.14.14"}}},benefits:[{title:"Multi-Network Chatting",description:"Pidgin allows you to log into accounts on multiple chat networks simultaneously. This means you can be chatting with friends on XMPP and sitting in an IRC channel at the same time, providing a seamless chatting experience."},{title:"Third-Party Plugins",description:"This Pidgin installation comes with default chat plugins plus a series of third-party ones. These plugins enhance the functionality of the app, allowing you to customize your chatting experience to suit your needs."},{title:"Integrated Web Browser",description:"To ease integration with some third-party plugins, Firefox is included in this image. This allows you to fill out captchas or pre-auth before loading your credentials into the program, providing a more streamlined user experience."}],features:[{title:"Multi-Platform Awareness",description:"The app utilizes the docker manifest for multi-platform awareness. Simply pulling the correct image for your architecture should retrieve the correct image for your arch."},{title:"Supported Chat Networks",description:"Pidgin supports a wide range of chat networks including XMPP, IRC, Discord, Facebook, Google Talk, Instagram, Skype, Slack, Telegram, and many more. This allows you to connect with friends and colleagues across different platforms."},{title:"Customizable Settings",description:"The app allows you to customize various settings such as the internal port the container listens on for http and https, HTTP Basic auth username and password, subfolder for the application if running a subfolder reverse proxy, and the page title displayed on the web browser."},{title:"Secure Access",description:"The application can be accessed securely at https://yourhost:3001/. This ensures that your chat conversations are protected from unauthorized access."}],tags:["Chat"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"pigeon-pod",meta:{name:"Pigeon Pod",description:"Pigeon Pod is a self-hosted application that converts YouTube channels or playlists into podcast feeds. It supports automatic syncing of new uploads, backfilling historical content, media downloads, and secure RSS feeds compatible with standard podcast players. Built with Spring Boot, Pigeon Pod provides a web interface for managing YouTube subscriptions and generates podcast-compatible RSS feeds that work with any standard podcast player. Perfect for podcast enthusiasts who want to listen to YouTube content as podcasts while maintaining complete control over their data and subscriptions.",instructions:"Login using the credentials; username=root, password=Root@123",changeLog:[{date:"2026-01-15",description:"Template Release"},{date:"2026-05-08",description:"Version bumped to release-1.28.0"}],links:[{label:"GitHub",url:"https://github.com/aizhimou/pigeon-pod"},{label:"Website",url:"https://pigeonpod.cloud"},{label:"Guides",url:"https://pigeonpod.cloud/guides/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pigeon-pod"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/aizhimou/pigeon-pod:release-1.28.0"}}},benefits:[{title:"YouTube to Podcast Conversion",description:"Convert any YouTube channel or playlist into a podcast feed that works with standard podcast players and apps."},{title:"Automatic Syncing",description:"Automatically sync new uploads from subscribed YouTube channels, keeping your podcast feed up-to-date without manual intervention."},{title:"Self-Hosted Control",description:"Complete control over your podcast feeds and downloaded media with no reliance on external services or subscriptions."},{title:"Historical Content",description:"Backfill historical content from YouTube channels, allowing you to access older videos as podcast episodes."},{title:"Standard RSS Feeds",description:"Generates standard RSS feeds compatible with all major podcast players including Apple Podcasts, Spotify, and more."}],features:[{title:"YouTube Channel Subscription",description:"Subscribe to YouTube channels or playlists and automatically convert them into podcast feeds."},{title:"Media Download",description:"Download audio and video files from YouTube for offline access and podcast playback."},{title:"Web Interface",description:"User-friendly web interface for managing subscriptions, viewing download progress, and configuring settings."},{title:"SQLite Database",description:"Lightweight SQLite database for storing subscription data and metadata without requiring a separate database server."},{title:"RSS Feed Generation",description:"Automatically generates secure RSS feeds that work with any standard podcast player application."},{title:"Cover Art Management",description:"Downloads and manages cover art for podcast episodes, enhancing the listening experience."}],tags:["Podcast","YouTube","RSS","Self-Hosted","Media","Audio","Video"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["PIGEON_BASE_URL=https://$(PRIMARY_DOMAIN)","PIGEON_AUDIO_FILE_PATH=/data/audio/","PIGEON_VIDEO_FILE_PATH=/data/video/","PIGEON_COVER_FILE_PATH=/data/cover/","SPRING_DATASOURCE_URL=jdbc:sqlite:/data/pigeon-pod.db"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"pihole",meta:{name:"Pi-hole",description:"Pi-hole is a network-wide ad blocker that acts as a DNS sinkhole to protect your devices from unwanted content without installing any client-side software. It blocks ads at the DNS level, meaning ads are blocked before they even reach your devices, resulting in faster browsing, reduced bandwidth usage, and enhanced privacy. Pi-hole provides a powerful web interface for easy management and detailed statistics about your network's DNS queries. It can block millions of ad-serving domains and supports custom block lists. The application also includes features like DHCP server capabilities, DNS-over-HTTPS (DoH) support, and comprehensive query logging. With Pi-hole, you can monitor all DNS requests on your network, see which domains are being blocked, and maintain complete control over your network's DNS filtering.",instructions:"After the deployment of the Pi-Hole Service, it might not start straight away, you have to stop the systemd-resolved.service, or service which would be occupying the DNS port 53, make sure you also disable that so it doesn't starts on boot.",changeLog:[{date:"2025-11-03",description:"First Release"}],links:[{label:"Website",url:"https://pi-hole.net/"},{label:"Documentation",url:"https://docs.pi-hole.net/"},{label:"GitHub",url:"https://github.com/pi-hole/pi-hole"},{label:"Docker",url:"https://hub.docker.com/r/pihole/pihole"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pihole"},appServiceImage:{type:"string",title:"App Service Image",default:"pihole/pihole:2024.07.0"},timezone:{type:"string",title:"Timezone",default:"Europe/Vienna"},webPassword:{type:"string",title:"Web Password",default:"webPassword!@#123"}}},benefits:[{title:"Network-Wide Ad Blocking",description:"Pi-hole blocks ads at the DNS level for all devices on your network without requiring any client-side software installation."},{title:"Faster Browsing Experience",description:"By blocking ads before they load, Pi-hole reduces bandwidth usage and speeds up page loading times across all your devices."},{title:"Enhanced Privacy Protection",description:"Pi-hole blocks tracking domains and prevents third-party services from collecting data about your browsing habits and online activities."},{title:"Comprehensive Network Monitoring",description:"Monitor all DNS queries on your network with detailed statistics and logs, giving you complete visibility into network activity."}],features:[{title:"DNS-Level Ad Blocking",description:"Pi-hole intercepts DNS requests and blocks domains known for serving ads, trackers, and malicious content before they reach your devices."},{title:"Intuitive Web Interface",description:"Manage your Pi-hole installation through a user-friendly web interface with real-time statistics, query logs, and configuration options."},{title:"Custom Block Lists",description:"Add custom block lists and whitelist specific domains to tailor the filtering to your specific needs and preferences."},{title:"DHCP Server Support",description:"Pi-hole includes a built-in DHCP server that can replace your router's DHCP server for seamless network integration."},{title:"Query Logging and Analytics",description:"View detailed logs of all DNS queries, see which domains are being blocked, and analyze your network's DNS traffic patterns."}],tags:["Privacy","Security","DNS","Ad Blocker","Network Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["TZ=".concat(e.timezone),"WEBPASSWORD=".concat(e.webPassword)];return t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],ports:[{protocol:"tcp",published:53,target:53},{protocol:"udp",published:53,target:53},{protocol:"udp",published:67,target:67}],mounts:[{type:"volume",name:"dnsmasq",mountPath:"/etc/dnsmasq.d"},{type:"volume",name:"pihole",mountPath:"/etc/pihole"}]}}),{services:t}}},{slug:"pinchflat",meta:{name:"Pinchflat",description:"Pinchflat is a modern, self-hosted media management and download application designed for organizing and managing your digital media collection. It provides an intuitive web interface for downloading, organizing, and accessing your media files with support for various formats and sources. Pinchflat offers powerful features for media discovery, automated downloads, and collection management in a clean, user-friendly environment.",instructions:null,changeLog:[{date:"2025-09-11",description:"Initial Template Release (v2025.6.6)"}],links:[{label:"GitHub",url:"https://github.com/kieraneglin/pinchflat"},{label:"Docker Hub",url:"https://hub.docker.com/r/kieraneglin/pinchflat"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pinchflat"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/kieraneglin/pinchflat:v2025.6.6",description:"Pinchflat Docker image"}}},benefits:[{title:"Media Management",description:"Comprehensive media management solution for organizing, downloading, and accessing your digital media collection with powerful search and filtering capabilities."},{title:"Self-Hosted Solution",description:"Complete control over your media collection with a self-hosted solution that keeps your files private and secure on your own infrastructure."},{title:"Automated Downloads",description:"Automated media downloading capabilities with support for various sources and formats to streamline your media collection process."},{title:"Web Interface",description:"Modern web-based interface accessible from any device with responsive design and intuitive navigation for easy media management."}],features:[{title:"Media Organization",description:"Advanced media organization features with custom categories, tags, and metadata management for efficient collection browsing."},{title:"Download Management",description:"Powerful download management with queue support, progress tracking, and automated retry mechanisms for reliable media acquisition."},{title:"Search and Discovery",description:"Advanced search capabilities with full-text search, filtering, and discovery features to quickly find your media content."},{title:"Multi-Format Support",description:"Support for various media formats and sources with automatic format detection and conversion capabilities."},{title:"User Management",description:"Built-in user management system with role-based access control and permission management for secure multi-user environments."},{title:"API Integration",description:"Comprehensive REST API for integration with other applications and custom automation workflows."}],tags:["Media Management","Download Manager","Self-Hosted","Web Interface","File Organization","Media Collection","Automation","Search","Multi-Format","API"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8945}],mounts:[{type:"volume",name:"pinchflat-config",mountPath:"/config"},{type:"volume",name:"pinchflat-downloads",mountPath:"/downloads"}],env:["TZ=America/New_York"].join("\n")}}),{services:t}}},{slug:"pingvin-share-x",meta:{name:"Pingvin Share X",description:"Pingvin Share X is a community-maintained fork of Pingvin Share, a secure and easy-to-use self-hosted file sharing platform. It lets you share files with a single link, set expiration dates, password protection, and download limits, without ever giving your data to a third party. The platform supports registration, reverse shares, S3-compatible storage, LDAP and OAuth/OIDC authentication, SMTP email notifications, ClamAV virus scanning, and a fully configurable, themeable web interface.",instructions:"After deploying, open the application domain to create the first admin account. To enable email sharing, password resets, and notifications, configure SMTP under Admin \u2192 Email. If you place this service behind a reverse proxy with TLS termination, set TRUST_PROXY to true and enable secure cookies in the appearance/general settings.",changeLog:[{date:"2026-07-06",description:"First Release (v1.21.0)"}],links:[{label:"Docs",url:"https://smp46.github.io/pingvin-share-x/"},{label:"GitHub",url:"https://github.com/smp46/pingvin-share-x"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Service Name",default:"pingvin-share-x"}
1,appServiceImage:{type:"string",title:"App Service Image",default:"smp46/pingvin-share-x:v1.21.0"},trustProxy:{type:"boolean",title:"Trust Proxy",description:"Enable this if Pingvin Share X is placed behind a reverse proxy terminating TLS (recommended when using a domain through Easypanel).",default:!0}}},benefits:[{title:"Self-Hosted & Private",description:"Host Pingvin Share X on your own infrastructure. Your files never pass through a third-party service like WeTransfer, keeping your data fully under your control."},{title:"No Annoying Size Limits",description:"Upload and share files as large as you want \u2014 the only limit is your own hard drive, not an arbitrary cap imposed by a provider."},{title:"Flexible Sharing Controls",description:"Protect shares with passwords, set expiration dates and download limits, create reverse share links, and notify recipients by email."},{title:"Enterprise-Ready Authentication",description:"Sign in with local accounts, LDAP, or OAuth/OIDC providers like GitHub, Google, Microsoft, and Discord, with optional two-factor authentication."}],features:[{title:"S3 & Local Storage",description:"Store shared files on the local filesystem or in an S3-compatible bucket, whichever fits your infrastructure best."},{title:"Customizable Interface",description:"Tailor the look and feel with theme colors, border radius, color scheme, and custom CSS injected directly into the frontend."},{title:"ClamAV Integration",description:"Scan uploaded shares for malicious files using an optional ClamAV integration to keep your platform safe."},{title:"Email Notifications",description:"Configure SMTP to send share links, reverse-share notifications, password resets, invites, and download notifications to users."}],tags:["File Management","Privacy","Security"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TRUST_PROXY=".concat(e.trustProxy?"true":"false"),"BACKEND_PORT=8080"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/opt/app/backend/data"},{type:"volume",name:"images",mountPath:"/opt/app/frontend/public/img"},{type:"file",content:":3000 {\n\treverse_proxy /api/* http://127.0.0.1:8080\n\treverse_proxy http://127.0.0.1:3333\n}\n",mountPath:"/opt/app/reverse-proxy/Caddyfile"},{type:"file",content:":3000 {\n\treverse_proxy /api/* http://127.0.0.1:8080 {\n\t\ttrusted_proxies 0.0.0.0/0\n\t}\n\treverse_proxy /* http://127.0.0.1:3333 {\n\t\ttrusted_proxies 0.0.0.0/0\n\t}\n}\n",mountPath:"/opt/app/reverse-proxy/Caddyfile.trust-proxy"}]}}),{services:t}}},{slug:"piwigo",meta:{name:"piwigo",description:"Piwigo is a powerful, self-hosted photo gallery solution designed for managing and organizing your image collections efficiently. It provides a user-friendly web interface, supports a vast array of plugins for extended functionality, and offers advanced photo organization features such as albums, tags, and batch processing. With Piwigo, you can maintain full control over your photo storage and sharing.",instructions:"Configure the database in the installation wizard.",changeLog:[{date:"2025-02-24",description:"Template Release"},{date:"2025-07-24",description:"Version bumped to 15.5.0"},{date:"2025-12-29",description:"Version bumped to 16.2.0"},{date:"2026-05-05",description:"Version bumped to 16.4.0"}],links:[{label:"Website",url:"https://piwigo.org/"},{label:"DockerHub",url:"https://hub.docker.com/r/linuxserver/piwigo"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"piwigo"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/piwigo:16.4.0"}}},benefits:[{title:"Efficient Photo Management",description:"Piwigo enables users to manage large collections of photos with advanced features like batch editing, categorization, and tagging."},{title:"Self-Hosted Solution",description:"Retain full control over your photos with a self-hosted gallery solution, ensuring privacy and flexibility."},{title:"Customizable & Extendable",description:"Customize your gallery with themes and extend its functionality using community-built plugins."}],features:[{title:"Album Organization",description:"Structure your images into albums and sub-albums for easy management."},{title:"Tagging System",description:"Add tags to images for faster search and filtering."},{title:"User Access Control",description:"Manage permissions and access levels for different users."},{title:"Plugins & Themes",description:"Extend Piwigo\u2019s capabilities with plugins and personalize it with themes."},{title:"Batch Processing",description:"Modify multiple photos at once, saving time on large galleries."},{title:"API Access",description:"Integrate Piwigo with other applications through its API."},{title:"Mobile Compatibility",description:"Access and manage your gallery from mobile devices seamlessly."}],tags:["Photo Gallery","Self-Hosted","Image Management","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"piwigo-data",mountPath:"/gallery"},{type:"volume",name:"piwigo-config",mountPath:"/config"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"pixapop",meta:{name:"Pixapop",description:"Pixapop is a modern photo management and sharing application that provides a beautiful web interface for organizing, viewing, and sharing your photo collection. It features automatic photo organization, metadata extraction, and a clean, responsive interface for browsing your photos from any device.",instructions:"You need to mount the photos volume to the container to make the application work.",changeLog:[{date:"2025-10-06",description:"First Release"}],links:[{label:"Documentation",url:"https://github.com/linuxserver-archive/docker-pixapop/blob/master/README.md"},{label:"GitHub",url:"https://github.com/linuxserver/docker-pixapop"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","appUsername","appPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pixapop"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/pixapop:1.2.20221014"},appUsername:{type:"string",title:"App Username"},appPassword:{type:"string",title:"App Password"}}},benefits:[{title:"Photo Management",description:"Organize and manage your photo collection with automatic organization, metadata extraction, and advanced search capabilities."},{title:"Web-Based Interface",description:"Clean and intuitive web interface accessible from any device with a browser for easy photo browsing and management."},{title:"Photo Sharing",description:"Share your photos with friends and family through secure links and customizable sharing options."},{title:"Self-Hosted Control",description:"Complete control over your photo collection with no external dependencies or data sharing with third parties."}],features:[{title:"Web Interface",description:"Modern web-based interface accessible from any device with a browser for easy photo browsing and management."},{title:"Photo Organization",description:"Automatic photo organization with folder structure management and intelligent categorization."},{title:"Metadata Extraction",description:"Automatic extraction of photo metadata including EXIF data, GPS coordinates, and camera information."},{title:"Search and Filter",description:"Advanced search and filtering capabilities to quickly find specific photos in your collection."},{title:"Photo Sharing",description:"Secure photo sharing with customizable access controls and sharing options."},{title:"Responsive Design",description:"Mobile-responsive design that works seamlessly across desktop and mobile devices."},{title:"User Authentication",description:"Built-in user authentication system with username and password protection for secure access."},{title:"Data Persistence",description:"All photo metadata, user settings, and configuration data persists across container restarts."}],tags:["Photo Management","Photo Sharing","Self-hosted","Web Interface","Metadata","Organization","Gallery","LinuxServer"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"pixapop-config",mountPath:"/config"},{type:"volume",name:"pixapop-photos",mountPath:"/photos"}],env:["PUID=1000","PGID=1000","TZ=Asia/Karachi","APP_USERNAME=".concat(e.appUsername),"APP_PASSWORD=".concat(e.appPassword)].join("\n")}}),{services:t}}},{slug:"plane",meta:{name:"Plane",description:"Plane is an open-source project management tool designed to help teams manage tasks, sprints, and product roadmaps efficiently. It offers features like issue tracking, cycles, modules, custom views, pages, and real-time analytics.",instructions:null,changeLog:[{date:"2024-7-26",description:"first release"},{date:"2025-12-30",description:"Updated Plane to v1.2.1"}],links:[{label:"Website",url:"https://plane.so"},{label:"Documentation",url:"https://docs.plane.so/introduction/home"},{label:"Github",url:"https://github.com/makeplane/plane"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["serviceName"],properties:{serviceName:{type:"string",title:"Service Name",default:"plane"}}},logo:"logo.svg",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"compose",data:{serviceName:e.serviceName,source:{type:"git",repo:"https://github.com/easypanel-io/compose.git",ref:"18-05-2026",rootPath:"/plane/code",composeFile:"docker-compose.yml"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80,service:"proxy"}]}}),{services:t}}},{slug:"planka",meta:{name:"Planka",description:"Planka is a free, open-source Kanban board designed to streamline project management for workgroups. With Planka, you can create projects, boards, lists, cards, labels, and tasks, all in one place. It allows you to add card members, track time, set due dates, add attachments, and write comments. It also supports markdown in card descriptions and comments. The app provides real-time updates, ensuring all changes in cards or boards are instantly visible to your colleagues. You can customize your project background and filter tasks by members and labels. User notifications keep everyone in the loop about project updates. The app also supports multiple languages, making it a ver
1satile tool for international teams.",instructions:"Login with [email protected]:demo",changeLog:[{date:"2023-3-21",description:"first release"},{date:"2024-10-17",description:"Fixed Planka Template"},{date:"2025-07-24",description:"Version bumped to 1.26.2"},{date:"2025-12-29",description:"Version bumped to 1.26.3"},{date:"2026-05-05",description:"Version bumped to 2.1.1"}],links:[{label:"Website",url:"https://planka.app"},{label:"Documentation",url:"https://docs.planka.cloud"},{label:"Github",url:"https://github.com/plankanban/planka"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","adminUser","adminPassword","adminEmail","adminName"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"planka"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/planka:2.1.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"planka-db"},adminUser:{type:"string",title:"Admin Username",default:"admin"},adminPassword:{type:"string",title:"Admin Password"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]"},adminName:{type:"string",title:"Admin Name",default:"Admin"}}},benefits:[{title:"Effortless Project Management",description:"With Planka, project management has never been easier. The app provides a simple and intuitive interface that allows you to manage your projects without any hassle."},{title:"Real-Time Collaboration",description:"Planka allows you to work together with your colleagues in real-time. Any changes made to cards or boards are instantly visible to all team members."},{title:"Fast and Efficient",description:"Built with React and Redux, Planka is blazing fast, ensuring that your project management tasks are completed quickly and efficiently."}],features:[{title:"Project Tracking",description:"Planka allows you to create projects, boards, lists, cards, labels, and tasks. This makes it easy to track the progress of your projects."},{title:"Task Management",description:"With Planka, you can add card members, track time, set due dates, add attachments, and write comments. This makes managing tasks a breeze."},{title:"Customization",description:"Planka allows you to customize your project background, filter by members and labels, and supports markdown in card descriptions and comments."},{title:"Real-Time Updates and Notifications",description:"Planka provides real-time updates and user notifications, ensuring that you're always up-to-date with the latest changes and updates."},{title:"Internationalization",description:"Planka supports multiple languages, making it a truly global project management tool."}],tags:["Project Management"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TRUST_PROXY=0","BASE_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"SECRET_KEY=nosecretkey","DEFAULT_ADMIN_EMAIL=".concat(e.adminEmail),"DEFAULT_ADMIN_USERNAME=".concat(e.adminUser),"DEFAULT_ADMIN_PASSWORD=".concat(e.adminPassword),"DEFAULT_ADMIN_NAME=".concat(e.adminName)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1337}],mounts:[{type:"volume",name:"planka_config",mountPath:"/config"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"plausible",meta:{name:"Plausible",description:"Plausible is a simple, lightweight, and open-source web analytics tool that serves as a privacy-friendly alternative to Google Analytics. It is designed to be intuitive and easy to use, providing essential insights about your website's traffic on a single page, without the need for complex menus or custom reports. The Plausible script is 45 times smaller than Google Analytics, ensuring your site loads faster and contributes to a greener web. It respects user privacy by not using cookies or collecting personal data, and all data processing is carried out anonymously within the EU. Plausible also allows you to track goal conversions, revenue, and campaigns, segment your audience, and analyze referral sources. You can share your stats publicly or privately, invite team members, and even import your historical stats from Google Analytics. It's a powerful tool for understanding your website's performance while respecting user privacy.",instructions:null,changeLog:[{date:"2023-1-5",description:"first release"}],links:[{label:"Website",url:"https://plausible.io"},{label:"Documentation",url:"https://plausible.io/docs"},{label:"Github",url:"https://github.com/plausible/plausible"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Derock",url:"https://github.com/ItzDerock"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","clickhouseServiceName","mailerEmail","smtpHostAddr","smtpHostPort","smtpUserName","smtpUserPw
1d"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"plausible"},appServiceImage:{type:"string",title:"App Service Image",default:"plausible/analytics:v2.0.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"plausible-db"},clickhouseServiceName:{type:"string",title:"Database Service Name",default:"plausible-clickhouse"},mailerEmail:{type:"string",title:"Mailer Email",default:"[email protected]"},smtpHostAddr:{type:"string",title:"SMTP Host Address",default:"smtp-relay.brevo.com"},smtpHostPort:{type:"string",title:"SMTP Host Port",default:"587"},smtpUserName:{type:"string",title:"SMTP User Name",default:"[email protected]"},smtpUserPwd:{type:"string",title:"SMTP User Password",default:"xxxxxxxxx"}}},benefits:[{title:"Simple and Intuitive Analytics",description:"Plausible provides a simple and intuitive alternative to Google Analytics. It cuts through the noise, providing all essential insights on one page in one minute. There's no need for custom reports or dashboards, making it easy to understand your site traffic."},{title:"Lightweight and Fast",description:"With a script 45 times smaller than Google Analytics, Plausible is a lightweight solution that helps your site load faster. By switching to Plausible, a site with 10,000 monthly visitors can save 4.5 kg of CO2 emissions per year, contributing to a greener and more sustainable web."},{title:"Privacy-Friendly",description:"Plausible respects the privacy of your site visitors. It operates without cookies and does not collect personal data. All site measurement is carried out anonymously, with no cross-site or cross-device tracking. Your site data is exclusively processed with servers owned and operated by European companies and never leaves the EU."},{title:"Open Source and Transparent",description:"Plausible is an open source web analytics tool. Its source code is accessible on GitHub, allowing anyone to inspect and review it. This transparency ensures that Plausible's actions match its words."}],features:[{title:"Goal Conversions, Revenue and Campaigns Tracking",description:"Plausible allows you to segment your audience by any metric you click on. It helps answer important questions about your visitors, content, and referral sources. You can analyze paid campaigns using UTM parameters, track ecommerce revenue, outbound link clicks, file downloads, and 404 error pages. It also allows you to create custom events with custom dimensions to track conversions and attribution."},{title:"Dashboard Sharing",description:"With Plausible, you can share your stats privately by generating a secure link, or make them public for transparency. You can also invite team members and assign user roles, making collaboration easy."},{title:"Smooth Transition from Universal Analytics",description:"Plausible offers a real-time dashboard, entry pages report, and integration with Search Console. It allows you to track your paid campaigns and conversions, invite team members, and even import your historical stats, ensuring a smooth transition from Universal Analytics."}],tags:["Analytics","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["BASE_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"CLICKHOUSE_DATABASE_URL=http://$(PROJECT_NAME)_".concat(e.clickhouseServiceName,":8123/default"),"SECRET_KEY_BASE=".concat(a),"MAILER_EMAIL=".concat(e.mailerEmail),"SMTP_HOST_ADDR=".concat(e.smtpHostAddr),"SMTP_HOST_PORT=".concat(e.smtpHostPort),"SMTP_USER_NAME=".concat(e.smtpUserName),"SMTP_USER_PWD=".concat(e.smtpUserPwd),"SMTP_HOST_SSL_ENABLED=false","SMTP_RETRIES=20","CRON_ENABLED=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],deploy:{command:"sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"}}}),t.push({type:"app",data:{serviceName:e.clickhouseServiceName,source:{type:"image",image:"clickhouse/clickhouse-server:22.6-alpine"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8123}],mounts:[{type:"volume",name:"event-data",mountPath:"/var/lib/clickhouse"},{type:"file",content:["<yandex>","<profiles>","<default>","<log_queries>0</log_queries>","<log_query_threads>0</log_query_threads>","</default>","</profiles>","</yandex>",""].join("\n"),mountPath:"/etc/clickhouse-server/users.d/logging.xml"},{type:"file",content:["<yandex>","<listen_host>0.0.0.0</listen_host>","","<logger>","<level>warning</level>","<console>true</console>","</logger>","","</yandex>",""].join("\n"),mountPath:"/etc/clickhouse-server/config.d/logging.xml"}]}}),t.push({type:"postgres",data:{image:"postgres:14",serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"plex",meta:{name:"Plex",description:"Plex Media Server is a powerful app that makes it easy to manage and stream your media collection to all your devices, anytime, anywhere. With Plex, you can stream your video, music, and photo collections from your phone, tablet, gaming console, smart TV, or any other favorite streaming device. The app is designed to work with three types of networking: bridge, host, and macvlan, each offering a unique way to connect your media server to your devices. Plex also offers advanced features like hardware transcoding support for Intel Quick Sync, making it a ver
1satile choice for all your media streaming needs.",instructions:"If you get a libusb error, please ignore it.",changeLog:[{date:"2022-11-23",description:"first release"},{date:"2025-07-24",description:"Version bumped to 1.41.9"},{date:"2025-12-29",description:"Version bumped to 1.42.2"},{date:"2026-02-24",description:"Version bumped to 1.43.0"},{date:"2026-05-05",description:"Version bumped to 1.43.1"}],links:[{label:"Documentation",url:"https://support.plex.tv/articles/catagories/plex-media-server"},{label:"Github",url:"https://github.com/plexinc/pms-docker"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"plex"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/plex:1.43.1"}}},benefits:[{title:"Access Your Media Anywhere",description:"With Plex Media Server, you can stream your video, music, and photo collections any time, anywhere, to any device. Whether you're on your phone, tablet, gaming console, or smart TV, your media is always at your fingertips."},{title:"Easy to Use",description:"Plex Media Server is designed to be easy to install and use. With our intuitive interface, you can easily manage your media collections and enjoy seamless streaming experience."},{title:"Flexible Networking Options",description:"Plex Media Server supports three types of networking: bridge, host, and macvlan. This flexibility allows you to choose the networking setup that best suits your needs."}],features:[{title:"Media Streaming",description:"Stream your video, music, and photo collections to any device. Plex Media Server supports streaming to all your favorite phones, tablets, streaming devices, gaming consoles, and smart TVs."},{title:"Networking Options",description:"Choose from three types of networking: bridge, host, and macvlan. Each type offers different benefits, and you can choose the one that best fits your setup."},{title:"Docker Container",description:"Plex Media Server comes in an official Docker container, making it easy to deploy and manage. Docker allows you to isolate your app in a container to ensure that it works uniformly across different environments."}],tags:["Media","Streaming","Video","Music","Photos"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:"VERSION=docker",mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"tv",mountPath:"/tv"},{type:"volume",name:"movies",mountPath:"/movies"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:32400}]}}),{services:t}}},{slug:"ploi-roadmap",meta:{name:"Ploi Roadmap",description:"Roadmap is an open-source software designed to streamline your roadmapping process. It offers a completely customizable platform where you can mention users in comments, upvote items to prioritize them, and generate automatic slugs. The software also features a Filament admin panel and a simplified role system that includes administrator, employee, and user roles. Roadmap supports OAuth 2 single sign-on with your own application and automatically generates OG images, including the branding color you've set up. It also integrates with GitHub, allowing you to assign a repository to each project and manage issues directly from the roadmap admin. The software is built with PHP and requires a database to function.",instructions:'After First Deployment, run "php artisan roadmap:install" to setup the inital user account.',changeLog:[{date:"2023-1-6",description:"first release"},{date:"2023-01-27",description:"Package and Image Fix"}],links:[{label:"Github",url:"https://github.com/ploi-deploy/roadmap"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Mxrcy",url:"https://github.com/DrMxrcy"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","adminNotifications","appLanguage","appTimezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ploi-roadmap"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/easypanel-community/docker-ploi-roadmap:1.44.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"ploi-roadmap-db"},adminNotifications:{type:"boolean",title:"Admin Notifications",default:!0},appLanguage:{type:"string",title:"Language",default:"en"},appTimezone:{type:"string",title:"Timezone",default:"utc"}}},benefits:[{title:"Customisable Roadmapping",description:"Roadmap is an open-source software designed to cater to your roadmapping needs. It allows you to create a completely customisable roadmap, enabling you to plan and strategise effectively."},{title:"Prioritise Tasks",description:"With the ability to upvote items, you can easily identify which tasks or projects have more priority. This feature helps in better decision-making and resource allocation."},{title:"Easy User Management",description:"Roadmap comes with a simplified role system, including roles such as administrator, employee, and user. This makes it easy to manage users and their access levels within the application."},{title:"Single Sign-On",description:"Roadmap supports OAuth 2 single sign-on with your own application, providing a seamless and secure login experience for users."},{title:"Automatic Image Generation",description:"The software automatically generates Open Graph (OG) images, including the branding color you've set up. This feature helps in enhancing the visual appeal and recognition of your roadmap."}],features:[{title:"Customisable Roadmapping",description:"Create a completely customisable roadmap to plan and strategise effectively."},{title:"User Mentions",description:"Mention users in comments to facilitate communication and collaboration."},{title:"Upvote System",description:"Upvote items to identify which tasks or projects have more priority."},{title:"Automatic Slug Generation",description:"Automatically generate slugs for your items, making them easier to reference and find."},{title:"Admin Panel",description:"Manage your roadmap and users with the easy-to-use Filament admin panel."},{title:"Role System",description:"Manage users and their access levels with the simplified role system."},{title:"Single Sign-On",description:"Provide a seamless and secure login experience with OAuth 2 single sign-on."},{title:"Automatic Image Generation",description:"Enhance the visual appeal of your roadmap with automatically generated OG images."}],tags:["Project Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=$e.from(y(32)).toString("base64");return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_ENV=production","APP_NAME=Ploi Roadmap","APP_KEY=base64:".concat(i),"APP_ENV=local","APP_ADMIN_NOTIFICATIONS=".concat(e.adminNotifications),"APP_LOCALE=".concat(e.appLanguage),"APP_TIMEZONE=".concat(e.appTimezone),"DB_CONNECTION=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_POST=3306","DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mariadb","DB_PASSWORD=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"vendor",mountPath:"/vendor"},{type:"volume",name:"app-data",mountPath:"/app"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"pmm",meta:{name:"Percona PMM",description:"Percona Monitoring and Management (PMM) is an open-source monitoring and observability platform for MySQL, PostgreSQL, MongoDB, and cloud-native workloads. PMM provides metrics, query analytics, alerts, and dashboards to help you understand database performance and troubleshoot issues quickly.",instructions:"After deployment, open your Easypanel domain to access PMM. This template routes traffic to PMM's internal HTTP port 8080 and relies on Easypanel for TLS at the edge. Default login credentials are admin:admin; change the admin password immediately after first login from the PMM UI. Data retention and metrics resolution use Go duration syntax (e.g. 720h = 30 days, 1s, 60s).",changeLog:[{date:"2026-05-06",description:"First release"}],links:[{label:"Website",url:"https://www.percona.com/software/database-tools/percona-monitoring-and-management"},{label:"Documentation",url:"https://docs.percona.com/percona-monitoring-and-management/"},{label:"GitHub",url:"https://github.com/percona/pmm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","pmmDataRetention","pmmMetricsResolution"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pmm"},appServiceImage:{type:"string",title:"App Service Image",default:"percona/pmm-server:3.8.0"},pmmDataRetention:{type:"string",title:"PMM Data Retention",default:"720h"},pmmMetricsResolution:{type:"string",title:"PMM Metrics Resolution",default:"1s"}}},benefits:[{title:"Unified Database Monitoring",description:"Monitor multiple database engines from one place with ready-to-use dashboards for infrastructure and query performance."},{title:"Query Analytics and Insights",description:"Use Query Analytics to identify slow queries, execution trends, and bottlenecks affecting application performance."},{title:"Long-Term Metrics Storage",description:"Persist PMM data in a dedicated volume so historical metrics and trends are retained across restarts and upgrades."}],features:[{title:"Built-in Dashboards",description:"Includes Grafana-based dashboards and exporters for MySQL, PostgreSQL, MongoDB, and system metrics."},{title:"Alerting and Advisors",description:"Proactive alerting and best-practice checks help you detect and resolve issues before they impact production."},{title:"Secure HTTPS Access",description:"Easypanel terminates HTTPS for your domain while PMM runs 
1internally on port 8080, keeping access secure and deployment-compatible."}],tags:["Monitoring","Observability","Databases","MySQL","PostgreSQL","MongoDB"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PMM_DATA_RETENTION=".concat(e.pmmDataRetention),"PMM_METRICS_RESOLUTION=".concat(e.pmmMetricsResolution)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"pmm-data",mountPath:"/srv"}]}}),{services:t}}},{slug:"pocketbase",meta:{name:"PocketBase",description:"PocketBase is a powerful backend solution for your next SaaS or Mobile app. It is designed to be ready to use out of the box, providing a realtime database, user authentication, file storage, and an admin dashboard all in one file. The realtime database is embedded and performant, featuring a schema builder, data validations, realtime subscriptions, and an easy-to-use REST API. The authentication feature allows you to manage your app users and handle email/password and OAuth2 sign ups from various platforms like Google, Facebook, GitHub, GitLab without any hassle. The file storage feature allows you to store files locally or in an S3 storage, attach media to your database records, and generate thumbnails on the fly. PocketBase is extendable and can be used as a standalone app or as a Go framework, which you can extend via hooks to create your own custom portable backend. It also provides official client SDKs for seamless integration.",instructions:'Admin Dashboard can be accessed via "DOMAIN/_/""',changeLog:[{date:"2022-12-03",description:"First Release"},{date:"2025-07-24",description:"Version bumped to 0.23.12"}],links:[{label:"Website",url:"https://pocketbase.io"},{label:"Documentation",url:"https://pocketbase.io/docs"},{label:"Github",url:"https://github.com/pocketbase/pocketbase"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pocketbase"},appServiceImage:{type:"string",title:"App Service Image",default:"spectado/pocketbase:0.23.12"}}},benefits:[{title:"Realtime Database",description:"PocketBase provides an embedded performant database with schema builder, data validations, and realtime subscriptions. This allows for efficient data management and instant updates, ensuring your SaaS or mobile app is always up-to-date."},{title:"Authentication",description:"Manage your app users effortlessly with PocketBase's built-in authentication feature. It handles email/password and OAuth2 sign ups (Google, Facebook, GitHub, GitLab) without any hassle, ensuring secure and easy user access."},{title:"File Storage",description:"With PocketBase, you can store files locally or in S3 storage. It allows you to easily attach media to your database records and generate thumbnails on the fly, providing a seamless file management experience."},{title:"Admin Dashboard",description:"PocketBase comes with a convenient admin dashboard, providing a centralized location for managing your app's backend. This makes it easier to oversee and control various aspects of your app."}],features:[{title:"Realtime Database",description:"PocketBase's realtime database offers an embedded performant database with schema builder, data validations, realtime subscriptions, and an easy-to-use REST API."},{title:"Authentication",description:"PocketBase's authentication feature allows you to manage your app users and handle email/password and OAuth2 sign ups (Google, Facebook, GitHub, GitLab) without the hassle."},{title:"File Storage",description:"PocketBase's file storage feature allows you to sanely store files locally or in a S3 storage. It also enables you to easily attach media to your database records and generate thumbnails on the fly."},{title:"Admin Dashboard",description:"PocketBase provides an admin dashboard that allows you to manage your app's backend in a centralized location."},{title:"Extendable",description:"PocketBase can be used as a standalone app or as a Go framework that you can extend via hooks to create your own custom portable backend."},{title:"Client SDKs",description:"PocketBase provides official client SDKs for painless integration, making it easier to connect your app with the backend."}],tags:["Databases","Developer Tools"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/pb_data"},{type:"volume",name:"public",mountPath:"/pb_public"},{type:"volume",name:"migrations",mountPath:"/pb_migrations"}]}}),{services:t}}},{slug:"podfetch",meta:{name:"Podfetch",description:"Podfetch is a self-hosted podcast manager and aggregator that allows you to subscribe to, download, and organize your favorite podcasts from a single centralized interface. It automatically fetches new episodes from RSS feeds at configurable intervals, stores podcast metadata and audio files locally, and provides a web-based interface for browsing and managing your podcast library. The application features automatic episode downloading, customizable polling intervals for checking new content, SQLite database for lightweight data management, and organized file storage for podcast episodes. With its built-in audio player, you can stream episodes directly from the web interface without needing external podcast clients. Podfetch supports multiple podcast subscriptions, episode filtering, playback progress tracking, and automatic cleanup of old episodes to manage storage. The Rust-based backend ensures efficie
1nt performance and low resource usage, making it ideal for running on home servers or low-powered devices. Perfect for podcast enthusiasts who want complete control over their podcast library, users seeking privacy and independence from commercial podcast platforms, home lab administrators building media server ecosystems, or anyone who wants to archive and organize podcast episodes without relying on third-party services or dealing with platform-specific limitations.",instructions:null,changeLog:[{date:"2025-11-28",description:"Template Release"}],links:[{label:"Website",url:"https://www.samtv.fyi/PodFetch/"},{label:"GitHub",url:"https://github.com/SamTV12345/PodFetch"},{label:"Docker Hub",url:"https://hub.docker.com/r/samuel19982/podfetch"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"podfetch"},appServiceImage:{type:"string",title:"App Service Image",default:"samuel19982/podfetch:v4.9.0"},pollingInterval:{type:"string",title:"Polling Interval (minutes)",default:"60"}}},benefits:[{title:"Complete Podcast Control",description:"Manage your entire podcast library from a single interface with automatic episode downloads and organized storage."},{title:"Privacy & Independence",description:"Keep your podcast subscriptions and listening habits private on your own infrastructure, away from commercial tracking."},{title:"Automatic Episode Management",description:"Automatically fetch new episodes from RSS feeds at configurable intervals, ensuring you never miss new content."},{title:"Lightweight & Efficient",description:"Rust-based backend provides excellent performance with minimal resource usage, perfect for home servers and low-powered devices."}],features:[{title:"RSS Feed Aggregation",description:"Subscribe to unlimited podcast RSS feeds and automatically aggregate episodes from all your favorite shows."},{title:"Automatic Downloads",description:"Automatically download new episodes as they become available, with configurable polling intervals for feed updates."},{title:"Web-Based Player",description:"Stream podcast episodes directly from the web interface with a built-in audio player, no external apps required."},{title:"Episode Management",description:"Filter episodes, mark as played/unplayed, and manage your podcast queue with intuitive controls."},{title:"Playback Progress Tracking",description:"Track listening progress across episodes and resume playback from where you left off."},{title:"SQLite Database",description:"Lightweight SQLite database stores podcast metadata, subscriptions, and playback history without requiring external databases."},{title:"Organized Storage",description:"Automatically organize downloaded episodes by podcast with structured file storage for easy access and management."},{title:"Storage Optimization",description:"Configure automatic cleanup of old or played episodes to manage disk space efficiently."}],tags:["Podcast","Media Manager","RSS Feed","Audio","Self-Hosted","Media Server"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["POLLING_INTERVAL=".concat(e.pollingInterval||"60"),"SERVER_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=sqlite:///app/db/podcast.db","RUST_BACKTRACE=1"].join("\n"),mounts:[{type:"volume",name:"podcasts",mountPath:"/app/podcasts"},{type:"volume",name:"db",mountPath:"/app/db"}]}}),{services:t}}},{slug:"poenskelisten",meta:{name:"P\xf8nskelisten",description:"P\xf8nskelisten is a self-hosted, collaborative wishlist app for creating and sharing gift ideas with friends and family without ruining the surprise. Wishes can be claimed anonymously \u2014 other members see an item is taken, but the list owner never finds out who claimed it. Wishlists are organized into groups so the same list can be shared with multiple people, and the first registered user automatically becomes the admin. This template runs P\xf8nskelisten with its built-in SQLite database, so there is nothing extra to provision.",instructions:"Registration requires an invite code. Check the app container logs after first deploy for the generated invite code, register the first account (it becomes admin automatically), then create additional invite codes from the admin panel.",changeLog:[{date:"2026-07-10",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/aunefyren/poenskelisten"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","t
1imezone"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"poenskelisten"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/aunefyren/poenskelisten:v2.3.0"},timezone:{type:"string",title:"Timezone",default:"UTC"}}},benefits:[{title:"Surprise-Safe Claiming",description:"Wishes can be claimed anonymously by group members. The list owner sees nothing has changed, so gifts stay a surprise until they're opened."},{title:"Zero-Config Database",description:"Runs on a built-in SQLite database that P\xf8nskelisten manages itself \u2014 no separate database service to provision or maintain."},{title:"Group-Based Sharing",description:"Organize wishlists into groups so the same list can be shared with multiple people at once, like an extended family or a friend circle."}],features:[{title:"Collaborative Wishlists",description:"Create wishlists and add wishes, then invite friends and family to collaborate on the same list."},{title:"Anonymous Gift Claiming",description:"Members can claim a wish to signal it's taken without revealing their identity to the list owner."},{title:"Invite-Based Registration",description:"New accounts require an invite code, keeping the instance closed to people you've actually invited."},{title:"Admin Panel",description:"The first registered user becomes admin and can manage users, groups, and generate additional invite codes."}],tags:["Wishlist","Gift Planning","Collaboration","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["dbtype=sqlite","timezone=".concat(e.timezone),"externalurl=https://$(PRIMARY_DOMAIN)","generateinvite=true"].join("\n"),mounts:[{type:"volume",name:"files",mountPath:"/app/files"},{type:"volume",name:"images",mountPath:"/app/images"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"portainer",meta:{name:"Portainer",description:"Portainer is a powerful container management platform trusted by over a million users worldwide. It simplifies the deployment, configuration, troubleshooting, and securing of containers on Kubernetes, Docker, and Swarm across any data center, cloud, network edge, or IIOT device. Portainer is designed to accelerate container adoption and reduce deployment times, making it easier for teams with little to no knowledge of Kubernetes to work autonomously. It also aids in managing and updating deployments, setting up, maintaining, and troubleshooting container infrastructure, and ensuring security and compliance. Portainer supports hybrid and multi-cloud, multi-cluster, multi-device container management, making it a versatile tool for managing complex container ecosystems.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2025-02-28",description:"Version bumped to 2.27.1"},{date:"2025-07-24",description:"Version bumped to 2.32.0"},{date:"2025-12-29",description:"Version bumped to 2.33.6"},{date:"2026-02-24",description:"Version bumped to 2.38.1"},{date:"2026-05-05",description:"Version bumped to 2.41.0"}],links:[{label:"Website",url:"https://www.portainer.io/"},{label:"Documentation",url:"https://docs.portainer.io/"},{label:"Github",url:"https://github.com/portainer/portainer#readme"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"portainer"},appServiceImage:{type:"string",title:"App Service Image",default:"portainer/portainer-ce:2.41.0"}}},benefits:[{title:"Efficient Container Management",description:"Portainer simplifies the process of deploying, configuring, troubleshooting, and securing containers on Kubernetes, Docker, and Swarm. It allows you to manage containers in any data center, cloud, network edge, or IIOT device in just a few minutes."},{title:"Accelerated Container Adoption",description:"Trusted by thousands of companies worldwide, Portainer accelerates the adoption of containers by making it easy to get applications up and running in a Kubernetes environment. It significantly reduces deployment times and minimizes production errors."},{title:"Simplified Troubleshooting",description:"Portainer helps you quickly identify and fix issues with your applications. It provides a user-friendly interface that makes it easy to understand why an application isn't working and how to resolve the problem."},{title:"Enhanced Security and Compliance",description:"At its core, Portainer is a powerful policy and governance platform. It ensures the security of your clusters and helps you maintain compliance with IT standards."}],features:[{title:"Multi-Platform Support",description:"Portainer supports Kubernetes, Docker, and Docker Swarm running in any data center, cloud, network edge, or IIOT device. It provides a unified platform for managing containers across multiple environments."},{title:"Deployment of Containers",description:"Portainer makes it easy to deploy cloud-native applications into containers. It simplifies the process and ensures that your applications are deployed securely."},{title:"Lifecycle Management",description:"With Portainer, managing and updating your deployments is a breeze. It provides tools for easy setup, maintenance, and troubleshooting of your container infrastructure."},{title:"Integration with Popular Tools",description:"Portainer works with a wide range of platforms and tools. This ensures that you can seamlessly integrate it into your existing workflow."}],tags:["Container Management","Deployment","Troubleshooting","Lifecycle Management","Platform Management","Security & Compliance"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"portnote",meta:{name:"PortNote",description:"PortNote is a self-hosted port tracking application that helps you keep track of used ports across your servers and VMs. Stop juggling spreadsheets and guessing which service uses which port \u2014 PortNote gives you a clear, organized view of your entire port landscape. Add your servers via a sleek web interface, assign and document port usage across all systems, and avoid conflicts before they happen.",instructions:null,changeLog:[{date:"2025-09-17",description:"Template Release (1.2.0)"}],links:[{label:"Github",url:"https://github.com/crocofied/PortNote"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","webServiceImage","agentServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"portnote"},webServiceImage:{type:"string",title:"Web Service Image",default:"haedlessdev/portnote:1.2.0"},agentServiceImage:{type:"string",title:"Agent Service Image",default:"haedlessdev/portnote-agent:1.2.0"},loginUsername:{type:"string",title:"Login Username",default:"admin",description:"Username for accessing the application"},loginPassword:{type:"string",title:"Login Password",default:"",description:"Password for accessing the application (leave empty for auto-generation)"}}},benefits:[{title:"Port Conflict Prevention",description:"Avoid port conflicts before they happen by maintaining a clear, organized view of your entire port landscape across all servers and VMs."},{title:"Infrastructure Organization",description:"Replace spreadsheets and manual tracking with a structured, web-based interface for managing port assignments and documentation."},{title:"Self-Hosted Control",description:"Keep your port tracking data completely private and secure on your own server with no external dependencies or data sharing."}],features:[{title:"Server and VM Management",description:"Add and manage your servers and VMs through a sleek web interface, organizing your entire infrastructure in one centralized location."},{title:"Port Assignment Tracking",description:"Assign and document port usage across all systems with detailed information about which services use which ports."},{title:"Random Port Generator",description:"Generate random available ports to help you find unused ports for new services and avoid conflicts."},{title:"Secure Authentication",description:"JWT-based authentication system with secure login credentials to protect your infrastructure data and port assignments."},{title:"Background Processing",description:"Dedicated agent service for handling background tasks, automation, and advanced port management features."},{title:"Database Storage",description:"Reliable PostgreSQL database for storing server information, port assignments, and application state with data persistence."}],tags:["Port Tracking","Infrastructure Management","Self-Hosted","Web Interface","PostgreSQL","JWT Authentication","DevOps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32),n=e.loginPassword||v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["JWT_SECRET=".concat(i),"USER_SECRET=".concat(o),"LOGIN_USERNAME=".concat(e.loginUsername),"LOGIN_PASSWORD=".concat(n),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.webServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-agent"),env:["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.agentServiceImage}}}),{services:t}}},{slug:"portracker",meta:{name:"Portracker",description:"Portracker is a self-hosted port tracking and monitoring application that provides real-time visibility into port usage across your infrastructure. It automatically discovers and tracks ports used by services running on your system, including Docker containers, and provides a comprehensive dashboard for port management and conflict detection. Perfect for DevOps teams and system administrators who need to maintain organized port assignments.",instructions:null,changeLog:[{date:"2025-09-17",description:"Template Release (v1.1)"},{date:"2025-12-29",description:"Version bumped to 1.2"},{date:"2026-02-24",description:"Version bumped to 1.3"},{date:"2026-05-05",description:"Version bumped to 1.3.7"}],links:[{label:"Github",url:"https://github.com/mostafawahied/portracker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"portracker"},appServiceImage:{type:"string",title:"App Service Image",default:"mostafawahied/portracker:1.3.7"},enableTrueNas:{type:"boolean",title:"Enable TrueNAS Integration",default:!1,description:"Enable enhanced TrueNAS features and API integration"},trueNasApiKey:{type:"string",title:"TrueNAS API Key",default:"",description:"API key for TrueNAS integration (required if TrueNAS is enabled)"}}},benefits:[{title:"Real-Time Port Monitoring",description:"Automatically discover and track ports used by services running on your system with real-time updates and comprehensive port visibility."},{title:"Docker Integration",description:"Seamlessly integrate with Docker to track container ports and service assignments with automatic discovery capabilities."},{title:"Conflict Prevention",description:"Identify port conflicts before they happen and maintain organized port assignments across your entire infrastructure."}],features:[{title:"Automatic Port Discovery",description:"Automatically discover ports used by running services and containers without manual configuration or port scanning."},{title:"Docker Socket Integration",description:"Read-only access to Docker socket for discovering services running in Docker containers and their port assignments."},{title:"System Port Detection",description:"Advanced system-level port detection with required permissions for accessing host processes and port information."},{title:"TrueNAS Integration",description:"Optional TrueNAS API integration for enhanced features and infrastructure management capabilities."},{title:"Data Persistence",description:"Reliable data storage for port tracking information, service configurations, and historical port usage data."},{title:"Web Dashboard",description:"Clean and intuitive web interface for viewing port assignments, managing services, and monitoring port usage across your infrastructure."}],tags:["Port Tracking","Infrastructure Monitoring","Self-Hosted","Docker Integration","DevOps","System Administration","Port Management"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[],a=[];return e.enableTrueNas&&e.trueNasApiKey&&a.push("TRUENAS_API_KEY=".concat(e.trueNasApiKey)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:a.join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:4999}],deploy:{capAdd:["SYS_PTRACE","SYS_ADMIN"]}}}),{services:t}}},{slug:"poste",meta:{name:"Poste",description:"Poste is a self-hosted mail server solution that provides a complete and secure email hosting platform. It offers built-in features such as spam filtering, DKIM signing, and webmail access to ensure a reliable email experience. This app is a Docker containerized version of Poste, making it easy to deploy and manage across various environments.",instructions:null,changeLog:[{date:"2025-02-18",description:"first release"},{date:"2025-07-24",description:"Version bumped to 2.5.5"},{date:"2025-12-29",description:"Version bumped to 2.5.8"},{date:"2026-02-24",description:"Version bumped to 2.5.9"},{date:"2026-05-05",description:"Version bumped to 2.5.11"}],links:[{label:"Documentation",url:"https://poste.io/docs"},{label:"Github",url:"https://github.com/analogic/poste.io"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","customHttpPort","customHttpsPort","virtualHost","smtpRelay","pop3Port","imapPort","smtpPort","smtpsPort","secureImapPort","securePop3Port","emailFilterPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"poste"},appServiceImage:{type:"string",title:"App Service Image",default:"analogic/poste.io:2.5.11"},customHttpPort:{type:"string",title:"Custom HTTP Port",default:"8080"},customHttpsPort:{type:"string",title:"Custom HTTPS Port",default:"8443"},virtualHost:{type:"string",title:"Virtual Host",default:"mail.example.com"},smtpRelay:{type:"string",title:"SMTP Relay",default:"25"},pop3Port:{type:"string",title:"POP3 Port",default:"110"},imapPort:{type:"string",title:"IMAP Port",default:"143"},smtpPort:{type:"string",title:"SMTP Port",default:"465"},smtpsPort:{type:"string",title:"SMTPS Port",default:"587"},secureImapPort:{type:"string",title:"Secure IMAP Port",default:"993"},securePop3Port:{type:"string",title:"Secure POP3 Port",default:"995"},emailFilterPort:{type:"string",title:"Email Filter Port",default:"4190"}}},benefits:[{title:"Self-Hosted Mail Server",description:"Poste is a self-hosted email server solution that ensures privacy and data ownership. Users have full control over their email accounts, domains, and mail data without relying on third-party services."},{title:"Secure & Encrypted Communication",description:"Poste includes built-in support for TLS encryption, DKIM signing, SPF, and DMARC to enhance email security and prevent phishing attacks."},{title:"Multi-Platform Support",description:"The app is compatible with multiple architectures, including x86-64 and arm64, ensuring broad deployment possibilities."},{title:"Customizable & Extensible",description:"Poste offers configuration options, allowing administrators to tailor the email server to their specific needs, including domain management, email filtering, and authentication settings."}],features:[{title:"Webmail Interface",description:"Poste provides a user-friendly webmail interface, allowing users to access and manage their emails directly from a browser."},{title:"Spam & Malware Protection",description:"The app includes built-in spam filtering and virus scanning to ensure incoming and outgoing emails are safe and free from malicious content."},{title:"Domain & Account Management",description:"Administrators can easily create and manage email accounts, set up custom domains, and configure forwarding rules within the Poste dashboard."},{title:"Secure Email Protocols",description:"Poste supports standard email protocols such as SMTP, IMAP, and POP3, ensuring compatibility with a wide range of email clients."},{title:"Easy SSL Integration",description:"Poste simplifies SSL certificate management with built-in Let's Encrypt support, making it easy to enable HTTPS for secure email access."},{title:"Easy Deployment with Docker",description:"Poste is containerized for quick and seamless deployment, simplifying the installation and management process."}],tags:["Email","Self-Hosted","Mail Server","Security","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["VIRTUAL_HOST=".concat(e.virtualHost),"HTTPS=OFF","HTTP_PORT=".concat(e.customHttpPort),"HTTPS_PORT=".concat(e.customHttpsPort)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"bind",hostPath:"/etc/localtime",mountPath:"/etc/localtime"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:Number(e.customHttpPort)}],ports:[{published:Number(e.smtpRelay),target:25,protocol:"tcp"},{published:Number(e.pop3Port),target:110,protocol:"tcp"},{published:Number(e.imapPort),target:143,protocol:"tcp"},{published:Number(e.smtpPort),target:465,protocol:"tcp"},{published:Number(e.smtpsPort),target:587,protocol:"tcp"},{published:Number(e.secureImapPort),target:993,protocol:"tcp"},{published:Number(e.securePop3Port),target:995,protocol:"tcp"},{published:Number(e.emailFilterPort),target:4190,protocol:"tcp"}]}}),{services:t}}},{slug:"posteria",meta:{name:"Posteria",description:"Posteria is a self-hosted, web-based media poster management system. It lets you organise and store custom artwork for your movies, TV shows, seasons, and collections. Posters can be uploaded from local files or URLs, pulled automatically from TMDB, TVDB, and Fanart.tv, or synced directly from your Plex server \u2014 with scheduled auto-imports and a full-screen poster wall for browsing your library.",instructions:"After deployment, open your service URL to reach the Posteria web UI.",changeLog:[{date:"2026-06-24",description:"Initial release (v1.7.5)"}],links:[{label:"Website",url:"https://posteria.app"},{label:"GitHub",url:"https://github.com/jeremehancock/Posteria"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","authUsername"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"posteria"},appServiceImage:{type:"string",title:"App Service Image",default:"bozodev/posteria:1.7.5"},authUsername:{type:"string",title:"Admin Username",default:"admin"},authPassword:{type:"string",title:"Admin Password",description:"Leave empty to auto-generate it."}}},benefits:[{title:"Centralised Poster Library",description:"Keep all your movie, TV show, season, and collection artwork in one self-hosted location, accessible from any browser."},{title:"Plex Integration",description:"Sync posters directly from your Plex server and push custom artwork back with a single click or on an automated schedule."},{title:"Multi-Source Artwork Import",description:"Pull artwork automatically from TMDB, TVDB, and Fanart.tv so you always have the best available poster for every title."}],features:[{title:"Poster Wall",description:"Browse your entire poster collection in a full-screen, mobile- responsive wall view with fast fuzzy search."},{title:"Upload from File or URL",description:"Add posters by uploading local images (JPG, JPEG, PNG, WebP) or pasting a direct image URL."},{title:"Scheduled Auto-Import",description:"Configure a cron-style schedule to automatically pull new artwork from connected sources without manual intervention."},{title:"Plex Poster Sync",description:"Import the current poster from Plex for any item, or push a chosen poster back to update your Plex library artwork."},{title:"Orphan Detection",description:"Identify poster files that no longer match any media item in your library and clean them up in bulk."},{title:"PWA Support",description:"Install Posteria as a Progressive Web App on mobile or desktop for a native app-like experience."}],tags:["Media","Plex","Posters","Media Management","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.authPassword||v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["AUTH_USERNAME=".concat(e.authUsername),"AUTH_PASSWORD=".concat(a),"PUID=1000","PGID=1000","TZ=UTC"].join("\n"),mounts:[{type:"volume",name:"posters",mountPath:"/config/posters"},{type:"volume",name:"data",mountPath:"/config/data"}]}}),{services:t}}},{slug:"posterizarr",meta:{name:"Posterizarr",description:"Posterizarr automates creation and management of textless posters for Plex, Jellyfin, and Emby libraries. This template deploys the official Posterizarr container with persistent paths for config and generated assets.",instructions:"After deployment, open your domain and complete setup in the web UI. Mounts are already configured for /config, /assets, /assetsbackup, and /manualassets.",changeLog:[{date:"2026-04-07",description:"Initial template release"},{date:"2026-05-05",description:"Version bumped to 2.2.40"}],links:[{label:"Website",url:"https://fscorrupt.github.io/posterizarr/"},{label:"Documentation",url:"https://fscorrupt.github.io/posterizarr/installation/"},{label:"GitHub",url:"https://github.com/fscorrupt/posterizarr"},{label:"Container registry",url:"https://github.com/fscorrupt/posterizarr/pkgs/container/posterizarr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"posterizarr"},appServiceImage:{type:"string",title:"Posterizarr Image",default:"ghcr.io/fscorrupt/posterizarr:2.2.40"},timezone:{type:"string",title:"Timezone",default:"Europe/Berlin"},runTime:{type:"string",title:"RUN_TIME",default:"disabled",description:"Keep disabled for always-on mode"},arrWaitTime:{type:"number",title:"ARR_WAIT_TIME (seconds)",default:300},disableUi:{type:"boolean",title:"Disable UI",default:!1}}},benefits:[{title:"Automated poster workflows",description:"Build and refresh media artwork automatically from your configured sources."},{title:"Works with major media servers",description:"Supports Plex, Jellyfin, and Emby workflows in one application."},{title:"Persistent asset storage",description:"Keeps config and generated poster assets across restarts and upgrades."}],features:[{title:"Web UI control panel",description:"Configure providers, monitor runs, and manage poster processing in-browser."},{title:"External automation hooks",description:"Integrates with Sonarr, Radarr, and Tautulli automation flows."},{title:"Multiple asset directories",description:"Separate mounts for active assets, backups, and manual asset overrides."}],tags:["Media","Posters","Plex","Jellyfin","Emby","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a,i,o=[],n=null!==(i=e.arrWaitTime)&&void 0!==i?i:300,r=(null===(t=e.runTime)||void 0===t?void 0:t.trim())||"disabled",s=(null===(a=e.timezone)||void 0===a?void 0:a.trim())||"UTC",c=e.disableUi?["DISABLE_UI=true"]:[];return o.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TZ=".concat(s),"TERM=xterm","RUN_TIME=".concat(r),"ARR_WAIT_TIME=".concat(n),"GENESIS_JWT_SECRET=".concat(y(64)),"APP_PORT=8000"].concat(Je(c)).join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"logs",mountPath:"/config/Logs"},{type:"volume",name:"temp",mountPath:"/config/temp"},{type:"volume",name:"assets",mountPath:"/assets"},{type:"volume",name:"assetsbackup",mountPath:"/assetsbackup"},{type:"volume",name:"manualassets",mountPath:"/manualassets"}]}}),{services:o}}},{slug:"postfixadmin",meta:{name:"PostfixAdmin",description:"PostfixAdmin is a robust, web-based administration interface for managing mail servers using Postfix. It allows you to easily manage virtual domains, mailboxes, and aliases through an intuitive and flexible interface. PostfixAdmin supports advanced features like quota management, domain statistics, and DKIM integration, making it an ideal tool for administrators of self-hosted email solutions.",instructions:'To create an admin user, run the following commands in the PostfixAdmin container "chmod +x /var/www/html/scripts/postfixadmin-cli" and "/var/www/html/scripts/postfixadmin-cli admin add". This will create a new admin user for accessing the PostfixAdmin interface.',changeLog:[{date:"2024-12-02",description:"Template Release"},{date:"2025-02-28",description:"Version bumped to 3.3.15-apache"},{date:"2025-12-29",description:"Version bumped to 4.0.1-apache"}],links:[{label:"Documentation",url:"https://postfix-configuration.readthedocs.io/en/latest/postfixadmin/"},{label:"GitHub",url:"https://github.com/postfixadmin/postfixadmin"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","smtpServer","smtpPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"postfixadmin"},appServiceImage:{type:"string",title:"App Service Image",default:"postfixadmin:4.0.1-apache"},smtpServer:{type:"string",title:"SMTP Server",default:"localhost"},smtpPort:{type:"string",title:"SMTP Port",default:"25"}}},benefits:[{title:"Simplified Email Administration",description:"PostfixAdmin provides an easy-to-use web interface for managing mail servers, saving time and effort for administrators."},{title:"Advanced Mail Management",description:"Manage virtual domains, aliases, quotas, and DKIM settings with comprehensive support for advanced features."},{title:"Self-Hosted Solution",description:"Stay in control of your email infrastructure with a self-hosted solution that ensures privacy and customization."}],features:[{title:"Virtual Domain Management",description:"Easily create and manage virtual domains and mailboxes through the PostfixAdmin interface."},{title:"Quota and Alias Support",description:"Set mailbox quotas and create email aliases for efficient email handling."},{title:"DKIM and SPF Integration",description:"Enhance email authentication with built-in support for DKIM and SPF configuration."},{title:"Domain Statistics",description:"Monitor email usage and domain statistics directly from the PostfixAdmin interface."}],tags:["Email Administration","Self-Hosted","Mail Server","Postfix"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["POSTFIXADMIN_DB_TYPE=mysqli","POSTFIXADMIN_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"POSTFIXADMIN_DB_USER=mysql","POSTFIXADMIN_DB_PASSWORD=".concat(a),"POSTFIXADMIN_DB_NAME=$(PROJECT_NAME)","POSTFIXADMIN_SMTP_SERVER=".concat(e.smtpServer),"POSTFIXADMIN_SMTP_PORT=".concat(e.smtpPort),"POSTFIXADMIN_ENCRYPT=md5crypt","POSTFIXADMIN_DKIM=YES","POSTFIXADMIN_DKIM_ALL_ADMINS=NO"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html/"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),password:a}}),{services:t}}},{slug:"postgres-backup",meta:{name:"Postgres Backup",description:"The postgres-backup-s3 app is a powerful tool designed to backup your PostgreSQL databases to Amazon S3. It supports periodic backups, allowing you to schedule automatic backups at your convenience. This ensures that your data is always safe and can be restored whenever needed. The app also offers the option to backup all available databases at once, creating a single archive with a timestamp for easy identification. For added security, the app provides an encryption feature. By setting an encryption password, your backup can be encrypted and only decrypted with the correct password. This app is perfect for those who want to ensure their PostgreSQL databases are securely backed up in a reliable and efficient manner.",instructions:"In order to test that you configured it properly, remove the SCHEDULE variable from the environment, click deploy and check the logs. If everything works fine, you can add the SCHEDULE variable back. You can read more about the environment variables here: https://github.com/schickling/dockerfiles/tree/master/postgres-backup-s3",changeLog:[{date:"2022-08-05",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/schickling/dockerfiles/tree/master/postgres-backup-s3"},{label:"Github",url:"https://github.com/schickling/dockerfiles/tree/master/postgres-backup-s3"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","host","port","user","password","accessKey","secretKey","bucket","prefix","region","endpoint","schedule"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"postgres-backup"},appServiceImage:{type:"string",title:"App Service Image",default:"easypanel/postgres-backup-s3"},host:{type:"string",title:"Postgres Host"},port:{type:"string",title:"Postgres Port",default:"5432"},user:{type:"string",title:"Postgres User",default:"postgres"},password:{type:"string",title:"Postgres Password"},accessKey:{type:"string",title:"S3 Access Key"},secretKey:{type:"string",title:"S3 Secret Key"},bucket:{type:"string",title:"S3 Bucket"},prefix:{type:"string",title:"S3 Prefix",default:"backup"},region:{type:"string",title:"S3 Region",default:"us-west-1"},endpoint:{type:"string",title:"S3 Endpoint"},schedule:{type:"string",title:"Schedule",default:"@daily",description:"You can use CRON syntax"}}},benefits:[{title:"Secure Database Backup",description:"The app provides a secure way to backup your PostgreSQL databases to S3. It supports encryption, allowing you to set a password to encrypt your backup for an added layer of security."},{title:"Automatic Backups",description:"The app supports automatic periodic backups. You can set a schedule for the app to automatically backup your databases, ensuring your data is always safe and up-to-date."},{title:"Comprehensive Backup Options",description:"The app allows you to backup all available databases or select specific ones. This gives you the flexibility to choose what data to backup."}],features:[{title:"PostgreSQL to S3 Backup",description:"The app allows you to backup your PostgreSQL databases to S3. It supports both Docker and Docker Compose usage for flexibility and ease of use."},{title:"Encryption",description:"The app supports encryption for your backups. You can set an encryption password to secure your data. The backup can be decrypted using openssl aes-256-cbc."},{title:"Scheduling",description:"The app allows you to set a schedule for automatic backups. This ensures your databases are regularly backed up without manual intervention."},{title:"Backup All Databases",description:"The app allows you to backup all available databases. This feature ensures that no data is left unprotected."},{title:"S3 Endpoint Configuration",description:"The app allows you to specify an alternate S3 endpoint. This is useful if you're using an S3 Compatible Storage Provider."}],tags:["Databases","Backup"],logo:null,screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["POSTGRES_HOST=".concat(e.host),"POSTGRES_PORT=".concat(e.port),"POSTGRES_USER=".concat(e.user),"POSTGRES_PASSWORD=".concat(e.password),"POSTGRES_BACKUP_ALL=true","S3_ACCESS_KEY_ID=".concat(e.accessKey),"S3_SECRET_ACCESS_KEY=".concat(e.secretKey),"S3_BUCKET=".concat(e.bucket),"S3_PREFIX=".concat(e.prefix),"S3_REGION=".concat(e.region),"S3_ENDPOINT=".concat(e.endpoint),"S3_S3V4=yes","SCHEDULE=".concat(e.schedule)].join("\n")}}),{services:t}}},{slug:"postgresus",meta:{name:"PostgresUS",description:"PostgresUS is a self-hosted PostgreSQL management and administration tool that provides a web-based interface for managing PostgreSQL databases. The application offers a user-friendly dashboard for database operations, query execution, schema management, and database administration tasks. With its intuitive interface, PostgresUS makes it easy to interact with PostgreSQL databases without requiring command-line tools or complex database management software. The application supports multiple database connections, query building, data visualization, and common database administration operations. Perfect for database administrators who need a simple web interface for PostgreSQL management, developers looking for a lightweight database tool, teams requiring a self-hosted alternative to cloud database management platforms, or anyone who wants a convenient way to manage PostgreSQL databases through a browser.",instructions:null,changeLog:[{date:"2025-12-15",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to 2.15.3"}],links:[{label:"Docker Hub",url:"https://hub.docker.com/r/rostislavdugin/postgresus"},{label:"GitHub",url:"https://github.com/RostislavDugin/postgresus"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"postgresus"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/rostislavdugin/charts/postgresus:2.15.3"}}},benefits:[{title:"Web-Based Database Management",description:"Manage PostgreSQL databases through an intuitive web interface without installing desktop applications or using command-line tools."},{title:"Self-Hosted Control",description:"Keep your database management tools on your own infrastructure with complete control over access and data."},{title:"Easy Database Access",description:"Connect to and manage multiple PostgreSQL databases from a single unified interface."},{title:"Simple Deployment",description:"Quick setup with minimal configuration required to start managing your PostgreSQL databases."}],features:[{title:"Database Dashboard",description:"Visual dashboard for monitoring database status, connections, and performance metrics."},{title:"Query Execution",description:"Execute SQL queries directly through the web interface with syntax highlighting and result visualization."},{title:"Schema Management",description:"Browse and manage database schemas, tables, indexes, and other database objects."},{title:"Data Visualization",description:"View and export query results in various formats for analysis and reporting."},{title:"Multiple Connections",description:"Manage connections to multiple PostgreSQL databases from a single interface."},{title:"Persistent Storage",description:"Data and configuration are stored persistently ensuring settings and connections are preserved."}],tags:["Database","PostgreSQL","Database Management","Self-Hosted","Admin Tool"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4005}],mounts:[{type:"volume",name:"data",mountPath:"/postgresus-data"}]}}),{services:t}}},{slug:"postiz",meta:{name:"Postiz",description:"Postiz is a modern, self-hosted social media management platform that helps you schedule, publish, and analyze content across multiple social networks. It provides a unified dashboard for managing posts, tracking engagement, and optimizing your social media strategy.",instructions:"You can modify the settings by adding the env variables provided.",changeLog:[{date:"2025-04-28",description:"Initial release"},{date:"2025-07-24",description:"Version bumped to v1.65.7"},{date:"2025-12-29",description:"Version bumped to v2.11.3"},{date:"2026-02-24",description:"Version bumped to v2.19.0"},{date:"2026-05-05",description:"Version bumped to v2.21.7"}],links:[{label:"Website",url:"https://postiz.com"},{label:"Documentation",url:"https://docs.postiz.com"},{label:"GitHub",url:"https://github.com/postiz/postiz"},{label:"Docker Hub",url:"https://hub.docker.com/r/postiz/postiz"},{label:"Environment Variables",url:"https://github.com/gitroomhq/postiz-app/blob/main/.env.example"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"postiz"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/gitroomhq/postiz-app:v2.21.7"}}},benefits:[{title:"Centralized Management",description:"Manage all your social media accounts from a single dashboard"},{title:"Content Scheduling",description:"Plan and schedule posts across multiple platforms in advance"},{title:"Analytics & Insights",description:"Track performance and engagement metrics across all platforms"},{title:"Team Collaboration",description:"Work together with your team on content creation and approval"}],features:[{title:"Multi-platform Support",description:"Connect and manage accounts on major social networks"},{title:"Content Calendar",description:"Visual calendar for planning and scheduling posts"},{title:"Media Library",description:"Organize and manage your media assets"},{title:"Analytics Dashboard",description:"Comprehensive analytics and reporting tools"},{title:"Content Templates",description:"Create and save reusable content templates"},{title:"Approval Workflows",description:"Set up custom approval processes for content"},{title:"API Access",description:"Integrate with other tools through RESTful API"}],tags:["Social Media","Content Management","Scheduling","Analytics","Marketing"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(16);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DATABASE_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"REDIS_URL=redis://:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"MAIN_URL=https://$(PRIMARY_DOMAIN)","FRONTEND_URL=https://$(PRIMARY_DOMAIN)","NEXT_PUBLIC_BACKEND_URL=https://$(PRIMARY_DOMAIN)/api","JWT_SECRET=".concat(o),"NOT_SECURED=true","TZ=UTC","PORT=3000"].join("\n"),mounts:[{type:"volume",name:"postiz-data",mountPath:"/app/data"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a}}),{services:t}}},{slug:"powerdns-admin",meta:{name:"PowerDNS-Admin",description:"PowerDNS-Admin is a comprehensive web interface for PowerDNS with a plethora of advanced features. It offers forward and reverse zone management, zone templating, and user management with role-based access control. The app also provides zone-specific access control and activity logging. It supports various authentication methods including Local User, SAML, LDAP, and OAuth with Google, GitHub, Azure, and OpenID. It also supports two-factor authentication (TOTP). PowerDNS-Admin is equipped with PDNS Service Configuration & Statistics Monitoring and supports the DynDNS 2 protocol. It makes IPv6 PTR record editing easy and provides an API for zone and record management. The app also fully supports IDN/Punycode. PowerDNS-Admin can be run in several ways, with Docker being the quickest.",instructions:null,changeLog:[{date:"2022-11-28",description:"first release"}],links:[{label:"Github",url:"https://github.com/PowerDNS-Admin/PowerDNS-Admin"},{label:"Documentation",url:"https://github.com/PowerDNS-Admin/PowerDNS-Admin/wiki"}],contributors:[{name:"Migu2k",url:"https://github.com/migu2k"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"powerdns-admin"},appServiceImage:{type:"string",title:"App Service Image",default:"ngoduykhanh/powerdns-admin:latest"}}},benefits:[{title:"Advanced DNS Management",description:"PowerDNS-Admin provides forward and reverse zone management, allowing you to easily manage your DNS records."},{title:"User and Access Control",description:"With user management and role-based access control, you can ensure that only authorized individuals have access to specific zones."},{title:"Activity Logging",description:"Keep track of all activities within your DNS management with the activity logging feature."},{title:"Secure Authentication",description:"PowerDNS-Admin supports various authentication methods including Local User, SAML, LDAP, OAuth, and two-factor authentication for enhanced security."},{title:"Service Monitoring",description:"Stay updated with your PDNS service configuration and statistics with the monitoring feature."}],features:[{title:"Zone Management",description:"PowerDNS-Admin provides forward and reverse zone management, allowing you to easily manage your DNS records."},{title:"User Management",description:"Manage users and their access with role-based access control. You can also provide zone-specific access control."},{title:"Activity Logging",description:"Keep track of all activities within your DNS management with the activity logging feature."},{title:"Authentication",description:"PowerDNS-Admin supports various authentication methods including Local User, SAML, LDAP, OAuth, and two-factor authentication."},{title:"Service Monitoring",description:"Stay updated with your PDNS service configuration and statistics with the monitoring feature."},{title:"API for Zone and Record Management",description:"PowerDNS-Admin provides an API for zone and record management among other features."},{title:"IDN/Punycode Support",description:"PowerDNS-Admin provides full IDN/Punycode support."}],tags:["DNS Management","Web Interface","User Management","API"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"pda-data",mountPath:"/data"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"poznote",meta:{name:"Poznote",description:"Poznote is a lightweight, self-hosted note-taking application designed for personal knowledge management and quick note capture. It provides a simple, clean interface for creating, organizing, and managing notes without unnecessary complexity. Poznote uses SQLite for data storage, making it easy to deploy without requiring external database setup. The application features secure authentication, markdown support, and fast search capabilities to help you find information quickly. All your notes are stored locally in a SQLite database file, ensuring privacy and complete control over your data. Perfect for individuals who want a straightforward, fast, and private note-taking solution that can be accessed from any browser.",instructions:null,changeLog:[{date:"2025-11-18",description:"Template Release"}],links:[{label:"Website",url:"https://poznote.com"},{label:"Documentation",url:"https://github.com/timothepoznanski/poznote?tab=readme-ov-file#table-of-content"},{label:"Github",url:"https://github.com/TimothePoznanski/poznote"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"poznote"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/timothepoznanski/poznote:1.9.0"},username:{type:"string",title:"Username",default:"admin"},password:{type:"string",title:"Password",default:""}}},benefits:[{title:"Simple & Fast",description:"Minimalist interface focused on quick note capture and retrieval. No bloat, just the essentials you need for effective note-taking."},{title:"Self-Hosted Privacy",description:"All notes stored locally in SQLite database on your server. Your thoughts and ideas remain completely private and under your control."},{title:"Zero Database Setup",description:"Uses SQLite for storage - no external database configuration required. Simple deployment with everything contained in one application."}],features:[{title:"Quick Note Capture",description:"Create and edit notes quickly with a clean, distraction-free interface designed for fast note-taking."},{title:"Secure Authentication",description:"Password-protected access ensures only authorized users can view and manage your notes."},{title:"SQLite Storage",description:"Reliable, lightweight SQLite database stores all your notes efficiently without requiring external database servers."},{title:"Search Functionality",description:"Quickly find notes with built-in search capabilities to locate information when you need it."},{title:"Markdown Support",description:"Write notes in markdown format for structured, formatted content that's easy to read and portable."},{title:"Web-Based Access",description:"Access your notes from any device with a web browser - no desktop app installation required."}],tags:["Notes","Note Taking","Knowledge Management","Markdown","SQLite"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SQLITE_DATABASE=/var/www/html/data/database/poznote.db","POZNOTE_USERNAME=".concat(e.username),"POZNOTE_PASSWORD=".concat(e.password),"HTTP_WEB_PORT=80"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html/data"}]}}),{services:t}}},{slug:"prestashop",meta:{name:"Prestashop",description:"Prestashop is an open-source e-commerce platform that empowers businesses to build and manage their online stores. It provides a user-friendly interface, a robust product catalog system, order management, and customizable themes, making it an ideal choice for merchants of all sizes. Prestashop supports multiple payment gateways, multilingual and multi-currency features, and SEO optimization to ensure a global reach and enhanced online visibility. Additionally, it offers a vibrant marketplace for modules and themes, enabling seamless customization and integration with third-party services.",instructions:"Configure the database during the installation wizard. Use the provided domains for the admin panel and storefront setup.",changeLog:[{date:"2024-11-20",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 8.2.1"},{date:"2025-12-29",description:"Version bumped to 9.0.2"},{date:"2026-02-24",description:"Version bumped to 9.0.3"},{date:"2026-05-05",description:"Version bumped to 9.1.1"}],links:[{label:"Website",url:"https://www.prestashop.com"},{label:"Documentation",url:"https://devdocs.prestashop.com"},{label:"Github",url:"https://github.com/PrestaShop/PrestaShop"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"prestashop"},appServiceImage:{type:"string",title:"App Service Image",default:"prestashop/prestashop:9.1.1"}}},benefits:[{title:"Comprehensive E-commerce Solution",description:"Prestashop provides all the tools needed to launch and manage a successful online store, including product catalog management, payment integration, and order processing."},{title:"Customizable Themes and Modules",description:"Choose from a wide variety of themes and modules available in the Prestashop marketplace to create a unique shopping experience tailored to your brand."},{title:"Multilingual and Multi-currency Support",description:"Expand your business globally with built-in support for multiple languages and currencies, ensuring a seamless shopping experience for customers worldwide."},{title:"SEO-Friendly",description:"Prestashop includes built-in SEO optimization tools to improve your store's visibility on search engines and attract more customers."},{title:"Active Community",description:"Join a vibrant community of developers, merchants, and contributors who provide ongoing support and innovation for the Prestashop ecosystem."}],features:[{title:"Product Catalog Management",description:"Organize and display products with categories, attributes, and variations, providing customers with detailed and engaging product listings."},{title:"Secure Payment Integration",description:"Prestashop supports multiple secure payment gateways, allowing customers to complete transactions safely and conveniently."},{title:"Analytics and Reporting",description:"Gain insights into your store's performance with built-in analytics and reporting tools, helping you make informed business decisions."},{title:"Mobile-Responsive Design",description:"Ensure an optimized shopping experience across devices with mobile-responsive themes and layouts."},{title:"Open Source",description:"Prestashop is open-source, providing full control and flexibility to customize your store according to your specific needs."}],tags:["E-commerce","Web Development","Online Store","CMS"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_SERVER=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"DB_NAME=$(PROJECT_NAME)","DB_USER=root","DB_PASSWD=".concat(a),"PS_DOMAIN=$(PRIMARY_DOMAIN)","PS_FOLDER_ADMIN=admin4577","PS_FOLDER_INSTALL=install4577"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/install4577",port:80},{host:"$(EASYPANEL_DOMAIN)",path:"/admin4577",port:80},{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),rootPassword:a}}),{services:t}}},{slug:"privatebin",meta:{name:"PrivateBin",description:"PrivateBin is a minimalist, open-source, self-hosted pastebin solution designed for secure and private data sharing. It features end-to-end encryption, ensuring that your shared content remains confidential. With its simple interface and focus on privacy, PrivateBin is an excellent tool for individuals and teams who value secure communication.",instructions:null,changeLog:[{date:"2024-11-27",description:"Template Release"},{date:"2025-02-28",description:"Version bumped to 1.7.6"},{date:"2025-07-24",description:"Version bumped to 1.7.8"},{date:"2025-12-29",description:"Version bumped to 2.0.3"},{date:"2026-05-05",description:"Version bumped to 2.0.4"}],links:[{label:"Website",url:"https://privatebin.info/"},{label:"Github",url:"https://github.com/PrivateBin/PrivateBin"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"privatebin"},appServiceImage:{type:"string",title:"App Service Image",default:"privatebin/nginx-fpm-alpine:2.0.4"}}},benefits:[{title:"Secure Data Sharing",description:"Share sensitive information confidently with built-in end-to-end encryption."},{title:"Self-Hosted Solution",description:"Maintain full control over your data with a self-hosted setup."},{title:"Minimalist Design",description:"Enjoy a clean and simple interface for effortless usage."}],features:[{title:"End-to-End Encryption",description:"Content is encrypted before it reaches the server, ensuring privacy."},{title:"Expiry Options",description:"Set expiration times for shared content to control its availability."},{title:"Self-Destructing Pastes",description:"Enable automatic deletion after the first view for sensitive data."},{title:"No Metadata Storage",description:"PrivateBin does not store metadata, enhancing user privacy."}],tags:["Secure Sharing","Self-Hosted","Privacy","Pastebin"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:[].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/srv/data"},{type:"file",content:'\n;<?php http_response_code(403); /*\n;\n; config file for PrivateBin\n;\n; An explanation of each setting can be found online at https://github.com/PrivateBin/PrivateBin/wiki/Configuration.\n;\n\n[main]\n; (optional) set a project name to be displayed on the website\n; name = "PrivateBin"\n\n; enable or disable the discussion feature, defaults to true\ndiscussion = true\n\n; preselect the discussion feature, defaults to false\nopendiscussion = false\n\n; enable or disable the password feature, defaults to true\npassword = true\n\n; enable or disable the file upload feature, defaults to false\nfileupload = true\n\n; preselect the burn-after-reading feature, defaults to false\nburnafterreadingselected = true\n\n; which display mode to preselect by default, defaults to "plaintext"\n; make sure the value exists in [formatter_options]\ndefaultformatter = "plaintext"\n\n; (optional) set a syntax highlighting theme, as found in css/prettify/\n; syntaxhighlightingtheme = "sons-of-obsidian"\n\n; size limit per paste or comment in bytes, defaults to 2 Mebibytes\nsizelimit = 4194304\n\n; template to include, default is "bootstrap" (tpl/bootstrap.php)\ntemplate = "bootstrap"\n\n; (optional) notice to display\n; notice = "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service."\n\n; by default PrivateBin will guess the visitor\'s language based on the browser\'s\n; settings. Optionally you can enable the language selection menu, which uses\n; a session cookie to store the choice until the browser is closed.\nlanguageselection = false\n\n; set the language your install defaults to, defaults to English\n; if this is set and language selection is disabled, this will be the only language\n; languagedefault = "en"\n\n; (optional) URL shortener address to offer after a new paste is created\n; it is suggested to only use this with self-hosted shorteners as this will leak\n; the paste\'s encryption key\n; urlshortener = "https://shortener.example.com/api?link="\n\n; (optional) Let users create a QR code for sharing the paste URL with one click.\n; It works both when a new paste is created and when you view a paste.\n; qrcode = true\n\n; (optional) IP-based icons are a weak mechanism to detect if a comment was from\n; a different user when the same username was used in a comment. It might be\n; used to get the IP of a non-anonymous comment poster if the server salt is\n; leaked and a SHA256 HMAC rainbow table is generated for all (relevant) IPs.\n; Can be set to one of these values: none / vizhash / identicon (default).\n; icon = none\n\n; Content Security Policy headers allow a website to restrict what sources are\n; allowed to be accessed in its context. You need to change this if you added\n; custom scripts from third-party domains to your templates, e.g. tracking\n; scripts or run your site behind certain DDoS-protection services.\n; Check the documentation at https://content-security-policy.com/\n; Note: If you use a bootstrap theme, you can remove the allow-popups from the sandbox restrictions.\n; By default, this disallows loading images from third-party servers, e.g., when they are embedded in pastes. If you wish to allow that, you can adjust the policy here. See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-it-load-embedded-images for details.\n; cspheader = "default-src \'none\'; manifest-src \'self\'; connect-src *; script-src \'self\' \'unsafe-eval\'; style-src \'self\'; font-src \'self\'; img-src \'self\' data: blob:; media-src blob:;
1 object-src blob:; Referrer-Policy: \'no-referrer\'; sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals"\n\n; stay compatible with PrivateBin Alpha 0.19, less secure\n; if enabled will use base64.js version 1.7 instead of 2.1.9 and sha1 instead of\n; sha256 in HMAC for the deletion token\nzerobincompatibility = false\n\n[expire]\n; expire value that is selected per default\n; make sure the value exists in [expire_options]\ndefault = "1day"\n\n[expire_options]\n; Set each one of these to the number of seconds in the expiration period,\n; or 0 if it should never expire\n5min = 300\n10min = 600\n1hour = 3600\n1day = 86400\n1week = 604800\n; Well this is not *exactly* one month, it\'s 30 days:\n1month = 2592000\n1year = 31536000\nnever = 0\n\n[formatter_options]\n; Set available formatters, their order, and their labels\nplaintext = "Plain Text"\nsyntaxhighlighting = "Source Code"\nmarkdown = "Markdown"\n\n[traffic]\n; time limit between calls from the same IP address in seconds\n; Set this to 0 to disable rate limiting.\nlimit = 10\n\n; (optional) if your website runs behind a reverse proxy or load balancer,\n; set the HTTP header containing the visitor\'s IP address, i.e., X_FORWARDED_FOR\nheader = "X_FORWARDED_FOR"\n\n; directory to store the traffic limits in\ndir = PATH "data"\n\n[purge]\n; minimum time limit between two purgings of expired pastes, it is only\n; triggered when pastes are created\n; Set this to 0 to run a purge every time a paste is created.\nlimit = 300\n\n; maximum amount of expired pastes to delete in one purge\n; Set this to 0 to disable purging. Set it higher if you are running a large\n; site\nbatchsize = 30\n\n; directory to store the purge limit in\ndir = PATH "data"\n\n[model]\n; name of data model class to load and directory for storage\n; the default model "Filesystem" stores everything in the filesystem\nclass = Filesystem\n\n[model_options]\ndir = PATH "data"\n\n;[model]\n; example of DB configuration for MySQL\n;class = Database\n;[model_options]\n;dsn = "mysql:host=localhost;dbname=privatebin;charset=UTF8"\n;tbl = "privatebin_" ; table prefix\n;usr = "privatebin"\n;pwd = "Z3r0P4ss"\n;opt[12] = true ; PDO::ATTR_PERSISTENT\n\n;[model]\n; example of DB configuration for SQLite\n;class = Database\n;[model_options]\n;dsn = "sqlite:" PATH "data/db.sq3"\n;usr = null\n;pwd = null\n;opt[12] = true ; PDO::ATTR_PERSISTENT\n',mountPath:"/srv/cfg/conf.php"}]}}),{services:t}}},{slug:"projectsend",meta:{name:"ProjectSend",description:"ProjectSend is a self-hosted file sharing platform designed to securely share files with clients and collaborators. It provides a user-friendly interface, supports advanced user management, and allows for detailed activity tracking. With ProjectSend, you can maintain control over your files and ensure secure access for authorized users.",instructions:"After Connecting with the DB, configure the URL to be https in next screen of installation wizard and run chmod 755 /app/www/public/emails in the terminal after the installation.",changeLog:[{date:"2025-02-14",description:"Template Release"},{date:"2025-12-29",description:"Version bumped to version-r1945"},{date:"2026-05-05",description:"Version bumped to version-r2029"}],links:[{label:"Website",url:"https://www.projectsend.org/"},{label:"Github",url:"https://github.com/projectsend/projectsend"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"projectsend"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/projectsend:version-r2029"}}},benefits:[{title:"Secure File Sharing",description:"ProjectSend allows you to securely upload and share files with clients and collaborators through a centralized platform."},{title:"Self-Hosted Solution",description:"Stay in control of your files with a self-hosted service, ensuring privacy and flexibility."},{title:"Advanced User Management",description:"Manage user roles, permissions, and access levels for better security and organization."}],features:[{title:"Custom User Roles",description:"Assign specific roles and permissions to users for tailored access control."},{title:"File Management",description:"Organize and categorize files with ease, supporting efficient retrieval and collaboration."},{title:"Activity Tracking",description:"Monitor user activity and file access with detailed logs for accountability."},{title:"Multi-Language Support",description:"Access the platform in multiple languages to cater to diverse user bases."}],tags:["File Sharing","Self-Hosted","Secure Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"config",mountPath:"/config"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"promethus",meta:{name:"Prometheus",description:"Prometheus is an open-source monitoring and alerting toolkit designed for reliability and scalability. It collects metrics from configured targets at specified intervals, evaluates rule expressions, and triggers alerts when specified conditions are observed. Prometheus stores all data as time-series, making it ideal for monitoring application and system performance over time. Its powerful query language, PromQL, allows for real-time data analysis, and its flexible integrations support various exporters and service discovery mechanisms. Prometheus can also integrate with alerting tools like Alertmanager to send notifications via email, Slack, or other channels. With native support for Docker, Kubernetes, and other container platforms, Prometheus provides deep visibility into modern infrastructure and services.",instructions:null,changeLog:[{date:"2024-10-13",description:"Initial Prometheus release"},{date:"2025-02-28",description:"Version bumped to v3.2.1"},{date:"2025-07-24",description:"Version bumped to v3.5.0"},{date:"2025-12-29",description:"Version bumped to v3.8.1"}],links:[{label:"Github",url:"https://github.com/prometheus/prometheus"},{label:"Documentation",url:"https://prometheus.io/docs/introduction/overview/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"prometheus"},appServiceImage:{type:"string",title:"App Service Image",default:"prom/prometheus:v3.8.1"}}},benefits:[{title:"Scalable Monitoring",description:"Prometheus excels at monitoring large-scale systems by collecting metrics from distributed applications and systems, making it a powerful tool for cloud-native environments."},{title:"Time-Series Data Storage",description:"Prometheus stores all data as time-series metrics, enabling detailed historical analysis of system behavior and trends."},{title:"Flexible Alerting",description:"With integrated support for Alertmanager, Prometheus can send alerts through various channels like email, Slack, and PagerDuty when issues arise."},{title:"Powerful Querying with PromQL",description:"Prometheus includes a flexible and powerful query language, PromQL, for analyzing time-series data in real-time, enabling deep insights into system performance."},{title:"Service Discovery",description:"Prometheus supports various service discovery mechanisms (including Kubernetes, Consul, and DNS) to automatically track and monitor dynamic environments."}],features:[{title:"Metric Collection",description:"Prometheus scrapes metrics from a wide range of targets, storing them as time-series data for analysis and alerting."},{title:"Custom Dashboards",description:"Use Prometheus with tools like Grafana to create detailed custom dashboards for visualizing metrics and performance data."},{title:"Alerting",description:"Set up alerts using Alertmanager to get notified via various channels like email, Slack, or PagerDuty when specific conditions are met."}
1,{title:"PromQL Query Language",description:"Leverage PromQL, a powerful query language, to extract and analyze time-series data in real time."},{title:"Container and Cloud Integration",description:"Prometheus integrates seamlessly with Docker, Kubernetes, and other cloud-native platforms to monitor microservices, containers, and distributed systems."},{title:"Exporters",description:"Utilize Prometheus exporters to collect metrics from various applications, databases, and system components, expanding Prometheus' monitoring capabilities."}],tags:["Monitoring","Time-Series","Alerting","PromQL","Cloud-Native"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"promethus_data",mountPath:"/prometheus"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:9090}]}}),{services:t}}},{slug:"prowlarr",meta:{name:"Prowlarr",description:"Prowlarr is a powerful indexer manager and proxy designed to integrate with various PVR applications. It is built on the popular arr .net/reactjs base stack, offering a seamless experience for users. Prowlarr supports the management of both Torrent Trackers and Usenet Indexers, eliminating the need for per app Indexer setup. It works in harmony with LazyLibrarian, Lidarr, Mylar3, Radarr, Readarr, and Sonarr, providing comprehensive management of your indexers. The app includes features such as Usenet support for 24 indexers natively, Torrent support for over 500 trackers, support for custom YML definitions, Indexer Sync to various apps, manual searching of Trackers & Indexers, and much more. Prowlarr also provides Indexer health and status notifications and supports multiple releases pushing directly to your download clients.",instructions:null,changeLog:[{date:"2022-12-26",description:"first release"},{date:"2025-02-28",description:"Version bumped to 1.31.2"},{date:"2025-07-24",description:"Version bumped to 1.37.0"}],links:[{label:"Website",url:"https://prowlarr.com/"},{label:"Documentation",url:"https://wiki.servarr.com/prowlarr"},{label:"Github",url:"https://github.com/Prowlarr/Prowlarr/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"prowlarr"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/prowlarr:1.37.0"}}},benefits:[{title:"Seamless Integration",description:"Prowlarr integrates effortlessly with various PVR apps such as LazyLibrarian, Lidarr, Mylar3, Radarr, Readarr, and Sonarr. This allows for a streamlined and efficient management of your indexers."},{title:"Comprehensive Management",description:"With Prowlarr, you can manage both Torrent Trackers and Usenet Indexers. This eliminates the need for per app Indexer setup, making the process more convenient and less time-consuming."},{title:"Wide Support",description:"Prowlarr supports Usenet for 24 indexers natively and Torrent for over 500 trackers. This wide range of support ensures that you can manage your indexers regardless of the platform they are on."}],features:[{title:"Indexer Sync",description:"Prowlarr offers Indexer Sync to Lidarr, Mylar3, Radarr, Readarr, and Sonarr. This means you don't have to manually configure the other applications."},{title:"Manual Searching",description:"Prowlarr allows for manual searching of Trackers & Indexers at a category level and parameter-based manual searching. This gives you more control and flexibility in finding what you need."},{title:"Indexer Health and Status Notifications",description:"Stay informed about the health and status of your indexers with Prowlarr's notification feature. This ensures that you can promptly address any issues that may arise."},{title:"Per Indexer Proxy Support",description:"Prowlarr provides per Indexer proxy support, including SOCKS4, SOCKS5, HTTP, and Flaresolverr. This enhances the security and efficiency of your indexer management."}],tags:["Indexer Manager","Proxy","PVR Apps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9696}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"prunemate",meta:{name:"PruneMate",description:"PruneMate is a self-hosted Docker cleanup and management tool that provides a web-based interface for pruning unused Docker resources from your system. It helps you reclaim disk space by identifying and removing unused containers, images, volumes, networks, and build cache. With its intuitive dashboard, you can easily monitor Docker resource usage, schedule automatic cleanup tasks, and manually trigger pruning operations without using command-line tools. PruneMate connects directly to your Docker daemon via the Docker socket, allowing it to safely analyze and clean up orphaned resources that accumulate over time. The application features configurable cleanup schedules, selective pruning options to choose which resource types to clean, detailed logging of all cleanup operations, and real-time statistics showing disk space recovered. With timezone support and customizable time format settings, you can schedule cleanup operations to run during off-peak hours. Perfect for developers and system administrators who manage Docker environments and want to automate the cleanup of unused resources, homelab enthusiasts running multiple containers who need to manage disk space efficiently, CI/CD environments where frequent image builds create significant cleanup overhead, or anyone looking for a simple web interface to manage Docker resource cleanup without remembering complex docker system prune commands.",instructions:null,changeLog:[{date:"2025-12-02",description:"Template Release"}],links:[{label:"Website",url:"https://prunemate.org"},{label:"Github",url:"https://github.com/anoniemerd/PruneMate"},{label:"Documentation",url:"https://prunemate.org/documentation.html"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"prunemate"},appServiceImage:{type:"string",title:"App Service Image",default:"anoniemerd/prunemate:1.3.3"},timezone:{type:"string",title:"Timezone",default:"UTC"},time24h:{type:"boolean",title:"Use 24-Hour Time Format",default:!0}}},benefits:[{title:"Automated Docker Cleanup",description:"Automatically prune unused Docker resources on a schedule to keep your system clean and disk space optimized without manual intervention."},{title:"Visual Resource Management",description:"Web-based dashboard provides clear visibility into Docker resource usage and makes cleanup operations simple and intuitive."},{title:"Disk Space Recovery",description:"Reclaim valuable disk space by removing unused containers, images, volumes, networks, and build cache that accumulate over time."},{title:"Safe Pruning Operations",description:"Intelligently identifies truly unused resources to safely clean up without affecting running containers or important data."}],features:[{title:"Web-Based Dashboard",description:"Intuitive web interface for monitoring Docker resources and triggering cleanup operations without command-line access."},{title:"Scheduled Cleanup",description:"Configure automatic cleanup schedules to run pruning operations during off-peak hours for minimal disruption."},{title:"Selective Pruning",description:"Choose which Docker resource types to clean including containers, images, volumes, networks, and build cache."},{title:"Resource Statistics",description:"Real-time statistics showing current resource usage and disk space that can be recovered through cleanup."},{title:"Cleanup Logging",description:"Detailed logs of all cleanup operations showing what was removed and how much space was recovered."},{title:"Timezone Support",description:"Configure your local timezone for accurate scheduling and logging of cleanup operations."},{title:"Time Format Options",description:"Choose between 12-hour and 24-hour time format display based on your preference."},{title:"Docker Socket Integration",description:"Direct integration with Docker daemon via socket for reliable and secure container and resource management."}],tags:["Docker","DevOps","System Administration","Cleanup","Disk Management","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["PRUNEMATE_TZ=".concat(e.timezone||"UTC"),"PRUNEMATE_TIME_24H=".concat(!1!==e.time24h?"true":"false")].join("\n"),mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"logs",mountPath:"/var/log"},{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"psitransfer",meta:{name:"PsiTransfer",description:"PsiTransfer is a simple, open-source, self-hosted file sharing solution designed to provide an alternative to paid services like Dropbox and WeTransfer. The app allows for the sharing of many and very large files with ease, thanks to its support for streams. It also offers resumable uploads and downloads, ensuring you never lose progress. With PsiTransfer, you can set an expiry time for your upload bucket, and even offer one-time downloads. The app also supports downloading all files as a zip or tar.gz archive, and provides a modal-style file preview. For added security, PsiTransfer offers a password-protected download list. The app is lightweight and mobile-friendly, making it easy to use on any device. It also allows for explicit named bucket IDs with a query param sid=<myBucketID>.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2025-07-24",description:"Version bumped to v2.3.0"},{date:"2025-12-29",description:"Version bumped to v2.3.1"},{date:"2026-02-24",description:"Version bumped to v2.4.1"},{date:"2026-05-05",description:"Version bumped to v2.4.3"}],links:[{label:"Documentation",url:"https://github.com/psi-4ward/psitransfer/tree/master/docs"},{label:"Github",url:"https://github.com/psi-4ward/psitransfer"}],contributors:[{name:"Mark Topper",url:"https://github.com/marktopper"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"psitransfer"},appServiceImage:{type:"string",title:"App Service Image",default:"psitrax/psitransfer:v2.4.3"}}},benefits:[{title:"Effortless File Sharing",description:"PsiTransfer is a simple, open-source, self-hosted file sharing solution. It provides an easy and efficient way to share files without the need for accounts or logins."},{title:"Mobile Friendly",description:"The app has a responsive interface that is mobile-friendly, making it easy to use on any device."},{title:"Secure and Private",description:"With PsiTransfer, your files are protected. You can set an expire-time for your upload bucket and even password protect your download list."}],features:[{title:"Supports Large Files",description:"PsiTransfer supports the sharing of many and very large files, making it a great solution for all your file sharing needs."},{title:"Resumable Uploads and Downloads",description:"The app supports resumable up- and downloads, ensuring that you can pick up where you left off if your connection is interrupted."},{title:"One-Time Downloads",description:"PsiTransfer allows for one-time downloads, ensuring that your files are only accessed when you want them to be."},{title:"Download All Files as Archive",description:"With PsiTransfer, you can download all files as a zip/tar.gz archive, making it easier to manage and organize your downloads."},{title:"File Preview",description:"PsiTransfer offers a modal-style file preview, allowing you to view your files before downloading them."}],tags:["File Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"pterodactyl-panel",meta:{name:"Pterodactyl Panel",description:"Pterodactyl\xae is a free, open-source game server management panel that allows you to manage your game servers with ease and efficiency. It is built with PHP, React, and Go, and designed with a focus on security. Pterodactyl runs all game servers in isolated Docker containers, providing a secure environment for each game. It also offers a beautiful and intuitive user interface, making it easy for anyone to use. The platform supports a wide variety of games, including Minecraft, Rust, Terraria, Teamspeak, Mumble, Team Fortress 2, Counter Strike Global Offensive, Garry's Mod, ARK Survival Evolved, and many more. With Pterodactyl, you can host your games across the world without having to bloat each physical machine with additional dependencies. It's time to make game servers a first-class citizen on your platform with Pterodactyl.",instructions:'After installing, open the console and run "php artisan p:user:make".',changeLog:[{date:"2023-07-10",description:"Update to v1.11"},{date:"2025-07-24",description:"Version bumped to v1.11.11"},{date:"2026-02-24",description:"Version bumped to v1.12.1"},{date:"2026-05-05",description:"Version bumped to v1.12.2"}],links:[{label:"Website",url:"https://pterodactyl.io/"},{label:"Documentation",url:"https://pterodactyl.io/project/introduction.html"},{label:"Github",url:"https://github.com/pterodactyl/panel"}],contributors:[{name:"Dane Everitt",url:"https://github.com/DaneEveritt"},{name:"Matthew Penner",url:"https://github.com/matthewpi"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","redisServiceName","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"panel"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/pterodactyl/panel:v1.12.2"},redisServiceName:{type:"string",title:"Redis Service Name",default:"panel-redis"},databaseServiceName:{type:"string",title:"Database Service Name",default:"panel-db"}}},benefits:[{title:"Secure Game Server Management",description:"Pterodactyl Panel is designed with security as a priority. It uses bcrypt hashing, AES-256-CBC encryption, and HTTPS support to ensure your game servers are secure. All servers run in isolated Docker containers, limiting attack vectors and providing strict resource limits."},{title:"User-Friendly Interface",description:"Pterodactyl Panel offers a beautiful and intuitive user interface. It's designed to be easy to use, saving you from unnecessary stress and frustration."},{title:"Scalability",description:"Whether you're a hosting company, a large gaming network, or just a group of friends playing video games, Pterodactyl Panel can scale to meet your needs."},{title:"Cost-Effective Solution",description:"Pterodactyl Panel is 100% free and open-source. There are no exorbitant monthly costs, making it a cost-effective solution for managing your game servers."}],features:[{title:"Modern Tooling",description:"Pterodactyl Panel is built on a modern stack, utilizing the best design practices. This makes it easy to jump in and make modifications if needed."},{title:"Docker Core",description:"Pterodactyl Panel runs all game servers in isolated Docker containers. This provides environments tailored to each specific game and ensures that resources are used efficiently."},{title:"Support for a Variety of Games",description:"Pterodactyl Panel supports a wide variety of games, including Minecraft, Rust, Terraria, Teamspeak, Mumble, Team Fortress 2, Counter Strike: Global Offensive, Garry's Mod, ARK: Survival Evolved, and many more."},{title:"Open Source",description:"Pterodactyl Panel is open-source, meaning all of its code is completely accessible and modifiable. This allows for complete transparency and the ability to tailor the software to your specific needs."}],tags:["Gaming","Developer Tools"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["APP_ENV=production","APP_ENVIRONMENT_ONLY=false","APP_URL=https://$(PRIMARY_DOMAIN)","APP_TIMEZONE=UTC","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mariadb","DB_PASSWORD=".concat(a),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.redisServiceName),"REDIS_PASSWORD=".concat(i),"[email protected]","MAIL_DRIVER=smtp","MAIL_HOST=mail","MAIL_PORT=1025","MAIL_USERNAME=","MAIL_PASSWORD=","MAIL_ENCRYPTION=true","CACHE_DRIVER=redis","SESSION_DRIVER=redis","QUEUE_CONNECTION=redis"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"var",mountPath:"/app/var/"},{type:"volume",name:"logs",mountPath:"/app/storage/logs"},{type:"volume",name:"nginx",mountPath:"/etc/nginx/http.d/"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"pufferpanel",meta:{name:"Pufferpanel",description:"PufferPanel is a free, open-source game server management panel that simplifies the management of your game servers. It supports a wide variety of games including Minecraft, Forge, Spigot, Sponge, Source Dedicated Servers, BungeeCord, PocketMine, and many more. With PufferPanel, you can easily manage multiple game servers from one central location, providing a streamlined and efficient way to control your gaming environment. Whether you're an individual user or a large network, PufferPanel's user-friendly interface makes game server management a breeze.",instructions:'Run "./pufferpanel user add" in the console to create a new user.',changeLog:[{date:"2023-3-21",description:"first release"}],links:[{label:"Website",url:"https://pufferpanel.com/"},{label:"Documentation",url:"https://docs.pufferpanel.com/en/latest"},{label:"Github",url:"https://github.com/PufferPanel/PufferPanel"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pufferpanel"},appServiceImage:{type:"string",title:"App Service Image",default:"pufferpanel/pufferpanel:2.7.1"}}},benefits:[{title:"Simplified Game Server Management",description:"PufferPanel is a free, open-source game server management panel that simplifies the process of managing multiple game servers. It's designed to be user-friendly, making it easy for anyone to manage their game servers."},{title:"Support for Multiple Games",description:"PufferPanel supports a wide range of games including Minecraft, Forge, Spigot, Sponge, Source Dedicated Servers, BungeeCord, PocketMine, and more. This makes it a versatile tool for managing different types of game servers."},{title:"Centralized Control",description:"With PufferPanel, you can manage all your game servers from one central location. This eliminates the need to switch between different platforms or tools, saving you time and effort."}],features:[{title:"Open Source",description:"PufferPanel is an open-source project, meaning you can freely use, modify, and distribute it. This also ensures transparency and continuous improvement of the platform."},{title:"User Management",description:"PufferPanel allows you to give other users their own servers or grant them access to your servers. This makes it a great tool for teams and collaborative projects."},{title:"Easy-to-Use Interface",description:"PufferPanel features an easy-to-use interface that's designed to be user-friendly, making it accessible to both individual users and large networks or companies."}],tags:["Game Server Management","Open Source","Easy to Use"],logo:"logo.png",screenshots:["screenshot1.png","screenshot10.png","screenshot11.png","screenshot2.png","screenshot3.png","screenshot4.png","screenshot5.png","screenshot6.png","screenshot7.png","screenshot8.png","screenshot9.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],ports:[{published:2222,target:22,protocol:"tcp"},{published:5657,target:5657,protocol:"tcp"}],mounts:[{type:"volume",name:"base",mountPath:"/var/lib/pufferpanel"},{type:"volume",name:"config",mountPath:"/etc/pufferpanel"}]}}),{services:t}}},{slug:"pwgen",meta:{name:"Pwgen",description:"Pwgen is a simple, self-hosted web application for generating secure passwords and passphrases with customisable options. Users can generate random passwords with configurable length and character sets (uppercase, digits, special characters, homoglyph exclusion) or word-based passphrases with choices of separator, capitalisation, and word count. All generated passwords are optionally cross-checked against the haveibeenpwned database to confirm they have not appeared in known data breaches. The app is a single container with no database and supports a PWA install for offline use.",instructions:'Open the app at your domain. Configure your desired password or passphrase options using the toggles and sliders, then click Generate. Click "copy password" to copy the result to your clipboard. By default the app checks generated passwords against the haveibeenpwned API. Set NO_API_CHECK=true (the default in this template) to disable that check for air-gapped or privacy-sensitive deployments.',changeLog:[{date:"2026-06-26",description:"First Release (v1.92.5)"}],links:[{label:"Website",url:"https://pwgen.joonatanh.com"},{label:"GitHub",url:"https://github.com/jocxfin/pwgen"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pwgen"},appServiceImage:{type:"string",title:"App Service Image",default:"jocxfin/pwgen:v1.92.5"},noApiCheck:{type:"boolean",title:"Disable HaveIBeenPwned API Check",description:"When enabled, skips the online check against the haveibeenpwned database. Recommended for air-gapped networks or enhanced privacy.",default:!0},pwLength:{type:"number",title:"Default Password Length",default:12},pwIncludeUppercase:{type:"boolean",title:"Include Uppercase Letters by Default",default:!0},pwIncludeDigits:{type:"boolean",title:"Include Digits by Default",default:!0},pwIncludeSpecial:{type:"boolean",title:"Include Special Characters by Default",default:!0},multiGen:{type:"boolean",title:"Enable Multiple Generation (up to 5 at once)",default:!0}}},benefits:[{title:"No Account, No Cloud",description:"Pwgen runs entirely in a single container with no external database or account required. Generated passwords never leave your server unless you choose to check them against haveibeenpwned."},{title:"HaveIBeenPwned Integration",description:"Optionally cross-references every generated password against the haveibeenpwned breach database using a k-anonymity API call so the full password is never transmitted."},{title:"Flexible Generation",description:"Supports both random character passwords and word-based passphrases with English, Finnish, and French wordlists as well as custom wordlists from URLs or local files."}],features:[{title:"Password Generation",description:"Configurable length (slider), uppercase letters, digits, special characters, and optional homoglyph exclusion (removes look-alike characters such as 0/O and 1/l)."},{title:"Passphrase Generation",description:"Word-count control, capitalisation toggle, separator choice (space, dash, number, special character, or user-defined), and optional inclusion of numbers or special characters between words."},{title:"Multiple Generation",description:"Generate up to 5 passwords or passphrases simultaneously with the MULTI_GEN option so you can pick the one you prefer."},{title:"Browser Settings Persistence",description:"Saves all generation preferences in a browser cookie so your settings are remembered between visits."},{title:"Progressive Web App",description:"Installable as a PWA for an app-like experience on mobile and desktop without needing a native install."}],tags:["Security","Password Manager","Utilities","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[];return a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["NO_API_CHECK=".concat(e.noApiCheck?"true":"false"),"PW_LENGTH=".concat(null!==(t=e.pwLength)&&void 0!==t?t:12),"PW_INCLUDE_UPPERCASE=".concat(e.pwIncludeUppercase?"true":"false"),"PW_INCLUDE_DIGITS=".concat(e.pwIncludeDigits?"true":"false"),"PW_INCLUDE_SPECIAL=".concat(e.pwIncludeSpecial?"true":"false"),"MULTI_GEN=".concat(e.multiGen?"true":"false")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:5069}]}}),{services:a}}},{slug:"pwndrop",meta:{name:"Pwndrop",description:"Pwndrop is a self-deployable file hosting service for red teamers, designed for sending payloads and collecting loot in penetration testing operations. It provides a lightweight, standalone solution for hosting and managing files during security assessments. With its simple web interface, you can easily upload, organize, and share files with customizable download links. Pwndrop offers features like file tracking, download notifications, and an admin portal protected by a secret path for enhanced security.",instructions:"After deployment, user will be redirected to create an account.",changeLog:[{date:"2025-10-21",description:"Initial Template Release (v1.0.1)"}],links:[{label:"Website",url:"https://breakdev.org/pwndrop/"},{label:"GitHub",url:"https://github.com/kgretzky/pwndrop"},{label:"Documentation",url:"https://breakdev.org/pwndrop/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pwndrop"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/pwndrop:1.0.1",description:"Pwndrop Docker image from LinuxServer.io"}}},benefits:[{title:"Self-Deployable File Hosting",description:"Quick and easy deployment of a file hosting service with minimal configuration required, perfect for temporary file sharing needs."},{title:"Lightweight Solution",description:"Resource-efficient application that can run on minimal infrastructure without complex dependencies or heavy resource requirements."},{title:"Secure Admin Access",description:"Protected admin interface accessible through a customizable secret path, preventing unauthorized access to administrative functions."},{title:"File Management",description:"Simple web-based interface for uploading, organizing, and managing files with easy-to-generate shareable download links."}],features:[{title:"Easy File Upload",description:"Intuitive web interface for quick file uploads and organization with support for managing multiple files simultaneously."},{title:"Customizable Links",description:"Generate custom download links with configurable parameters for better tracking and control over file distribution."},{title:"Download Tracking",description:"Monitor file downloads with detailed tracking information to know when and how files are being accessed."},{title:"Secret Admin Portal",description:"Access administrative functions through a configurable secret path that hides the admin interface from unauthorized users."},{title:"Standalone Deployment",description:"Self-contained application that doesn't require external dependencies, making it easy to deploy in various environments."},{title:"Minimal Configuration",description:"Get started quickly with minimal setup required - just deploy and start sharing files immediately."}],tags:["File Sharing","Security Tools","Red Team","Penetration Testing","File Hosting","Self-Hosted","Lightweight","Admin Portal"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=0","PGID=0","TZ=Etc/UTC"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"pyload-ng",meta:{name:"pyLoad-NG",description:"pyLoad-NG is a modern download manager with a web interface, supporting various download services and protocols. It features a clean interface, download scheduling, and extensive plugin support.",instructions:"Default credentials are pyload/pyload.",changeLog:[{date:"2025-05-02",description:"Initial release"},{date:"2026-02-24",description:"Version bumped to develop-version-38c80675"},{date:"2026-05-08",description:"Version bumped to develop-version-3c5e1c66"}],links:[{label:"GitHub",url:"https://github.com/pyload/pyload"},{label:"Documentation",url:"https://github.com/pyload/pyload/wiki"},{label:"Docker Hub",url:"https://hub.docker.com/r/linuxserver/pyload-ng"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"pyload-ng"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/pyload-ng:develop-version-3c5e1c66"}}},benefits:[{title:"Modern Interface",description:"Clean and intuitive web-based user interface"},{title:"Multi-service Support",description:"Download from various file hosting services and protocols"},{title:"Plugin System",description:"Extensible functionality through plugins"},{title:"Open Source",description:"Free and open-source platform with active development"}],features:[{title:"Web Interface",description:"Access and manage downloads through a modern web UI"},{title:"Download Scheduling",description:"Schedule downloads for specific times"},{title:"Plugin Support",description:"Extend functionality with various plugins"},{title:"Progress Tracking",description:"Real-time download progress monitoring"},{title:"Custom Storage",description:"Configurable download storage location"}],tags:["Download Manager","File Transfer","Self-hosted","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),mounts:[{type:"volume",name:"pyload-ng-config",mountPath:"/config"},{type:"volume",name:"pyload-ng-downloads",mountPath:"/downloads"}]}}),{services:t}}},{slug:"qbitorrent",meta:{name:"qBittorrent",description:"qBittorrent is a powerful, open-source BitTorrent client designed to provide an efficient and feature-rich experience for downloading and sharing files. It offers a user-friendly interface, robust functionality, and cross-platform compatibility. qBittorrent supports advanced features like sequential downloading, IP filtering, RSS feed support, and a built-in search engine for finding torrents. It also includes a web-based interface for managing downloads remotely. Designed to balance performance, simplicity, and advanced capabilities, qBittorrent is ideal for users seeking a secure and reliable torrenting solution.",instructions:"Username is admin, password is provided in the overview logs.",changeLog:[{date:"2024-11-16",description:"First Release"},{date:"2025-07-24",description:"Version bumped to 5.1.2"},{date:"2025-12-29",description:"Version bumped to 5.1.4"}],links:[{label:"Website",url:"https://www.qbittorrent.org"},{label:"Docs",url:"https://github.com/qbittorrent/qBittorrent/wiki"},{label:"Github",url:"https://github.com/qbittorrent/qBittorrent"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","qBittorrentPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"qbittorrent"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/qbittorrent:5.1.4"},qBittorrentPort:{type:"string",title:"Torrenting Port",default:"6881"}}},benefits:[{title:"User-Friendly Interface",description:"qBittorrent offers an intuitive interface that simplifies downloading, sharing, and managing torrents."},{title:"Advanced Features",description:"Enjoy features like sequential downloading, IP filtering, RSS feed support, and an integrated torrent search engine."},{title:"Cross-Platform Support",description:"qBittorrent runs on major operating systems, including Windows, macOS, and Linux, ensuring compatibility across devices."},{title:"Remote Management",description:"Manage torrents remotely with qBittorrent's powerful web-based interface, providing flexibility and convenience."},{title:"Open-Source and Secure",description:"Benefit from a secure, community-driven, open-source application with no ads or hidden costs."}],features:[{title:"Integrated Torrent Search",description:"Search for torrents directly within qBittorrent without relying on external websites."},{title:"RSS Feed Support",description:"Automatically download torrents from your favorite RSS feeds."},{title:"Web-Based UI",description:"Manage torrents from anywhere using the secure and intuitive web-based interface."},{title:"Sequential Downloading",description:"Download files in sequential order, allowing you to preview media files as they are downloaded."},{title:"IP Filtering and Encryption",description:"Enhance security with IP filtering and protocol encryption to safeguard your downloads."}],tags:["Torrenting","BitTorrent","File Sharing","Open Source","Remote Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["PUID=1000","PGID=1000","TZ=Etc/UTC","WEBUI_PORT=8080","TORRENTING_PORT=".concat(e.qBittorrentPort)].join("\n"),mounts:[{type:"volume",name:"downloads",mountPath:"/downloads"},{type:"volume",name:"config",mountPath:"/config"}],ports:[{published:Number(e.qBittorrentPort),target:6881,protocol:"tcp"},{published:Number(e.qBittorrentPort),target:6881,protocol:"udp"}]}}),{services:t}}},{slug:"qbitwebui",meta:{name:"qBitWebUI",description:"qBitWebUI is a modern web interface for qBittorrent, providing an enhanced user experience for managing your torrent downloads. It offers a clean, responsive design with advanced features like dark mode, mobile support, and improved usability compared to the default qBittorrent web UI. Perfect for users who want a better way to manage their torrents remotely through a web browser.",instructions:null,changeLog:[{date:"2026-01-09",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/maciejonos/qbitwebui"},{label:"Website",url:"https://maciejonos.github.io/qbitwebui/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"qbitwebui"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/maciejonos/qbitwebui:2.21"}}},benefits:[{title:"Modern Web Interface",description:"Enjoy a clean, modern web interface for qBittorrent with improved usability and better user experience."},{title:"Enhanced Features",description:"Access advanced features like dark mode, mobile support, and improved torrent management capabilities."},{title:"Remote Access",description:"Manage your torrents from anywhere through a web browser with secure encryption."},{title:"Self-Hosted Control",description:"Deploy on your own infrastructure for complete control over your torrent management interface."}],features:[{title:"Responsive Design",description:"Works seamlessly on desktop, tablet, and mobile devices with a responsive layout."},{title:"Dark Mode Support",description:"Built-in dark mode for comfortable viewing in low-light conditions."},{title:"Secure Encryption",description:"Encrypted data storage with auto-generated encryption keys for enhanced security."},{title:"Easy Configuration",description:"Simple setup process with minimal configuration required to get started."},{title:"qBittorrent Integration",description:"Seamlessly connects to your existing qBittorrent instance for complete torrent management."}],tags:["Torrent","qBittorrent","Web UI","Download Manager","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["ENCRYPTION_KEY=".concat(a),"ALLOW_SELF_SIGNED_CERTS=true"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"qdrant",meta:{name:"Qdrant",description:"Qdrant is a powerful vector database and vector similarity search engine designed to power the next generation of AI applications. It deploys as an API service, providing search for the nearest high-dimensional vectors. This allows embeddings or neural network encoders to be turned into full-fledged applications for matching, searching, recommending, and much more. Qdrant supports a large variety of data types and query conditions, including string matching, numerical ranges, geo-locations, and more. It is cloud-native and scales horizontally, ensuring efficient utilization of resources. With Qdrant, you can build and deploy semantic neural search on your data in minutes, understand user behavior in real time, and find similar images or detect duplicates with ease.",instructions:null,changeLog:[{date:"2023-06-30",description:"first release"},{date:"2025-02-28",description:"Version bumped to v1.13.4"},{date:"2025-07-24",description:"Version bumped to v1.15"},{date:"2025-12-29",description:"Version bumped to v1.16"},{date:"2026-02-24",description:"Version bumped to v1.17"}],links:[{label:"Website",url:"https://qdrant.tech/"},{label:"Documentation",url:"https://qdrant.tech/documentation/"},{label:"Github",url:"https://github.com/qdrant/qdrant"}],contributors:[{name:"AlexSerban",url:"https://github.com/serban-alexandru"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"qdrant"},appServiceImage:{type:"string",title:"App Service Image",default:"qdrant/qdrant:v1.17"}}},benefits:[{title:"Advanced Vector Similarity Search",description:"Qdrant is a next-generation AI application that leverages advanced vector similarity search technology. It allows you to turn embeddings or neural network encoders into full-fledged applications for matching, searching, recommending, and much more."},{title:"Fast and Accurate",description:"Qdrant implements a unique custom modification of the HNSW algorithm for Approximate Nearest Neighbor Search. It provides state-of-the-art speed and applies search filters without compromising on results."},{title:"Efficient and Scalable",description:"Qdrant is cloud-native and scales horizontally. It effectively utilizes your resources and can be used with just the right amount of computational resources, no matter how much data you need to serve."},{title:"Rich Data Types and Custom Business Logic",description:"Qdrant supports a large variety of data types and query conditions. It allows you to build almost any custom business logic that should work on top of similarity matching."}],features:[{title:"Easy to Use API",description:"Qdrant provides the OpenAPI v3 specification to generate a client library in almost any programming language. You can also utilize ready-made clients for Python or other programming languages with additional functionality."},{title:"Filterable",description:"Qdrant supports additional payload associated with vectors. It not only stores payload but also allows filter results based on payload values. Unlike Elasticsearch post-filtering, Qdrant guarantees all relevant vectors are retrieved."},{title:"Semantic Text Search",description:"Qdrant allows you to overcome the limitations of full-text search by using a neural network-based semantic search. It uses semantic embeddings to find texts with similar meaning."},{title:"Real-Time User Behavior Understanding",description:"With Qdrant, user behavior can be represented as a semantic vector similar to text or images. This vector can represent user preferences, behavior patterns, or interest in the product. User vectors can be updated in real-time, eliminating the need to deploy a MapReduce cluster."},{title:"Similar Image Search",description:"Qdrant allows you to find similar images, detect duplicates, or even find a picture by text description. It enables you to apply arbitrary business logic on top of a similarity search."}],tags:["Data Science","Databases","Developer Tools"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:6333}],mounts:[{type:"volume",name:"storage",mountPath:"/qdrant/storage"}]}}),{services:t}}},{slug:"qloapps",meta:{name:"QloApps",description:"QloApps is a comprehensive hotel booking and property management system built on PrestaShop. It provides a complete solution for hoteliers to manage their properties, bookings, and customers. The system includes features like room management, booking engine, customer management, and payment processing. QloApps is designed to help hotels streamline their operations and improve guest experience.",instructions:"Login email [email protected] and password 12345678",changeLog:[{date:"2025-04-07",description:"First Release"},{date:"2026-05-08",description:"Version bumped to 1.6.1"}],links:[{label:"Website",url:"https://qloapps.com/"},{label:"Documentation",url:"https://qloapps.com/hotel-website/"},{label:"Github",url:"https://github.com/Qloapps/QloApps"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"qloapps"},appServiceImage:{type:"string",title:"App Service Image",default:"webkul/qloapps_docker:1.6.1"}}},benefits:[{title:"Complete Hotel Management",description:"Manage all aspects of your hotel business from a single platform."},{title:"Booking Engine",description:"Powerful booking engine with real-time availability and pricing."},{title:"Customer Management",description:"Comprehensive customer profiles and booking history."},{title:"Payment Processing",description:"Integrated payment processing with multiple payment gateways."},{title:"Mobile Responsive",description:"Mobile-friendly interface for both guests and staff."}],features:[{title:"Room Management",description:"Manage room types, rates, and availability with ease."},{title:"Booking Management",description:"Handle reservations, check-ins, and check-outs efficiently."},{title:"Customer Portal",description:"Self-service portal for guests to manage their bookings."},{title:"Reporting",description:"Generate detailed reports on occupancy, revenue, and more."},{title:"Multi-language Support",description:"Support for multiple languages to serve international guests."}],tags:["Hotel Management","Booking System","Property Management","Hospitality","E-commerce"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["USER_PASSWORD=".concat(a),"MYSQL_ROOT_PASSWORD=".concat(i),"MYSQL_DATABASE=$(PROJECT_NAME)"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/var/www/html"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,rootPassword:i}}),{services:t}}},{slug:"quackback",meta:{name:"Quackback",description:"An open-source alternative to Canny and UserVoice \u2014 a self-hosted feedback management platform with public roadmaps, changelog notifications, AI-powered triage, and 24+ integrations including Slack, Linear, Jira, and GitHub.",instructions:"After deployment, open the UI and create your first admin account. Migrations run automatically on startup. To enable email notifications configure the EMAIL_SMTP_* variables in the service environment. For AI-powered duplicate detection and summarization add an OPENAI_API_KEY. File uploads require S3 or S3-compatible storage (MinIO) configured via the S3_* variables.",changeLog:[{date:"2026-05-29",description:"Initial release (v0.10.5)"}],links:[{label:"Website",url:"https://quackback.io"},{label:"GitHub",url:"https://github.com/quackbackio/quackback"},{label:"Documentation",url:"https://quackback.io/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"quackback"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/quackbackio/quackback:0.10.5"}}},tags:["feedback","roadmap","changelog","product","self-hosted"],benefits:[{title:"Self-Hosted Feedback Hub",description:"Collect, triage, and prioritize user feedback on your own infrastructure \u2014 no third-party data sharing, no per-seat pricing."},{title:"Public Roadmaps & Changelogs",description:"Automatically surface planned, in-progress, and shipped items to users and notify them when their requested features ship."},{title:"AI-Powered Triage",description:"Detect duplicate posts, analyze sentiment, and generate summaries with OpenAI integration \u2014 keeping your feedback board clean and actionable."},{title:"24+ Integrations",description:"Connect to Slack, Linear, Jira, GitHub, Intercom, Zendesk, and more to keep feedback flowing into your existing workflow."}],features:[{title:"Feedback Boards",description:"Users submit and upvote feature requests through a branded portal, embeddable widget, Slack, or email \u2014 all consolidated in one board."},{title:"Role-Based Access Control",description:"Multi-tenant support with SSO, audit logs, and granular roles for admins, team members, and external contributors."},{title:"Background Job Queue",description:"BullMQ-powered queue backed by Redis handles webhooks, email notifications, and integration syncs asynchronously."},{title:"API & Webhooks",description:"REST API with webhook support for custom automations and integrations with any tool in your stack."},{title:"S3 File Storage",description:"Optional S3-compatible storage (AWS S3, MinIO) for file and image uploads attached to feedback posts."}],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32);return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),image:"pgvector/pgvector:pg17",password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"REDIS_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"BASE_URL=https://$(EASYPANEL_DOMAIN)","PORT=3000","SECRET_KEY=".concat(o),"DISABLE_TELEMETRY=true"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"rabbitmq",meta:{name:"RabbitMQ",description:"RabbitMQ is an open-source message broker software that facilitates reliable messaging between applications and services. It supports a variety of messaging protocols such as AMQP and MQTT, making it a versatile solution for modern distributed systems. With RabbitMQ, you can efficiently manage message queues, exchanges, and routing, enabling seamless communication across different components of your application. It also provides a user-friendly web-based management interface for monitoring, configuration, and troubleshooting.",instructions:null,changeLog:[{date:"2024-12-17",description:"First release"}],links:[{label:"Website",url:"https://www.rabbitmq.com/"},{label:"Documentation",url:"https://www.rabbitmq.com/documentation.html"},{label:"GitHub",url:"https://github.com/rabbitmq"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","defaultVhost","defaultUser","defaultPassword","defaultAMQPPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rabbitmq"},appServiceImage:{type:"string",title:"App Service Image",default:"rabbitmq:3-management"},defaultVhost:{type:"string",title:"Default Vhost",default:"/"},defaultUser:{type:"string",title:"Default User",default:"guest"},defaultPassword:{type:"string",title:"Default Password",default:"guest"},defaultAMQPPort:{type:"integer",title:"Default AMQP Port on Host",default:5672}}},benefits:[{title:"Reliable Message Delivery",description:"RabbitMQ ensures reliable and efficient message delivery with support for message acknowledgments, persistence, and clustering for high availability."},{title:"Versatile Protocol Support",description:"RabbitMQ supports multiple messaging protocols, including AMQP, MQTT, and STOMP, enabling flexibility in communication between different systems."},{title:"Easy Management and Monitoring",description:"With RabbitMQ's Management UI, you can monitor queues, exchanges, and message throughput, and easily configure the broker through a web interface."}],features:[{title:"Lightweight and Fast",description:"RabbitMQ is lightweight and optimized for fast message processing, making it ideal for both small-scale and enterprise-level applications."},{title:"High Availability",description:"RabbitMQ supports clustering and mirrored queues to ensure message availability and prevent data loss in case of failure."},{title:"Management Web UI",description:"The built-in web-based UI allows you to monitor queues, exchanges, and performance metrics in real time."},{title:"Plugins and Extensibility",description:"Extend RabbitMQ's functionality with a rich set of plugins for authentication, monitoring, and protocol support."}],tags:["Message Broker","AMQP","MQTT","High Availability","Queue Management"],logo:"logo.svg",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["RABBITMQ_DEFAULT_VHOST=".concat(e.defaultVhost),"RABBITMQ_DEFAULT_USER=".concat(e.defaultUser),"RABBITMQ_DEFAULT_PASS=".concat(e.defaultPassword)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:15672}],ports:[{published:Number(e.defaultAMQPPort),target:5672,protocol:"tcp"}],mounts:[{type:"volume",name:"rabbitmq_data",mountPath:"/var/lib/rabbitmq"}]}}),{services:t}}},{slug:"rachoon",meta:{name:"Rachoon",description:"Rachoon is a self-hosted invoicing platform for creating and tracking invoices, managing clients, and exporting professional PDFs. This template deploys Rachoon with PostgreSQL and Gotenberg as required dependencies.",instructions:"After deployment, open your domain and create your account in the Rachoon UI. The APP_KEY is generated automatically unless you provide one. Database values are wired automatically to the bundled PostgreSQL service.",changeLog:[{date:"2026-04-07",description:"Initial template release"}],links:[{label:"Documentation",url:"https://github.com/ad-on-is/rachoon#readme"},{label:"GitHub",url:"https://github.com/ad-on-is/rachoon"},{label:"Container registry",url:"https://github.com/ad-on-is/rachoon/pkgs/container/rachoon"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dbServiceImage","gotenbergServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rachoon"},appServiceImage:{type:"string",title:"Rachoon Image",default:"ghcr.io/ad-on-is/rachoon:v1.3.7"},gotenbergServiceImage:{type:"string",title:"Gotenberg Image",default:"gotenberg/gotenberg:8.30.1"},appKey:{type:"string",title:"APP_KEY (optional)",description:"Leave empty to auto-generate a secure key"}}},benefits:[{title:"End-to-end invoicing stack",description:"Deploy invoice management app, PDF generation service, and database together."},{title:"Self-hosted billing data",description:"Keep invoice and customer data on infrastructure you control."},{title:"Ready for PDF workflows",description:"Includes Gotenberg integration used by Rachoon for document rendering."}],features:[{title:"Invoice and client management",description:"Create, manage, and track invoices and client records from one UI."},{title:"PDF export support",description:"Built-in Gotenberg service enables invoice PDF generation."},{title:"Persistent PostgreSQL storage",description:"Data is stored in the PostgreSQL service volume for durability."}],tags:["Invoicing","Billing","Finance","PostgreSQL","Gotenberg","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[],i=v(),o=(null===(t=e.appKey)||void 0===t?void 0:t.trim())||y(64),n="".concat(e.appServiceName,"-db"),r="".concat(e.appServiceName,"-gotenberg"),s="$(PROJECT_NAME)_".concat(n),c="$(PROJECT_NAME)_".concat(r);return a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["APP_KEY=".concat(o),"DB_CONNECTION=pg","GOTENBERG_URL=http://".concat(c,":3000"),"PG_HOST=".concat(s),"PG_PORT=5432","PG_USER=postgres","PG_PASSWORD=".concat(i),"PG_DB_NAME=$(PROJECT_NAME)"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),a.push({type:"app",data:{serviceName:r,source:{type:"image",image:e.gotenbergServiceImage}}}),a.push({type:"postgres",data:{serviceName:n,password:i}}),{services:a}}},{slug:"radarr",meta:{name:"Radarr",description:"Radarr is a movie collection manager designed for Usenet and BitTorrent users. It monitors multiple RSS feeds for new movies and interfaces with clients and indexers to grab, sort, and rename them. Radarr also has the ability to automatically upgrade the quality of existing files in your library when a better quality format becomes available. The app features a calendar to see all your upcoming movies in one place, manual search to find all the releases and choose the one you want, and automatic handling of failed downloads. Radarr ensures you get the right release every time with its custom formats feature, which allows fine control over release prioritization and selection. It also supports major platforms like Windows, Linux, macOS, and others.",instructions:null,changeLog:[{date:"2022-10-30",description:"first release"},{date:"2025-02-28",description:"Version bumped to 5.19.3"},{date:"2025-12-29",description:"Version bumped to 6.0.4"},{date:"2026-05-05",description:"Version bumped to 6.1.1"}],links:[{label:"Website",url:"https://radarr.video/"},{label:"Documentation",url:"https://wiki.servarr.com/radarr"},{label:"Github",url:"https://github.com/Radarr/Radarr"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"radarr"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/radarr:6.1.1"}}},benefits:[{title:"Automated Movie Management",description:"Radarr is a movie collection manager that automatically monitors multiple RSS feeds for new movies, grabs, sorts, and renames them. It interfaces with clients and indexers to streamline your movie collection process."},{title:"Quality Upgrades",description:"Radarr can be configured to automatically upgrade the quality of existing files in your library when a better quality format becomes available. This ensures you always have the best version of your favorite movies."},{title:"Failed Download Handling",description:"With Radarr, failed downloads are a thing of the past. The app automatically blacklists the release and tries another one until it finds one that works, saving you time and frustration."}],features:[{title:"Calendar",description:"See all your upcoming movies in one convenient location. This feature allows you to keep track of your movie collection and plan your viewing schedule."}
1,{title:"Manual Search",description:"Find all the releases, choose the one you want and send it right to your download client. This gives you the power to manually select and download the movies you want."},{title:"Custom Formats",description:"Ensure you get the right release every time! Custom Formats allows fine control over release prioritization and selection. It can be as simple as a single preferred word or as complex as you want with multiple criteria and regex."},{title:"Integration with Download Clients",description:"Radarr fully integrates with SABnzbd, NZBGet, QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients for seamless downloading and management of your movie collection."},{title:"Metadata Importing",description:"Radarr can import Metadata such as trailers or subtitles, adding valuable information to your movie collection. It also adds metadata such as posters and information for Kodi and others to use."}],tags:["Media","Download Manager"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:7878}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"radicale",meta:{name:"Radicale",description:"Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts) server. It allows you to share calendars and contact lists through CalDAV, CardDAV, and HTTP. Radicale supports events, todos, journal entries, and business cards. It works out-of-the-box, requiring no complicated setup or configuration. Radicale can limit access by authentication and secure connections with TLS. It works with many CalDAV and CardDAV clients, stores all data on the file system in a simple folder structure, and can be extended with plugins. Radicale is GPLv3-licensed free software.",instructions:"Login with any username or password",changeLog:[{date:"2023-3-27",description:"first release"},{date:"2025-02-28",description:"Version bumped to 3.4.1.0"},{date:"2025-07-24",description:"Version bumped to 3.5.4.0"},{date:"2025-12-29",description:"Version bumped to 3.5.10.0"},{date:"2026-02-24",description:"Version bumped to 3.6.0.0"},{date:"2026-05-05",description:"Version bumped to 3.7.1.0"}],links:[{label:"Website",url:"https://radicale.org/"},{label:"Documentation",url:"https://radicale.org/v3.html"},{label:"Github",url:"https://github.com/Kozea/Radicale"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"radicale"},appServiceImage:{type:"string",title:"App Service Image",default:"tomsquest/docker-radicale:3.7.1.0"}}},benefits:[{title:"CalDAV/CardDAV Server",description:"Radicale serves as a CalDAV (Calendar) and CardDAV (Contact) server, storing and allowing online sharing of calendars, address books, events, and contacts."},{title:"Extensible with Plugins",description:"Radicale can be extended with plugins for authentication, rights management, and storage, allowing for customization and enhanced functionality."},{title:"Wide Compatibility",description:"Radicale is available for various Linux distributions and also has a Dockerfile, ensuring wide compatibility and ease of installation."}],features:[{title:"Modular Code",description:"Radicale's code is organized into several modules, each handling a specific functionality, making it easier to understand and work with."},{title:"Integrated HTTP Server",description:"Radicale comes with an integrated HTTP server for standalone use, simplifying setup and operation."},{title:"Web Interface",description:"Radicale includes a web interface module, providing a user-friendly way to interact with the server."},{title:"Authentication and Rights Management",description:"Radicale includes modules for user authentication and rights management, ensuring secure access to data."},{title:"Storage Management",description:"Radicale's storage module handles the storing and loading of collections in the filesystem, providing a reliable way to manage data."}],tags:["Calendars","Productivity","Business Apps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:"TAKE_FILE_OWNERSHIP=false",source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5232}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"rallly",meta:{name:"Rallly",description:"Rallly is a free, open-source tool designed to simplify your scheduling process. It allows you to create meeting polls in seconds, helping you find a time that works for everyone. With Rallly, you can ditch the back-and-forth emails and streamline your scheduling tasks for a more organized and less stressful workday. The app supports multiple languages and has been used to create over 100k+ polls by 45k+ registered users. Whether you're an executive assistant at a large organization or simply trying to coordinate a group event, Rallly is the perfect tool to keep your RSVPs simple and your scheduling process efficient.",instructions:null,armSupport:!0,changeLog:[{date:"2023-1-29",description:"first release"},{date:"2025-07-24",description:"Version bumped to 4.2.0"},{date:"2025-12-29",description:"Version bumped to 4.5.13"},{date:"2026-02-24",description:"Version bumped to 4.7.4"},{date:"2026-05-05",description:"Version bumped to 4.10.0"}],links:[{label:"Website",url:"https://rallly.co"},{label:"Documentation",url:"https://support.rallly.co/"},{label:"Selfhosting Instructions",url:"https://github.com/lukevella/rallly-selfhosted"},{label:"Github",url:"https://github.com/lukevella/rallly"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","emailSupport","emailHost","emailPort","emailUsername","emailPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rallly"},appServiceImage:{type:"string",title:"App Service Image",default:"lukevella/rallly:4.10.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"rallly-db"},emailSupport:{type:"string",title:"Support Email"},emailHost:{type:"string",title:"Email Host"},emailPort:{type:"number",title:"Email Port",default:587},emailUsername:{type:"string",title:"Email Username"},emailPassword:{type:"string",title:"Email Password"}}},benefits:[{title:"Efficient Scheduling",description:"Rallly is designed to streamline your scheduling process, saving you time and reducing the stress of back-and-forth emails. It simplifies your scheduling tasks, making your workday more organized and less stressful."},{title:"Easy Poll Creation",description:"With Rallly, you can set up a scheduling poll in as little time as possible. It's a simple and efficient way to find a time that works for everyone."},{title:"Multi-language Support",description:"Rallly supports 10+ languages, making it accessible to users around the world. It's a tool that transcends language barriers, making scheduling meetings a breeze no matter where you are."}],features:[{title:"Meeting Polls",description:"Rallly allows you to create meeting polls to help schedule meetings with groups of people. The host of the meeting can select a few date and time options for participants to choose from, and then tally the results to find the best time."},{title:"No Login Required",description:"Rallly is free to use and does not require a login. This means you can create as many polls as you want without the hassle of signing in."},{title:"User-Funded",description:"Rallly is a user-funded project. This means it relies on the generosity of its users to keep it free and open-source."}],tags:["Calendars","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NEXT_PUBLIC_BASE_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgres://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"SECRET_PASSWORD=".concat(a),"SUPPORT_EMAIL=".concat(e.emailSupport),"SMTP_HOST=".concat(e.emailHost),"SMTP_PORT=".concat(e.emailPort),"SMTP_USER=".concat(e.emailUsername),"SMTP_PWD=".concat(e.emailPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"postgres",data:{image:"postgres:14.2",serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"raneto",meta:{name:"Raneto",description:"Raneto is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase.",instructions:null,changeLog:[{date:"2022-11-27",description:"first release"},{date:"2025-07-24",description:"Version bumped to 0.17.8"},{date:"2025-12-29",description:"Version bumped to 0.18.0"},{date:"2026-05-05",description:"Version bumped to 0.18.1"}],links:[{label:"Website",url:"https://raneto.com"},{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-raneto"},{label:"Github",url:"https://github.com/linuxserver/docker-raneto"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"raneto"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/raneto:0.18.1"},serviceTimezone:{type:"string",title:"Timezone",default:"Etc/UTC"}}},logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=".concat(e.serviceTimezone)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"reactive-resume",meta:{name:"Reactive Resume",description:"Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume. With zero user tracking or advertising, your privacy is a top priority. The platform is extremely user-friendly and can be self-hosted in less than 30 seconds if you wish to own your data completely. It's available in multiple languages and comes packed with features such as real-time editing, dozens of templates, drag-and-drop customisation, and integration with OpenAI for enhancing your writing. You can share a personalised link of your resume to potential employers, track its views or downloads, and customise your page layout by dragging-and-dropping sections.",instructions:"Deploy the stack and open the app on your domain then create the first account and start building resumes, this template uses the Reactive Resume v4.4.5 legacy compatible environment schema with PostgreSQL printer.",changeLog:[{date:"2026-04-01",description:"Initial release"}],links:[{label:"Website",url:"https://rxresu.me/"},{label:"Documentation",url:"https://docs.rxresume.org/self-hosting/docker"},{label:"GitHub",url:"https://github.com/AmruthPillai/Reactive-Resume"},{label:"Demo",url:"https://rxresu.me/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","minioServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"reactive-resume"},appServiceImage:{type:"string",title:"App Service Image",default:"amruthpillai/reactive-resume:v4.4.5",description:"Image for the app service"},minioServiceImage:{type:"string",title:"MinIO Service Image",default:"minio/minio:RELEASE.2025-09-07T16-13-09Z",description:"Image for the internal MinIO storage service"},disableSignups:{type:"boolean",title:"Disable Public Signups",default:!1,description:"Prevent new users from registering accounts"},disableEmailAuth:{type:"boolean",title:"Disable Email Authentication",default:!1,description:"Disable email/password authentication (OAuth only)"}}},benefits:[{title:"Privacy-First Design",description:"No user tracking, no analytics, no advertising. Your data stays on your server and under your complete control."},{title:"Professional Templates",description:"Choose from dozens of professionally designed templates ranging from traditional to modern styles, all fully customizable."},{title:"AI-Powered Features",description:"Integrate with OpenAI to improve your writing, fix grammar, change tone, and even translate your resume into different languages."}],features:[{title:"Drag & Drop Builder",description:"Intuitive drag-and-drop interface to customize your resume layout, reorder sections, and create custom sections specific to your industry."},{title:"Real-time Collaboration",description:"Share personalized links with potential employers, track views and downloads, and make real-time updates that are instantly available."},{title:"Multi-format Export",description:"Export your resume as PDF in A4 or Letter format, or save as JSON for easy backup and portability between instances."},{title:"Multi-language Support",description:"Available in multiple languages with full internationalization support, and use AI to translate your resume content."}],tags:["Resume Builder","CV","Career","PDF Generator","Privacy","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i="minioadmin",o=v(),n=y(32),r=y(64),s=y(64);t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),env:["MINIO_ROOT_USER=".concat(i),"MINIO_ROOT_PASSWORD=".concat(o),"MINIO_BROWSER=off"].join("\n"),source:{type:"image",image:e.minioServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/data"}],deploy:{command:"minio server /data"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-printer"),env:["TIMEOUT=10000","CONCURRENT=10","TOKEN=".concat(n),"EXIT_ON_HEALTH_FAILURE=true","PRE_REQUEST_HEALTH_CHECK=true"].join("\n"),source:{type:"image",image:"ghcr.io/browserless/chromium:v2.18.0"}}});var c=["PORT=3000","NODE_ENV=production","APP_URL=https://$(EASYPANEL_DOMAIN)","PUBLIC_URL=https://$(EASYPANEL_DOMAIN)","STORAGE_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-minio.$(EASYPANEL_HOST)/default"),"DATABASE_URL=postgresql://postgres:".concat(a,"@").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"PRINTER_ENDPOINT=ws://".concat(e.appServiceName,"-printer:3000?token=").concat(n),"CHROME_TOKEN=".concat(n),"CHROME_URL=ws://".concat(e.appServiceName,"-printer:3000"),"AUTH_SECRET=".concat(r),"ACCESS_TOKEN_SECRET=".concat(r),"REFRESH_TOKEN_SECRET=".concat(s),"MAIL_FROM=noreply@$(EASYPANEL_HOST)","STORAGE_ENDPOINT=".concat(e.appServiceName,"-minio"),"STORAGE_PORT=9000","STORAGE_REGION=us-east-1","STORAGE_BUCKET=default","STORAGE_ACCESS_KEY=".concat(i),"STORAGE_SECRET_KEY=".concat(o),"STORAGE_USE_SSL=false","STORAGE_SKIP_BUCKET_CHECK=false","DISABLE_SIGNUPS=".concat(e.disableSignups?"true":"false"),"DISABLE_EMAIL_AUTH=".concat(e.disableEmailAuth?"true":"false"),"OPENAI_API_KEY="];return t.push({type:"app",data:{serviceName:e.appServiceName,env:c.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"readarr",meta:{name:"Readarr",description:"Readarr is an ebook and audiobook collection manager designed for Usenet and BitTorrent users. It monitors multiple RSS feeds for new ebooks and audiobooks and interfaces with clients and indexers to grab, sort, and rename them. Readarr also has the ability to automatically upgrade the quality of existing files in your library when a better quality format becomes available. The app features a calendar to see all your upcoming releases in one place, manual search to find all the releases and choose the ones you want, and automatic handling of failed downloads. Readarr ensures you get the right release every time with its custom formats feature, which allows fine control over release prioritization and selection. It also supports major platforms like Windows, Linux, macOS, and others.",instructions:null,changeLog:[{date:"2024-03-18",description:"Template added"},{date:"2025-02-28",description:"Version bumped to 0.4.11-nightly"},{date:"2025-07-24",description:"Version bumped to 0.4.19-nightly"}],links:[{label:"Website",url:"https://readarr.com/"},{label:"Documentation",url:"https://wiki.servarr.com/readarr"},{label:"Github",url:"https://github.com/Readarr/Readarr"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"readarr"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/readarr:0.4.19-nightly"}}},benefits:[{title:"Automated Book Management",description:"Readarr is an ebook and audiobook collection manager that automatically monitors multiple RSS feeds for new releases, grabs, sorts, and renames them. It interfaces with clients and indexers to streamline your book collection process."},{title:"Quality Upgrades",description:"Readarr can be configured to automatically upgrade the quality of existing files in your library when a better quality format becomes available. This ensures you always have the best version of your favorite books."},{title:"Failed Download Handling",description:"With Readarr, failed downloads are a thing of the past. The app automatically blacklists the release and tries another one until it finds one that works, saving you time and frustration."}],features:[{title:"Calendar",description:"See all your upcoming releases in one convenient location. This feature allows you to keep track of your book collection and plan your reading or listening schedule."}
1,{title:"Manual Search",description:"Find all the releases, choose the ones you want and send them right to your download client. This gives you the power to manually select and download the books you want."},{title:"Custom Formats",description:"Ensure you get the right release every time! Custom Formats allows fine control over release prioritization and selection. It can be as simple as a single preferred word or as complex as you want with multiple criteria and regex."},{title:"Integration with Download Clients",description:"Readarr fully integrates with SABnzbd, NZBGet, QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients for seamless downloading and management of your book collection."},{title:"Metadata Importing",description:"Readarr can import Metadata such as covers, summaries, and author information, adding valuable information to your book collection. It also adds metadata for media servers and players to use."}],tags:["Media","Download Manager","Books","Ebooks","Audiobooks"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8787}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"readeck",meta:{name:"Readeck",description:"Readeck is a self-hosted read-it-later service that allows you to save articles, web pages, and other content for later reading. It provides a clean and distraction-free reading experience with features for organizing and managing your saved content.",instructions:"After installation, access the web interface through the provided domain to start saving and organizing your reading list.",changeLog:[{date:"2024-04-09",description:"First Release"}],links:[{label:"Codeberg",url:"https://codeberg.org/readeck/readeck"},{label:"Website",url:"https://readeck.org"},{label:"Documentation",url:"https://readeck.org/en/docs/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"readeck"},appServiceImage:{type:"string",title:"App Service Image",default:"codeberg.org/readeck/readeck:latest"}}},benefits:[{title:"Self-Hosted",description:"Keep control of your reading list with your own instance."},{title:"Clean Interface",description:"Enjoy a distraction-free reading experience."},{title:"Content Management",description:"Organize and manage your saved articles efficiently."},{title:"Easy Saving",description:"Quickly save articles for later reading."},{title:"Privacy Focused",description:"Your reading data stays on your own server."}],features:[{title:"Article Storage",description:"Save articles and web pages for later reading."},{title:"Content Organization",description:"Organize content with tags and categories."},{title:"Reading Mode",description:"Clean, distraction-free reading interface."},{title:"Data Control",description:"Full control over your reading data."},{title:"Web Interface",description:"Access your reading list through a modern web interface."}],tags:["Reading","Bookmarking","Self-Hosted","Articles","Content Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"data",mountPath:"/readeck"}]}}),{services:t}}},{slug:"readmeabook",meta:{name:"ReadMeABook",description:"ReadMeABook is a self-hosted audiobook request and automation platform\u2014like Radarr/Sonarr + Overseerr for audiobooks. Integrates with Plex or Audiobookshelf, supports torrents (qBittorrent) and Usenet (SABnzbd), Prowlarr for search. Features multi-file chapter merging, e-book sidecars, AI recommendations (BookDate), and admin approval workflows. Includes PostgreSQL and Redis.",instructions:"After deployment, access the web UI and run the setup wizard. Set PUBLIC_URL to your domain (e.g. `https://readmeabook.yourdomain.com`) for OAuth (Plex/OIDC). Mount downloads and media volumes for audiobook storage. Connect to Plex or Audiobookshelf, and configure qBittorrent/SABnzbd for downloads.",changeLog:[{date:"2026-02-09",description:"First Release"},{date:"2026-03-25",description:"Version bumped to 1.1.7."},{date:"2026-05-05",description:"Version bumped to 1.1.8"}],links:[{label:"GitHub",url:"https://github.com/kikootwo/readmeabook"},{label:"Documentation",url:"https://github.com/kikootwo/readmeabook/tree/main/documentation"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"readmeabook"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/kikootwo/readmeabook:1.1.8"},puid:{type:"string",title:"User ID (PUID)",default:"1000",description:"Host user ID for file ownership"},pgid:{type:"string",title:"Group ID (PGID)",default:"1000",description:"Host group ID for file ownership"},publicUrl:{type:"string",title:"Public URL",description:"Required for OAuth. e.g. https://readmeabook.yourdomain.com"}}},benefits:[{title:"Audiobook Automation",description:"Request, search, download, and organize audiobooks automatically"},{title:"Plex & Audiobookshelf",description:"Integrates with popular media servers"},{title:"All-in-One",description:"PostgreSQL and Redis included; no external database required"},{title:"Self-Hosted",description:"Full control over your audiobook library"}],features:[{title:"Torrent & Usenet",description:"qBittorrent and SABnzbd support"},{title:"Prowlarr Integration",description:"Search across indexers via Prowlarr"},{title:"AI Recommendations",description:"BookDate with Tinder-style swipe (OpenAI, Claude, local models)"},{title:"Multi-User & Admin",description:"Request approval workflows"},{title:"Chapter Merging",description:"Multi-file chapter merging, e-book sidecar (EPUB/PDF)"}],tags:["Audiobook","Media","Plex","Automation","Open Source","Self-hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a,i,o=[],n=v(),r=["PUID=".concat(null!==(t=e.puid)&&void 0!==t?t:"1000"),"PGID=".concat(null!==(a=e.pgid)&&void 0!==a?a:"1000"),"POSTGRES_PASSWORD=".concat(n),"PUBLIC_URL=".concat(null!==(i=e.publicUrl)&&void 0!==i?i:"https://$(PRIMARY_DOMAIN)")];return o.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3030}],env:r.join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/app/config"},{type:"volume",name:"cache",mountPath:"/app/cache"},{type:"volume",name:"downloads",mountPath:"/downloads"},{type:"volume",name:"media",mountPath:"/media"},{type:"volume",name:"pgdata",mountPath:"/var/lib/postgresql/data"},{type:"volume",name:"redis",mountPath:"/var/lib/redis"}]}}),{services:o}}},{slug:"red-discordbot",meta:{name:"Red-DiscordBot",description:"Red-DiscordBot is a fully modular bot for Discord, designed to be easy to use and highly customizable. It features a robust command system, extensive documentation, and a large collection of community-created cogs (modules). The bot supports features like moderation, music playback, games, utility functions, and much more. With its modular design, users can easily add or remove functionality by loading and unloading cogs, making it perfect for both small and large Discord communities.",instructions:null,changeLog:[{date:"2025-03-2",description:"Initial template release"}],links:[{label:"GitHub",url:"https://github.com/Cog-Creators/Red-DiscordBot"},{label:"Documentation",url:"https://docs.discord.red/"},{label:"Docker Hub",url:"https://hub.docker.com/r/phasecorex/red-discordbot"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","discordToken","timeZone","discordPrefix"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"red-discordbot"},appServiceImage:{type:"string",title:"Red-DiscordBot Image",default:"phasecorex/red-discordbot:audio-py311"},discordToken:{type:"string",title:"Discord Bot Token",description:"Your Discord bot token from the Discord Developer Portal"},timeZone:{type:"string",title:"Timezone",default:"America/Detroit",description:"The timezone for your Discord server."},discordPrefix:{type:"string",title:"Discord Command Prefix",default:"."}}},benefits:[{title:"Modular Design",description:"Easily customize your bot by adding or removing cogs (modules) to suit your server's needs."},{title:"Extensive Feature Set",description:"Access a wide range of features including moderation, music, games, and utility functions."},{title:"Active Community",description:"Benefit from regular updates, community support, and a vast collection of user-created cogs."}],features:[{title:"Command System",description:"Create and manage custom commands with ease using Red's intuitive command system."},{title:"Cog Management",description:"Load, unload, and reload cogs without restarting the bot for seamless updates."},{title:"Data Storage",description:"Built-in data storage system for saving settings, user data, and custom configurations."},{title:"Event System",description:"Respond to Discord events and create custom event handlers for advanced functionality."}],tags:["Discord","Bot","Automation","Community","Chat","Dashboard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TOKEN=".concat(e.discordToken),"PREFIX=".concat(e.discordPrefix),"TZ=".concat(e.timeZone),"PUID=1000"].join("\n"),mounts:[{type:"volume",name:"red-data",mountPath:"/data"}]}}),{services:t}}},{slug:"redash",meta:{name:"Redash",description:"Redash helps teams become data-driven by connecting to data sources, building queries, creating visualizations, and sharing dashboards across the organization.",instructions:'After deployment, open your Redash domain and complete the initial setup in the web UI. Configure SMTP fields if you want scheduled reports and email delivery. You can disable mail transport by selecting "None". Redash workers and scheduler are provisioned automatically in this template.',changeLog:[{date:"2026-04-24",description:"Template Release (v10.1.0)"}],links:[{label:"Website",url:"https://redash.io/"},{label:"Documentation",url:"https://redash.io/help/"},{label:"GitHub",url:"https://github.com/getredash/redash"}],contributors:[{name:"tboulogne",url:"https://github.com/tboulogne"}],schema:{type:"object",required:["appServiceName","appServiceImage","mailTransport"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"redash"},appServiceImage:{type:"string",title:"App Service Image",default:"redash/redash:10.1.0.b50633"},mailServer:{type:"string",title:"Mail Host",default:""},mailUser:{type:"string",title:"Mail Auth User",default:""},mailPassword:{type:"string",title:"Mail Auth Password",default:""},mailPort:{type:"integer",title:"Mail Server Port",default:587},mailTransport:{type:"string",title:"Mail Transport",oneOf:[{enum:["NONE"],title:"None"},{enum:["SSL"],title:"SSL"},{enum:["TLS"],title:"TLS"}],default:"TLS"}}},benefits:[{title:"Query and Dashboard Sharing",description:"Build visual dashboards from SQL queries and share insights with your team."},{title:"Multiple Data Source Support",description:"Connect Redash to many data backends and centralize analysis in one UI."}],features:[{title:"Built-In Worker Services",description:"Includes scheduler and worker services for background query execution."},{title:"Optional Email Delivery",description:"Configure SMTP transport or disable it with a no-transport option."}],tags:["Analytics","Dashboard","Business Intelligence","SQL"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=y(32),o=v(),n=v(),r="".concat(e.appServiceName,"-db"),s="".concat(e.appServiceName,"-redis"),c="NONE"!==e.mailTransport?"REDASH_MAIL_USE_".concat(e.mailTransport,"=true"):"",l=["PYTHONUNBUFFERED=0","REDASH_LOG_LEVEL=INFO","REDASH_SECRET_KEY=".concat(a),"REDASH_COOKIE_SECRET=".concat(i),"REDASH_REDIS_URL=redis://:".concat(o,"@$(PROJECT_NAME)_").concat(s,":6379/0"),"REDASH_DATABASE_URL=postgres://postgres:".concat(n,"@$(PROJECT_NAME)_").concat(r,":5432/$(PROJECT_NAME)"),"REDASH_MAIL_SERVER=".concat(e.mailServer),"REDASH_MAIL_PORT=".concat(e.mailPort),"REDASH_MAIL_USERNAME=".concat(e.mailUser),"REDASH_MAIL_PASSWORD=".concat(e.mailPassword),c].filter(Boolean);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],env:Xe(l).concat(["REDASH_WEB_WORKERS=4"]).join("\n"),mounts:[{type:"volume",name:"redash_app_data",mountPath:"/app"}],deploy:{command:"/usr/local/bin/python /app/manage.py database create_tables && /app/bin/docker-entrypoint server"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-scheduler"),source:{type:"image",image:e.appServiceImage},env:Xe(l).concat(["QUEUES=celery","WORKERS_COUNT=1"]).join("\n"),mounts:[{type:"volume",name:"redash_app_data",mountPath:"/app"}],deploy:{command:"/app/bin/docker-entrypoint scheduler"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-scheduled-worker"),source:{type:"image",image:e.appServiceImage},env:Xe(l).concat(["QUEUES=scheduled_queries,schemas","WORKERS_COUNT=1"]).join("\n"),mounts:[{type:"volume",name:"redash_app_data",mountPath:"/app"}],deploy:{command:"/app/bin/docker-entrypoint worker"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-adhoc-worker"),source:{type:"image",image:e.appServiceImage},env:Xe(l).concat(["QUEUES=queries","WORKERS_COUNT=2"]).join("\n"),mounts:[{type:"volume",name:"redash_app_data",mountPath:"/app"}],deploy:{command:"/app/bin/docker-entrypoint worker"}}}),t.push({type:"redis",data:{serviceName:s,password:o}}),t.push({type:"postgres",data:{serviceName:r,password:n}}),{services:t}}},{slug:"redisinsight",meta:{name:"Redis Insight",description:"Redis Insight is an ideal tool for developers who build with any Redis deployments and who want to optimize their development process. Redis Insight lets you visually browse and interact with data, take advantage of the advanced command line interface and diagnostic tools, and so much more.",instructions:null,changeLog:[{date:"2025-09-23",description:"Template Release"}],links:[{label:"Website",url:"https://redis.io/insight"},{label:"Docker Hub",url:"https://hub.docker.com/r/redis/redisinsight"},{label:"Configuration",url:"https://redis.io/docs/latest/operate/redisinsight/configuration"}],contributors:[{name:"Leonardo Gomide",url:"https://github.com/leogomide"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"redisinsight"},appServiceImage:{type:"string",title:"App Service Image",default:"redis/redisinsight:2.70.1"}}},benefits:[{title:"Visual Data Exploration",description:"Easily browse, query, and manage Redis data structures through an intuitive graphical interface."},{title:"Faster Development",description:"Debug, test, and optimize Redis queries and workflows more efficiently with built-in tools."},{title:"Enhanced Productivity",description:"Gain insights into memory usage, performance, and data patterns to build scalable applications."}],features:[{title:"Visual Browser",description:"Navigate and manage keys, streams, hashes, sets, and other Redis data types interactively."},{title:"Advanced CLI",description:"Run Redis commands with autocomplete, syntax highlighting, and history support."},{title:"Performance Insights",description:"Analyze memory usage, latency, and command performance for optimization."},{title:"Data Visualization",description:"View data trends, charts, and statistics directly from your Redis instance."},{title:"Multi-Deployment Support",description:"Connect to multiple Redis servers, including standalone, clustered, and cloud-managed instances."}],tags:["Redis","Database Management","Data Visualization","Performance Monitoring","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5540}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"redlib",meta:{name:"Redlib",description:"Redlib is a privacy-focused and lightweight alternative frontend for Reddit, designed to enhance user experience by removing ads, tracking, and unnecessary JavaScript. Built using Rust, Redlib delivers a fast and efficient browsing experience while ensuring user privacy by proxying all requests, including media, through its server. It provides an ad-free, clutter-free interface inspired by Reddit's modern design, making it an ideal choice for users seeking a secure and streamlined way to browse Reddit content.",instructions:null,changeLog:[{date:"2024-12-02",description:"Template added"},{date:"2025-12-29",description:"Version bumped to sha-ba98178"}],links:[{label:"Website",url:"https://github.com/redlib-org/redlib"},{label:"Documentation",url:"https://github.com/redlib-org/redlib#readme"},{label:"Public Instances",url:"https://github.com/redlib-org/redlib-instances"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"redlib"},appServiceImage:{type:"string",title:"App Service Image",default:"quay.io/redlib/redlib:sha-ba98178"}}},benefits:[{title:"Enhanced Privacy",description:"Redlib proxies all requests through its server, including media, preventing Reddit from directly tracking users or accessing their information."},{title:"Lightweight and Fast",description:"Built with Rust, Redlib offers a fast browsing experience with minimal resource usage, free from JavaScript or bloated elements."},{title:"Customizable Settings",description:"Users can adjust settings like themes, default sorting, and display options through an intuitive interface, with preferences stored securely in cookies."}],features:[{title:"No Ads or Tracking",description:"Browse Reddit without interruptions or intrusive tracking, enjoying a clean and distraction-free interface."},{title:"Proxy-Based Privacy",description:"All requests, including media, are proxied through Redlib\u2019s server to ensure user anonymity and secure content delivery."},{title:"Rust-Powered Efficiency",description:"Built in Rust for optimal performance, offering a robust and secure backend to handle high traffic with ease."},{title:"Multi-Platform Deployment",description:"Redlib supports deployment on Docker, Podman, and other container platforms, with pre-built images for major architectures like amd64, arm64, and armv7."},{title:"Open Source and Community-Driven",description:"Fully open-source and actively maintained by a global community, enabling users to contribute to its growth and development."}],tags:["Privacy","Reddit","Alternative Frontend","Lightweight","Open Source"],logo:"logo.png",screenshots:["screenshots.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},deploy:{capDrop:["ALL"]},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"redmine",meta:{name:"Redmine",description:"Redmine is an open-source project management and issue-tracking tool. It provides a flexible framework for managing multiple projects and teams, offering features such as Gantt charts, calendar views, and time tracking to keep your projects organized. Redmine supports multiple databases and can be extended through plugins for additional functionality, making it a highly customizable solution for managing tasks, bugs, and collaboration among teams. The tool also includes role-based access control, allowing administrators to assign different permissions to users based on their responsibilities. Redmine integrates with version control systems like Git, Subversion, and Mercurial, enabling developers to track code changes directly from the platform. It supports major platforms including Windows, Linux, and macOS, and can be accessed via a web browser.",instructions:"Default admin login; admin/admin",changeLog:[{date:"2024-10-28",description:"Template added"},{date:"2025-02-28",description:"Version bumped to 6.0.3"},{date:"2025-07-24",description:"Version bumped to 6.0.6"},{date:"2025-12-29",description:"Version bumped to 6.1.0"},{date:"2026-05-05",description:"Version bumped to 6.1.2"}],links:[{label:"Website",url:"https://www.redmine.org/"},{label:"Documentation",url:"https://www.redmine.org/guide"},{label:"Github",url:"https://github.com/redmine/redmine"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","databaseServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"redmine"},appServiceImage:{type:"string",title:"App Service Image",default:"redmine:6.1.2"},databaseServiceName:{type:"string",title:"Database Service Name",default:"redmine-db"}}},benefits:[{title:"Flexible Project Management",description:"Redmine allows you to manage multiple projects with a wide variety of features, from task tracking and bug reporting to Gantt charts and calendars for effective planning and visualization."},{title:"Time Tracking and Reporting",description:"Track time spent on tasks and issues within your projects, generating detailed reports to analyze productivity and project progress over time."},{title:"Role-based Access Control",description:"Redmine\u2019s robust role-based access system ensures that you can control user permissions for different areas of the project, enhancing security and team collaboration."}],features:[{title:"Gantt Chart and Calendar",description:"Visualize your project timelines with Gantt charts and track deadlines using the calendar view to stay on top of deliverables."},{title:"Issue Tracking",description:"Manage tasks, bugs, features, and support tickets with Redmine\u2019s powerful issue tracking system, which includes workflows, custom fields, and more."},{title:"Integration with Version Control Systems",description:"Redmine integrates with major version control systems such as Git, Subversion, and Mercurial, allowing you to manage repositories and track code changes."},{title:"Plugin Support",description:"Extend Redmine\u2019s functionality with a wide range of plugins available for customization, offering additional features like agile boards, test management, and more."},{title:"Multi-Language Support",description:"Redmine supports multiple languages, making it accessible to global teams working in diverse environments."}],tags:["Project Management","Issue Tracking","Collaboration","Time Tracking","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["REDMINE_DB_MYSQL=$(PROJECT_NAME)_".concat(e.databaseServiceName),"REDMINE_DB_PORT=3306","REDMINE_DB_USERNAME=mysql","REDMINE_DB_PASSWORD=".concat(a),"REDMINE_DB_DATABASE=$(PROJECT_NAME)","REDMINE_SECRET_KEY_BASE=supersecretkey"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"reitti",meta:{name:"Reitti",description:"Reitti is a self-hosted journey planning and route optimization application designed for public transportation, cycling, and walking routes. Built on OpenStreetMap data, it provides intelligent route calculations using the Photon geocoding engine for address lookups and PostGIS for spatial data processing. The application features a web-based interface for planning multi-modal journeys, real-time route optimization, and comprehensive mapping capabilities. With RabbitMQ for task queuing and Redis for high-performance caching, Reitti delivers fast and responsive route calculations even with complex multi-leg journeys. The system can be configured for specific regions to optimize data storage and performance, making it suitable for cities, regions, or entire countries depending on your needs. Perfect for organizations wanting to provide their own journey planning services, transportation agencies developing custom routing solutions, smart city initiatives requiring private routing infrastructure, or developers building location-based applications with routing capabilities without relying on commercial APIs or sharing user data with third-party services.",instructions:null,changeLog:[{date:"2025-11-26",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to 3.4.1"},{date:"2026-05-05",description:"Version bumped to 4.0.5"}],links:[{label:"Docker Hub",url:"https://hub.docker.com/r/dedicatedcode/reitti"},{label:"Github",url:"https://github.com/dedicatedcode/reitti"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"reitti"},appServiceImage:{type:"string",title:"App Service Image",default:"dedicatedcode/reitti:4.0.5"},regionCode:{type:"string",title:"Region Code (e.g., de, us, fi - leave empty for worldwide)",default:"de"}}},benefits:[{title:"Self-Hosted Route Planning",description:"Complete control over your routing infrastructure with no dependency on commercial APIs or third-party services for journey planning."},{title:"OpenStreetMap Based",description:"Leverages the comprehensive and community-maintained OpenStreetMap database for accurate, up-to-date geographic data."},{title:"Multi-Modal Routing",description:"Calculate optimal routes combining public transportation, walking, cycling, and other transportation modes for comprehensive journey planning."},{title:"Privacy-Focused",description:"Keep all route planning and user data on your own infrastructure, ensuring complete privacy and data sovereignty."}],features:[{title:"Photon Geocoding",description:"Integrated Photon geocoding engine provides fast and accurate address-to-coordinate conversion using OpenStreetMap data."},{title:"PostGIS Spatial Database",description:"Advanced spatial data processing with PostGIS enables complex geographic queries and efficient route calculations."},{title:"Asynchronous Processing",description:"RabbitMQ message queue handles complex routing calculations asynchronously for responsive user experience."},{title:"High-Performance Caching",description:"Redis caching layer dramatically speeds up repeated route queries and reduces database load."},{title:"Regional Configuration",description:"Configure the system for specific geographic regions to optimize storage space and improve performance."},{title:"RESTful API",description:"Programmatic access to routing capabilities enables integration with custom applications and services."}],tags:["Route Planning","Journey Planner","Navigation","OpenStreetMap","Geocoding","Transportation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgis"),image:"postgis/postgis:17-3.5-alpine",password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-rabbitmq"),source:{type:"image",image:"rabbitmq:3-management-alpine"},env:["RABBITMQ_DEFAULT_USER=reitti","RABBITMQ_DEFAULT_PASS=".concat(i)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/var/lib/rabbitmq"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-photon"),source:{type:"image",image:"rtuszik/photon-docker:1.2.1"},env:["UPDATE_STRATEGY=PARALLEL","REGION=".concat(e.regionCode)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/photon/data"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["PHOTON_BASE_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-photon:2322"),"POSTGIS_USER=postgres","POSTGIS_PASSWORD=".concat(a),"POSTGIS_DB=$(PROJECT_NAME)","POSTGIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-postgis"),"RABBITMQ_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-rabbitmq"),"RABBITMQ_PORT=5672","RABBITMQ_USER=reitti","RABBITMQ_PASSWORD=".concat(i),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_USERNAME=default","REDIS_PASSWORD=".concat(o)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"remmina",meta:{name:"Remmina",description:"Remmina is a remote desktop client designed to be useful for system administrators and travellers who need to work with multiple remote computers. It supports a variety of network protocols, including RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC, all within an integrated and consistent user interface. The app is written in GTK and is designed to be functional on both large and tiny screens. It can be accessed via http://yourhost:3000/ or https://yourhost:3001/. The app is based on Docker Baseimage KasmVNC, which provides additional environment variables and run configurations to enable or disable specific functionality.",instructions:"use abc:abc to login. To access the login interface, add ?login=true to your URL.",changeLog:[{date:"2022-11-15",description:"first release"},{date:"2025-07-24",description:"Version bumped to 1.4.35"},{date:"2025-12-29",description:"Version bumped to 1.4.40"},{date:"2026-05-05",description:"Version bumped to 1.4.43"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-remmina"},{label:"Github",url:"https://github.com/linuxserver/docker-remmina"},{label:"Website",url:"https://remmina.org"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"remmina"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/remmina:1.4.43"}}},benefits:[{title:"Remote Access",description:"Remmina provides the ability to access and work on multiple remote computers, making it an ideal tool for system administrators and travellers."},{title:"Supports Multiple Network Protocols",description:"The app supports a variety of network protocols including RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC, offering flexibility and versatility in remote connections."},{title:"Integrated and Consistent User Interface",description:"Remmina offers an integrated and consistent user interface, making it easy to navigate and use, regardless of the network protocol being utilized."}],features:[{title:"Multi-Platform Awareness",description:"Remmina utilizes the docker manifest for multi-platform awareness, ensuring the correct image is retrieved for your architecture."},{title:"Application Setup",description:"The application can be accessed at specified host addresses, providing easy setup and access to the application."},{title:"Environment Variables",description:"Remmina allows for the setting of environment variables, providing customization and control over the application's functionality."},{title:"Lossless Mode",description:"The app is capable of delivering a true lossless image at a high framerate to your web browser, providing high-quality remote desktop visuals."}],tags:["Remote Desktop","System Administration","Network Protocols"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"remotely",meta:{name:"Remotely",description:"Remotely is a free, open-source remote support and remote access solution that enables IT professionals to provide remote assistance to users and manage computers remotely. Built with ASP.NET Core, it offers secure remote desktop access, file transfer capabilities, remote command execution, and comprehensive device management features. The platform includes a web-based dashboard for managing connected devices, user authentication, and audit logging. Perfect for IT support teams, managed service providers, and organizations that need to provide remote technical support and system administration.",instructions:null,changeLog:[{date:"2025-08-05",description:"First release"},{date:"2026-05-05",description:"version bumped to 1037"}],links:[{label:"Github",url:"https://github.com/immense/Remotely"},{label:"Documentation",url:"https://github.com/immense/Remotely#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"remotely"},appServiceImage:{type:"string",title:"App Service Image",default:"immybot/remotely:1037"}}},benefits:[{title:"Secure Remote Access",description:"Provide secure remote desktop access to computers with encrypted connections and comprehensive security features for safe remote support."},{title:"Cross-Platform Support",description:"Support Windows, macOS, and Linux systems with a unified remote access solution that works across different operating systems and devices."},{title:"File Transfer Capabilities",description:"Transfer files securely between local and remote machines with built-in file management tools for efficient remote support operations."},{title:"Remote Command Execution",description:"Execute commands remotely on target machines for system administration, troubleshooting, and automated maintenance tasks."},{title:"User Management",description:"Manage user accounts, permissions, and access controls with role-based security for team collaboration and access management."},{title:"Audit Logging",description:"Comprehensive logging and audit trails for all remote sessions, file transfers, and administrative actions for compliance and security."}],features:[{title:"Remote Desktop Control",description:"Full remote desktop access with screen sharing, keyboard and mouse control, and real-time collaboration capabilities for remote support."},{title:"Device Management",description:"Centralized management of connected devices with system information, status monitoring, and remote configuration capabilities."},{title:"Session Recording",description:"Record remote sessions for training, compliance, and troubleshooting purposes with playback and sharing functionality."},{title:"Chat and Communication",description:"Built-in chat functionality for real-time communication between support technicians and end users during remote sessions."},{title:"Wake-on-LAN",description:"Wake up remote computers from sleep mode using Wake-on-LAN technology for convenient remote access without physical presence."},{title:"Multi-Monitor Support",description:"Support for multiple monitors on remote machines with seamless switching and display management for comprehensive remote control."}],tags:["Remote Access","IT Support","Remote Desktop","System Administration","Remote Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],env:["ASPNETCORE_ENVIRONMENT=Production","ASPNETCORE_HTTP_PORTS=5000","Serilog__MinimumLevel__Override__Microsoft.AspNetCore=Warning","Serilog__MinimumLevel__Override__System=Warning","Remotely_ApplicationOptions__DbProvider=SQLite","Remotely_ConnectionStrings__SQLite=Data Source=/app/AppData/Remotely.db","Remotely_ConnectionStrings__SQLServer=Server=(localdb)\\mssqllocaldb;Database=Remotely-Server-53bc9b9d-9d6a-45d4-8429-2a2761773502;Trusted_Connection=True;MultipleActiveResultSets=true","Remotely_ConnectionStrings__PostgreSQL=Host=localhost;Database=Remotely;Username=postgres;Password=changeme;"].join("\n"),mounts:[{type:"volume",name:"remotely-data",mountPath:"/app/AppData"}]}}),{services:t}}},{slug:"request-baskets",meta:{name:"Request Baskets",description:"Request Baskets is a lightweight application designed for developers to capture and inspect HTTP requests. It allows creating disposable endpoints to test webhooks, APIs, or any HTTP-based interaction. The application provides an intuitive web interface for monitoring and debugging incoming requests in real time.",instructions:null,changeLog:[{date:"2025-01-22",description:"First Release"}],links:[{label:"Demo",url:"https://rbaskets.in/web"},{label:"Github",url:"https://github.com/darklynx/request-baskets"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"request-baskets"},appServiceImage:{type:"string",title:"App Service Image",default:"darklynx/request-baskets:v1.2.3"}}},benefits:[{title:"HTTP Request Inspection",description:"Request Baskets allows developers to monitor and debug HTTP requests efficiently, aiding in API testing and development workflows."},{title:"Disposable Endpoints",description:"The app enables the creation of temporary endpoints for testing webhooks, providing a simple and effective solution for temporary integrations."},{title:"Intuitive User Interface",description:"Request Baskets offers a clean and user-friendly interface for viewing and analyzing incoming requests in real time."}],features:[{title:"Multi-Platform Awareness",description:"Request Baskets uses the docker manifest for multi-platform support, ensuring compatibility across various architectures."},{title:"Easy Access",description:"The application can be accessed at specified host addresses, making it straightforward to set up and use."},{title:"Environment Variables",description:"Request Baskets allows for the customization of its behavior through environment variables, offering flexibility for diverse use cases."},{title:"Real-Time Monitoring",description:"The app provides real-time monitoring of HTTP requests, allowing immediate feedback and debugging for developers."}],tags:["HTTP Requests","API Testing","Webhooks"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"resiliosync",meta:{name:"Resilio Sync",description:"Sync (Resilio Sync) is a self-hosted file synchronization and sharing application that allows users to securely sync files between devices without relying on cloud storage. It provides a powerful alternative to proprietary cloud-based file sharing services, ensuring complete control over data and privacy. With Sync, users can transfer large files quickly, collaborate on projects in real-time, and maintain data consistency across multiple devices. Built with efficiency and security in mind, Sync is ideal for both personal and business use.",instructions:null,changeLog:[{date:"2025-02-06",description:"First Release"}],links:[{label:"Documentation",url:"https://help.resilio.com/hc/en-us"},{label:"Dockerhub Documentation",url:"https://hub.docker.com/r/resilio/sync"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"resilio-sync"},appServiceImage:{type:"string",title:"App Service Image",default:"resilio/sync:2.8.1"}}},benefits:[{title:"Secure and Private File Sync",description:"Sync allows users to sync files directly between devices without relying on cloud storage, ensuring privacy and security."},{title:"High-Speed File Transfers",description:"Sync is optimized for fast file transfers, even with large files, utilizing peer-to-peer technology for efficient data distribution."},{title:"Cross-Platform Support",description:"Sync is available on multiple platforms, including Windows, macOS, Linux, iOS, and Android, making file access seamless across devices."}],features:[{title:"Peer-to-Peer File Sync",description:"Sync directly transfers files between devices using peer-to-peer connections, eliminating the need for centralized cloud storage."},{title:"End-to-End Encryption",description:"Sync ensures that all file transfers are encrypted, protecting sensitive data from unauthorized access."},{title:"Selective Sync",description:"Users can choose specific files or folders to sync, optimizing storage and bandwidth usage."},{title:"Automatic Backup",description:"Keep important files backed up by setting up automatic synchronization between selected devices."},{title:"Folder Sharing and Collaboration",description:"Share files and folders securely with team members, allowing real-time collaboration and access control."}],tags:["File Synchronization","Self-Hosted","Privacy","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8888}],mounts:[{type:"volume",name:"sync",mountPath:"/mnt/sync"}]}}),{services:t}}},{slug:"resourcespace",meta:{name:"ResourceSpace",description:"ResourceSpace is an open-source Digital Asset Management (DAM) system that helps organizations manage, organize, and share their digital assets efficiently. It provides a web-based interface for managing files, images, videos, and other digital resources with features like metadata management, version control, and access control.",instructions:null,changeLog:[{date:"2025-03-26",description:"Initial template release"}],links:[{label:"Website",url:"https://www.resourcespace.com/"},{label:"Documentation",url:"https://www.resourcespace.com/documentation"},{label:"GitHub",url:"https://github.com/ResourceSpace/ResourceSpace"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"resourcespace"},appServiceImage:{type:"string",title:"ResourceSpace Image",default:"creecros/resourcespace-docker:v9.2"}}},benefits:[{title:"Digital Asset Management",description:"Efficient management of digital assets and resources."},{title:"Web-Based Interface",description:"User-friendly web interface for asset management."},{title:"Flexible Storage",description:"Support for multiple storage locations and configurations."},{title:"Access Control",description:"Granular access control and user permissions."}],features:[{title:"Asset Management",description:"Comprehensive digital asset management capabilities."},{title:"Metadata Support",description:"Rich metadata management for assets."},{title:"Version Control",description:"Track and manage asset versions."},{title:"Search & Filter",description:"Advanced search and filtering capabilities."}],tags:["DAM","Asset Management","File Management","Web Interface","Database"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"include",mountPath:"/var/www/html/include"},{type:"volume",name:"filestore",mountPath:"/var/www/html/filestore"},{type:"volume",name:"storage",mountPath:"/srv/storage/testdir"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"restreamer",meta:{name:"Restreamer",description:"datarhei Restreamer is a powerful video streaming platform designed to provide real-time live video streaming on websites and social media platforms. It eliminates the need for additional streaming provider costs for video hosting or software licensing. The app allows teams to live stream and restream everything from webcams to broadcasting, making streaming more efficient and user-friendly. It offers live streaming on websites without additional service providers or video hosting providers, and it's instantly available, free of charge, and without advertising. Users can share live videos publicly or privately with anyone, or use a secret link to give their audience access to private content. The app also provides a simple streaming server with self-installation on your server or Raspberry Pi. The fully documented API makes datarhei Restreamer easy to adapt to any project.",instructions:null,changeLog:[{date:"2022-10-29",description:"first release"},{date:"2023-05-08",description:"Upgraded to version 2.6.0."}],links:[{label:"Documentation",url:"https://docs.datarhei.com/restreamer/"},{label:"Github",url:"https://github.com/datarhei/restreamer"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"restreamer"},appServiceImage:{type:"string",title:"App Service Image",default:"datarhei/restreamer:2.12.0"}}},benefits:[{title:"Real-time Live Video Streaming",description:"datarhei Restreamer provides real-time live video streaming on websites and social media platforms without additional streaming provider costs for video hosting or software licensing costs."},{title:"Efficient Streaming",description:"We aim to help teams stream more efficiently by creating a simple yet powerful service for them to live stream video."},{title:"User-friendly and Powerful",description:"Our mission is to make a user-friendly and powerful product for everyone to stream video."},{title:"Free of Charge",description:"datarhei Restreamer is instantly available, free of charge, and without advertising."},{title:"Private and Public Sharing",description:"Share live videos publicly or privately with anyone, or use a secret link to give your audience access to private content."}],features:[{title:"Live Streaming",description:"Live stream on websites without additional service providers or video hosting providers."},{title:"Publication Services",description:"Overview of Publication Services in datarhei Restreamer V2."},{title:"Streaming Server",description:"Enjoy a simple streaming server with self-installation on your server or Raspberry Pi."},{title:"Different Streaming Protocols",description:"Overview of the different streaming protocols from datarhei Restreamer V2."},{title:"Fully Documented API",description:"The fully documented API helps with software development. datarhei Restreamer is very easy to adapt to any project."}],tags:["Media","Video Streaming","Live Streaming"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"config",mountPath:"/core/config"},{type:"volume",name:"data",mountPath:"/core/data"}]}}),{services:t}}},{slug:"rocketchat",meta:{name:"Rocket.Chat",description:"Rocket.Chat SIX is a secure and scalable collaboration platform designed to enhance team productivity and customer service experiences. It allows you to own your data and offers extensive customization and integration options. The platform brings together messages, projects, and tasks into one place, enabling teams to work more efficiently. It also provides an omnichannel customer service experience, allowing businesses to engage in contextual interactions with customers, fostering long-term relationships and improved business outcomes. Additionally, Rocket.Chat SIX features a chat engine to drive higher user engagement within your app or website. The platform is built for teams that need more control, offering end-to-end encryption, compliance with various data protection regulations, and a wide range of deployment options to meet your security needs.",instructions:null,changeLog:[{date:"2022-08-10",description:"first release"},{date:"2023-3-20",description:"Update to v5.4.5"},{date:"2025-07-24",description:"Version bumped to 7.8.2"},{date:"2025-12-29",description:"Version bumped to 7.12.3"}],links:[{label:"Website",url:"https://rocket.chat/"},{label:"Documentation",url:"https://docs.rocket.chat/"},{label:"Github",url:"https://github.com/RocketChat/Rocket.Chat"}],contributors:[{name:"Bedeoan Raul",url:"https://github.com/bedeoan"},{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rocketchat"},appServiceImage:{type:"string",title:"App Service Image",default:"rocketchat/rocket.chat:7.12.3"},databaseServiceImage:{type:"string",title:"Database Service Image",default:"docker.io/bitnamilegacy/mongodb:5.0"}}},benefits:[{title:"Secure and Compliant Collaboration",description:"Rocket.Chat SIX provides a secure and compliant platform for collaboration. It allows you to own your data, customize anything, and integrate everything, ensuring your conversations are private and under your control."},{title:"Enhanced Team Collaboration",description:"The app brings together messages, projects, and tasks into one place, empowering teams to get their best work done and boosting productivity."},{title:"Improved Customer Service",description:"Rocket.Chat SIX enables you to deliver great customer experiences by engaging in contextual interactions with customers, irrespective of how they contact you. This ensures long-term relationships and improved business outcomes."}],features:[{title:"Chat Engine",description:"Rocket.Chat SIX includes a chat engine that drives higher app users\u2019 engagement. It allows you to create custom messaging experiences within your app or website."},{title:"Marketplace",description:"The app provides a marketplace where you can bring your tools, people, and processes together. It allows you to extend and customize your workspace with custom apps, open APIs, powerful plugins, and webhooks."},{title:"Control and Privacy",description:"With Rocket.Chat SIX, you are 100% in control of your conversations. The app supports end-to-end encryption, is ISO 27001 certified, and supports compliance with GDPR, CCPA, LGPD, and HIPAA."},{title:"Customizability",description:"Rocket.Chat SIX is 100% customizable. It allows you to integrate with your ecosystem using its open API and offers a wide range of customization and white-labeling options."}],tags:["Chat","Communication","Collaboration"],logo:"logo.svg",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-db"),source:{type:"image",image:e.databaseServiceImage},mounts:[{type:"volume",name:"mongodb_data",mountPath:"/bitnami/mongodb"}],env:["MONGODB_REPLICA_SET_MODE=primary","MONGODB_REPLICA_SET_NAME=rs0","MONGODB_PORT_NUMBER=27017","MONGODB_INITIAL_PRIMARY_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"MONGODB_INITIAL_PRIMARY_PORT_NUMBER=27017","MONGODB_ADVERTISED_HOSTNAME=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"MONGODB_ENABLE_JOURNAL=true","ALLOW_EMPTY_PASSWORD=true"].join("\n")}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["MONGO_URL=mongodb://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:27017/rocketchat?replicaSet=rs0"),"MONGO_OPLOG_URL=mongodb://$(PROJECT_NAME)_".concat(e.appServiceName,"-db:27017/local?replicaSet=rs0")].join("\n")}}),{services:t}}},{slug:"rotki",meta:{name:"Rotki",description:"Rotki is a comprehensive asset management and accounting application, specifically designed for crypto assets. The app is designed to help with tax reporting by importing, displaying, storing, and generating reports and statistics from cryptocurrency transaction data and other assets. It integrates with multiple exchanges, providing a centralized platform for managing your crypto assets. Rotki also offers the ability to generate profit/loss reports, making it easier to understand your financial standing. It's important to note that while Rotki aids in tax reporting, it does not provide tax or legal advice, and it's the user's responsibility to ensure the accuracy of the data provided to the service. The app is not intended for continuous monitoring of transaction data or for automatic transmission of your transaction data to any tax authority.",instructions:null,changeLog:[{date:"2023-2-9",description:"first release"},{date:"2025-02-28",description:"Version bumped to v1.38"},{date:"2025-07-24",description:"Version bumped to v1.39.1"},{date:"2025-12-29",description:"Version bumped to v1.41.3"},{date:"2026-02-24",description:"Version bumped to v1.42.0"},{date:"2026-05-05",description:"Version bumped to v1.42.1"}],links:[{label:"Documentation",url:"https://rotki.readthedocs.io/en/latest/"},{label:"Github",url:"https://github.com/rotki/rotki"},{label:"Website",url:"https://rotki.com/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rotki"},appServiceImage:{type:"string",title:"App Service Image",default:"rotki/rotki:v1.42.1"}}},benefits:[{title:"Asset Management",description:"Rotki is an asset management application that specializes in crypto assets. It allows you to keep track of your assets in one place, making it easier to manage your portfolio."},{title:"Tax Reporting",description:"Rotki aims to help with tax reporting. It generates reports and statistics from your cryptocurrency transaction data, which can be useful for tax purposes."},{title:"Privacy Protection",description:"Unlike other services, Rotki stores your data encrypted locally on your computer. This ensures that your financial data remains private and secure."}],features:[{title:"Integration with Multiple Exchanges",description:"Rotki has integration for multiple exchanges, with more coming soon. This allows you to manage your assets across different platforms easily."},{title:"Transaction Data Import and Display",description:"Rotki allows you to import, display, and store your cryptocurrency transaction data. It also generates reports and statistics from this data."},{title:"Profit/Loss Report Generation",description:"Rotki allows you to create a profit/loss report. This can help you understand your financial performance and make informed decisions."},{title:"Decentralized Finance",description:"Rotki supports decentralized finance. This means you can manage your DeFi assets along with your traditional assets."}],tags:["Finance","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["ROTKI_ACCEPT_DOCKER_RISK=1"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"logs",mountPath:"/logs"}]}}),{services:t}}},{slug:"roundcube",meta:{name:"Roundcube",description:"Roundcube webmail is a browser-based, multilingual IMAP client that offers an application-like user interface. It is designed to provide all the functionalities you would expect from an email client. This includes MIME support, an address book, folder manipulation, message searching, and spell checking. The app also supports drag-and-drop message management, multiple sender identities, and a full-featured address book with groups and LDAP connectors. It offers a threaded message listing, IDNA and SMTPUTF8 support, and a responsive skin for multi-device support. Roundcube webmail also features built-in caching for fast mailbox access, unlimited users and messages, import/export functions, and support for PGP encryption.",instructions:'After Roundcube is installed, you can log in to the mail accounts on the service where you entered the "SMTP" information.',changeLog:[{date:"2023-03-15",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 1.6.10-apache"},{date:"2025-07-24",description:"Version bumped to 1.6.11-apache"},{date:"2025-12-29",description:"Version bumped to 1.6.12-apache"},{date:"2026-02-24",description:"Version bumped to 1.6.13-apache"},{date:"2026-05-05",description:"Version bumped to 1.6.15-apache"}],links:[{label:"Website",url:"https://roundcube.net/"},{label:"Github",url:"https://github.com/roundcube/roundcubemail/"},{label:"Docker",url:"https://hub.docker.com/r/roundcube/roundcubemail/"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","roundcubeDefaultHost","roundcubeSmtpServer"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"roundcube"},appServiceImage:{type:"string",title:"App Service Image",default:"roundcube/roundcubemail:1.6.15-apache"},roundcubeDefaultHost:{type:"string",title:"Default Host",description:"Hostname of the IMAP server to connect to. For encypted connections, prefix the host with tls:// (STARTTLS) or ssl:// (SSL/TLS)."},roundcubeDefaultPort:{type:"number",title:"Default Port",description:"IMAP port number.",default:143},roundcubeSmtpServer:{type:"string",title:"SMTP Server",description:"Hostname of the SMTP server to send mails. For encypted connections, prefix the host with tls:// (STARTTLS) or ssl:// (SSL/TLS)."},roundcubeSmtpPort:{type:"number",title:"SMTP Port",description:"SMTP port number.",default:587},roundcubePlugins:{type:"string",title:"Plugins",description:"List of built-in plugins to activate.",default:"archive,zipdownload"},roundcubeUploadMaxFilesize:{type:"string",title:"Upload Max File Size",description:"File upload size limit.",default:"5M"}}},benefits:[{title:"Efficient Email Management",description:"Roundcube webmail is a browser-based multilingual IMAP client that offers an application-like user interface. It provides full functionality you expect from an email client, making email management efficient and easy."},{title:"Versatile Functionality",description:"From MIME support, address book, folder manipulation, to message searching and spell checking, Roundcube webmail provides a wide range of features to cater to your email needs."},{title:"Fast Mailbox Access",description:"With built-in caching, Roundcube webmail ensures fast mailbox access, allowing you to browse through your emails quickly and seamlessly."},{title:"Multi-Device Support",description:"Roundcube webmail comes with a responsive skin, providing multi-device support. This means you can access your emails from any device, anytime, anywhere."}],features:[{title:"Drag-&-drop Message Management",description:"Roundcube webmail allows you to manage your messages easily with its drag-and-drop feature."},{title:"Full Support for MIME and HTML Messages",description:"Roundcube webmail provides full support for MIME and HTML messages, ensuring you can view and manage all types of email content."},{title:"Multiple Sender Identities",description:"With Roundcube webmail, you can manage multiple sender identities, making it ideal for users with multiple email accounts."},{title:"Full Featured Address Book",description:"Roundcube webmail includes a full-featured address book with groups and LDAP connectors, making it easy to manage your contacts."},{title:"Threaded Message Listing",description:"Roundcube webmail offers threaded message listing, allowing you to view your email conversations in a threaded view."},{title:"Spell Checking",description:"Roundcube webmail includes a spell checking feature, ensuring your emails are free of spelling errors."},{title:"Support for Access Control Lists (ACL)",description:"Roundcube webmail supports access control lists (ACL), allowing you to control who has access to your emails."},{title:"Import/Export Functions",description:"Roundcube webmail includes import/export functions, allowing you to easily transfer your emails and contacts."},{title:"Plug-in API for Flexible Extensions",description:"Roundcube webmail comes with a plug-in API, allowing for flexible extensions to enhance its functionality."},{title:"XSS Attack Protection",description:"Roundcube webmail includes XSS attack protection, ensuring your emails are safe from cross-site scripting attacks."},{title:"Support for PGP Encryption",description:"Roundcube webmail supports PGP encryption, ensuring your emails are securely encrypted."}],tags:["Email"],logo:"logo.svg",screenshots:["screenshot1.png","screenshot10.png","screenshot11.png","screenshot12.png","screenshot2.png","screenshot3.png","screenshot4.png","screenshot5.png","screenshot6.png","screenshot7.png","screenshot8.png","screenshot9.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["ROUNDCUBEMAIL_DEFAULT_HOST=".concat(e.roundcubeDefaultHost),"ROUNDCUBEMAIL_DEFAULT_PORT=".concat(e.roundcubeDefaultPort),"ROUNDCUBEMAIL_SMTP_SERVER=".concat(e.roundcubeSmtpServer),"ROUNDCUBEMAIL_SMTP_PORT=".concat(e.roundcubeSmtpPort),"ROUNDCUBEMAIL_PLUGINS=".concat(e.roundcubePlugins),"ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE=".concat(e.roundcubeUploadMaxFilesize)].join("\n"),mounts:[{type:"volume",name:"html",mountPath:"/var/www/html"},{type:"volume",name:"config",mountPath:"/var/roundcube/config"},{type:"volume",name:"db",mountPath:"/var/roundcube/db"}]}}),{services:t}}},{slug:"rss-bridge",meta:{name:"RSS-Bridge",description:"RSS-Bridge is a self-hosted, open-source tool that generates RSS and Atom feeds for websites that do not provide them natively. It enables users to extract and aggregate content from various web pages, social media platforms, and other online sources into a single, unified RSS feed. This allows users to stay updated with the latest content from multiple sources without manually visiting each site. RSS-Bridge supports various website connectors, filtering options, and output formats to provide a customized feed experience.",instructions:null,changeLog:[{date:"2025-02-04",description:"first release"},{date:"2025-07-24",description:"Version bumped to sha-d19ce75"},{date:"2025-12-29",description:"Version bumped to sha-6a0cc5b"},{date:"2026-02-24",description:"Version bumped to sha-e213d95"},{date:"2026-05-05",description:"Version bumped to sha-ac2608a"}],links:[{label:"Website",url:"https://rss-bridge.github.io/rss-bridge/"},{label:"GitHub",url:"https://github.com/RSS-Bridge/rss-bridge"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rss-bridge"},appServiceImage:{type:"string",title:"App Service Image",default:"rssbridge/rss-bridge:sha-ac2608a"}}},benefits:[{title:"Generate RSS Feeds for Any Website",description:"RSS-Bridge allows you to create RSS and Atom feeds for websites that do not provide them natively. This ensures you can follow updates from any site in your preferred RSS reader."},{title:"Custom Filtering & Formatting",description:"With built-in filtering options, RSS-Bridge enables you to refine feeds based on keywords, categories, and other parameters, ensuring you only receive relevant updates."},{title:"Self-Hosted & Privacy-Focused",description:"RSS-Bridge is open-source and can be self-hosted, providing full control over your feed aggregation while ensuring privacy and avoiding third-party tracking."}],features:[{title:"Multiple Website Connectors",description:"RSS-Bridge supports a wide range of pre-built connectors for popular websites, including news platforms, social media, and blogs, making it easy to generate feeds."},{title:"Various Output Formats",description:"The tool provides multiple output formats, including RSS, Atom, JSON, and plaintext, ensuring compatibility with different feed readers and automation tools."},{title:"Advanced Feed Customization",description:"Users can apply advanced filtering, keyword-based searches, and content trimming to refine their RSS feeds based on their specific interests."},{title:"Lightweight & Fast",description:"RSS-Bridge is designed to be lightweight and efficient, allowing it to run on minimal hardware while delivering real-time updates from various sources."},{title:"No API Keys Required",description:"Unlike many third-party services, RSS-Bridge does not require API keys, making it easy to use without complex setup or rate limits."}],tags:["RSS","Feed Aggregation","News","Content Filtering","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"rsshub",meta:{name:"RSSHub",description:"RSSHub is an open-source, user-friendly, and extensible RSS feed generator. It is designed to create RSS feeds from virtually any content. With the ability to aggregate millions of contents from various sources, RSSHub ensures the delivery of new routes, features, and bug fixes. The app is compatible with the browser extension RSSHub Radar and mobile auxiliary apps RSSBud (iOS) and RSSAid (Android). It has adapted to hundreds of websites and thousands of content types, making it a versatile tool for generating RSS feeds.",instructions:null,changeLog:[{date:"2023-07-09",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 2025-02-28"},{date:"2025-07-24",description:"Version bumped to 2025-07-24"},{date:"2025-12-29",description:"Version bumped to 2025-12-30"},{date:"2026-02-24",description:"Version bumped to 2026-02-23"},{date:"2026-05-05",description:"Version bumped to 2026-05-04"}],links:[{label:"Website",url:"https://rsshub.app/"},{label:"Documentation",url:"https://docs.rsshub.app/"},{label:"Github",url:"https://github.com/DIYgod/RSSHub"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rsshub"},appServiceImage:{type:"string",title:"App Service Image",default:"diygod/rsshub:2026-05-04"}}},benefits:[{title:"Efficient Content Aggregation",description:"RSSHub is an open-source RSS feed generator that efficiently aggregates content from a wide variety of sources. It delivers millions of contents, ensuring you always have access to the latest updates."},{title:"Extensibility",description:"RSSHub is designed to be extensible, capable of generating RSS feeds from pretty much everything. This means it can adapt to your specific needs and provide feeds from even the most obscure sources."},{title:"Ease of Use",description:"RSSHub is easy to use, making it accessible to users of all levels of technical proficiency. You can easily generate RSS feeds without needing advanced technical knowledge."}],features:[{title:"RSS Feed Generation",description:"RSSHub can generate RSS feeds from a wide variety of sources. Whether it's social media, traditional media, blogs, or any other type of content, RSSHub can create an RSS feed for it."},{title:"Browser Extension and Mobile App Compatibility",description:"RSSHub can be used with the RSSHub Radar browser extension and the RSSBud (iOS) and RSSAid (Android) mobile apps. This allows you to easily discover and subscribe to RSS feeds on your preferred devices."},{title:"Open Source Development",description:"RSSHub is an open-source project, which means it's constantly being improved and updated by a vibrant community of developers. This ensures that the app stays up-to-date with the latest features and bug fixes."}],tags:["RSS"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1200}]}}),{services:t}}},{slug:"rstudio",meta:{name:"RStudio",description:"RStudio is a powerful integrated development environment (IDE) for R programming and statistical computing. It provides a comprehensive set of tools for data analysis, visualization, and statistical modeling. This server-based version allows you to access RStudio through your web browser, enabling collaborative work and remote access to your R projects from anywhere. Perfect for data scientists, statisticians, and researchers working with R.",instructions:"Default username is rstudio and password is 1234",changeLog:[{date:"2025-10-13",description:"Initial Template Release (4.5)"}],links:[{label:"Website",url:"https://posit.co/products/open-source/rstudio/"},{label:"Documentation",url:"https://docs.posit.co/ide/server-pro/"},{label:"GitHub",url:"https://github.com/rstudio/rstudio"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rstudio"},appServiceImage:{type:"string",title:"App Service Image",default:"rocker/rstudio:4.5.2"},password:{type:"string",title:"Password",default:"1234"}}},benefits:[{title:"Web-Based IDE",description:"Access a full-featured R development environment through your web browser from any device without local installation."},{title:"Statistical Computing",description:"Powerful tools for statistical analysis, data visualization, and machine learning with extensive R package support."},{title:"Remote Collaboration",description:"Work on R projects remotely and collaborate with team members by sharing access to the same RStudio server instance."},{title:"Data Science Workflows",description:"Integrated support for R Markdown, Shiny apps, version control, and package management for complete data science workflows."}],features:[{title:"Code Editor",description:"Advanced code editor with syntax highlighting, code completion, and debugging tools specifically designed for R."},{title:"Data Visualization",description:"Create interactive plots and visualizations using ggplot2, plotly, and other R visualization libraries."},{title:"Package Management",description:"Easy installation and management of R packages from CRAN, Bioconductor, and GitHub repositories."},{title:"R Markdown Support",description:"Create reproducible reports and documents combining code, output, and narrative text using R Markdown."}],tags:["Development","IDE","R","Statistics","Data Science","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PASSWORD=".concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8787}],mounts:[{type:"volume",name:"rstudio_data",mountPath:"/home/rstudio"}]}}),{services:t}}},{slug:"rustdesk",meta:{name:"Rustdesk",description:"Rustdesk is a self-hosted remote desktop application that allows you to access and control devices remotely. It provides an open-source alternative to proprietary remote desktop software, offering full control over your own remote access infrastructure. With Rustdesk, users can securely connect to their computers from anywhere, manage remote desktops efficiently, and ensure privacy by hosting their own Rustdesk relay and ID server. Rustdesk is built with high-performance and encryption in mind, making it suitable for both personal and enterprise use.",instructions:null,changeLog:[{date:"2025-02-05",description:"First Release"},{date:"2025-02-28",description:"Version bumped to 1.3.8"},{date:"2025-07-24",description:"Version bumped to 1.4.0"},{date:"2025-12-29",description:"Version bumped to 1.4.4"},{date:"2026-02-24",description:"Version bumped to 1.4.5"},{date:"2026-05-05",description:"Version bumped to 1.4.6"}],links:[{label:"Documentation",url:"https://rustdesk.com/docs/en/"},{label:"Github",url:"https://github.com/rustdesk/rustdesk"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rustdesk"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/rustdesk:1.4.6"}}},benefits:[{title:"Secure Remote Access",description:"Rustdesk provides a fully encrypted remote desktop solution, ensuring that your data remains private and secure. You can host your own Rustdesk relay and ID server to maintain control over your connections."},{title:"Cross-Platform Support",description:"Rustdesk is compatible with multiple operating systems, including Windows, macOS, Linux, iOS, and Android, allowing seamless remote access across devices."},{title:"Lightweight and High-Performance",description:"Rustdesk is designed to be lightweight while offering high performance for remote desktop connections. It provides smooth screen sharing and input control, even on lower bandwidth connections."}],features:[{title:"Self-Hosted Server",description:"Rustdesk allows you to deploy and manage your own relay and ID server, providing full control over remote access connections and eliminating reliance on third-party servers."},{title:"End-to-End Encryption",description:"Rustdesk ensures security through end-to-end encryption, protecting communication between the client and the remote device."},{title:"File Transfer",description:"Users can transfer files between local and remote machines easily, making it a convenient solution for remote work and troubleshooting."},{title:"Unattended Access",description:"Rustdesk supports unattended access, allowing users to connect to remote machines without requiring manual acceptance each time."},{title:"Multi-Monitor Support",description:"Rustdesk provides multi-monitor support, making it easy to navigate between different screens in a remote desktop session."}],tags:["Remote Desktop","Productivity","Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"rustfs",meta:{name:"RustFS",description:"RustFS is a high-performance, S3-compatible object storage system built in Rust. It is 2.3x faster than MinIO for small object payloads and offers full S3 API compatibility, a built-in web management console, erasure coding with Reed-Solomon for data protection, bitrot detection via HighwayHash, and server-side encryption with AES-256-GCM and ChaCha20-Poly1305. RustFS supports event notifications, bucket versioning, object lifecycle management, bucket replication, and CORS configuration. Licensed under the permissive Apache 2.0 license, it is designed for data lakes, AI workloads, and large-scale storage with a user-friendly deployment experience.",instructions:"Login to the web console using the Access Key and Secret Key configured during setup. The console is available on the default domain.",changeLog:[{date:"2026-02-19",description:"Template Release"},{date:"2026-05-08",description:"Version bumped to 1.0.0-alpha.99"}],links:[{label:"GitHub",url:"https://github.com/rustfs/rustfs"},{label:"Documentation",url:"https://docs.rustfs.com"},{label:"Website",url:"https://rustfs.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"rustfs"},appServiceImage:{type:"string",title:"RustFS Image",default:"rustfs/rustfs:1.0.0-alpha.99"},accessKey:{type:"string",title:"Access Key",default:"rustfsadmin",description:"Root access key for the S3 API and console login."},secretKey:{type:"string",title:"Secret Key",default:"",description:"Root secret key for the S3 API and console login. Leave blank to generate a random one."}}},benefits:[{title:"Blazing Fast Performance",description:"Built in Rust for maximum speed and memory safety. 2.3x faster than MinIO for 4KB object payloads with efficient resource utilization on standard hardware."},{title:"Full S3 Compatibility",description:"Strict adherence to S3 API standards with AWS Signature V4 support. Drop-in replacement for MinIO, Ceph, or any S3-compatible storage with seamless migration."},{title:"Enterprise Data Protection",description:"Erasure coding with Reed-Solomon, bitrot protection via HighwayHash, and server-side encryption with AES-256-GCM and ChaCha20-Poly1305 keep your data safe and intact."},{title:"Permissive Apache 2.0 License",description:"No AGPL restrictions or license traps. Fully open-source under Apache 2.0 for unrestricted commercial and community use."}],features:[{title:"Web Management Console",description:"Built-in browser-based console for managing buckets, objects, users, policies, and monitoring server health and performance."},{title:"Bucket Versioning & Replication",description:"Version your objects for point-in-time recovery and replicate buckets across sites for disaster recovery and high availability."},{title:"Event Notifications",description:"Configure event notifications for object operations to trigger downstream workflows via webhooks, AMQP, Kafka, NATS, and more."},{title:"Object Caching",description:"Built-in object cache with configurable TTL for improved read performance on frequently accessed data."},{title:"S3 Select",description:"Query CSV, Parquet, and JSON objects directly with SIMD-optimized S3 Select without downloading entire files."},{title:"TLS & Encryption",description:"Network encryption with TLS 1.2+ and server-side encryption at rest. Supports external KMS providers including HashiCorp Vault."}],tags:["Object Storage","S3","Self-Hosted","Rust","Cloud Storage","MinIO Alternative"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.secretKey||v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9001}],env:["RUSTFS_VOLUMES=/data/rustfs{0...3}","RUSTFS_ADDRESS=0.0.0.0:9000","RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001","RUSTFS_CONSOLE_ENABLE=true","RUSTFS_CORS_ALLOWED_ORIGINS=*","RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS=*","RUSTFS_ACCESS_KEY=".concat(e.accessKey),"RUSTFS_SECRET_KEY=".concat(a),"RUSTFS_OBS_LOGGER_LEVEL=info","RUSTFS_OBJECT_CACHE_ENABLE=true","RUSTFS_OBJECT_CACHE_TTL_SECS=300"].join("\n"),mounts:[{type:"volume",name:"data0",mountPath:"/data/rustfs0"},{type:"volume",name:"data1",mountPath:"/data/rustfs1"},{type:"volume",name:"data2",mountPath:"/data/rustfs2"},{type:"volume",name:"data3",mountPath:"/data/rustfs3"},{type:"volume",name:"logs",mountPath:"/app/logs"}]}}),{services:t}}},{slug:"rybbit",meta:{name:"Rybbit",description:"Rybbit is a comprehensive analytics platform that provides powerful insights into user behavior and application performance. Built with modern web technologies including React frontend and Node.js backend, it offers real-time data processing with ClickHouse and PostgreSQL databases. The platform features a sleek dashboard for visualizing analytics data, user management with authentication, and configurable signup settings. Perfect for businesses looking to gain deep insights into their applications and user interactions.",instructions:"After deployment, open your mapped domain to reach the Rybbit UI (Caddy serves the web app and proxies API traffic to the backend). The template generates PostgreSQL and ClickHouse passwords and a Better Auth secret automatically; you do not need to set them by hand unless you rotate credentials later in the services. Create the first account from the UI when sign-up is enabled. To send email (invites, password reset, etc.), add a Resend API key in the backend service environment. For custom domains or HTTPS, finish DNS and routing in Easypanel so the public URL matches how y
1ou access the app.",changeLog:[{date:"2025-06-03",description:"First release"}],links:[{label:"GitHub",url:"https://github.com/rybbit-io"},{label:"Website",url:"https://rybbit.io"},{label:"Documentation",url:"https://www.rybbit.io/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","backendImage","clientImage","clickhouseImage","caddyImage"],properties:{appServiceName:{type:"string",title:"Service Name",default:"rybbit"},backendImage:{type:"string",title:"Backend Image",default:"ghcr.io/rybbit-io/rybbit-backend:v1.0.0"},clientImage:{type:"string",title:"Client Image",default:"ghcr.io/rybbit-io/rybbit-client:v1.0.0"},caddyImage:{type:"string",title:"Caddy Image",default:"caddy:2.10.0"},clickhouseImage:{type:"string",title:"ClickHouse Image",default:"clickhouse/clickhouse-server:25.4.2"}}},benefits:[{title:"Real-time Analytics",description:"Process and visualize data in real-time with ClickHouse backend."},{title:"User Management",description:"Built-in authentication and user management system."},{title:"Modern Stack",description:"Built with React, Node.js, and modern web technologies."},{title:"Self-Hosted",description:"Full control over your analytics data with self-hosting."}],features:[{title:"Analytics Dashboard",description:"Comprehensive dashboard for visualizing analytics data and metrics."},{title:"User Authentication",description:"Secure user authentication and session management."},{title:"Database Integration",description:"Dual database setup with ClickHouse for analytics and PostgreSQL for application data."},{title:"Email Integration",description:"Email delivery capabilities with Resend API integration."},{title:"Reverse Proxy",description:"Built-in Caddy reverse proxy with automatic HTTPS."}],tags:["Analytics","Dashboard","Self-Hosted","Real-time","Authentication"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32);return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-caddy"),source:{type:"image",image:e.caddyImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["DOMAIN_NAME=$(PRIMARY_DOMAIN)","BACKEND_HOST=$(PROJECT_NAME)-".concat(e.appServiceName,"-backend"),"CLIENT_HOST=$(PROJECT_NAME)-".concat(e.appServiceName,"-client")].join("\n"),mounts:[{type:"file",content:"\nhttp://{$DOMAIN_NAME} {\n    # Enable compression\n    encode zstd gzip\n\n    handle /api/* {\n        reverse_proxy {$BACKEND_HOST}:3001\n    }\n\n\n    # Proxy all other requests to the client service\n    handle {\n        reverse_proxy {$CLIENT_HOST}:3002\n    }\n\n} \n",mountPath:"/etc/caddy/Caddyfile"},{type:"volume",name:"caddy-data",mountPath:"/data"},{type:"volume",name:"caddy-config",mountPath:"/config"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-clickhouse"),source:{type:"image",image:e.clickhouseImage},env:["CLICKHOUSE_DB=$(PROJECT_NAME)","CLICKHOUSE_USER=default","CLICKHOUSE_PASSWORD=".concat(a)].join("\n"),mounts:[{type:"volume",name:"clickhouse-data",mountPath:"/var/lib/clickhouse"},{type:"volume",name:"clickhouse-config",mountPath:"/etc/clickhouse-server/config.d"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:i}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-backend"),source:{type:"image",image:e.backendImage},env:["NODE_ENV=production","CLICKHOUSE_HOST=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-clickhouse:8123"),"CLICKHOUSE_DB=$(PROJECT_NAME)","CLICKHOUSE_PASSWORD=".concat(a),"POSTGRES_HOST=$(PROJECT_NAME)-".concat(e.appServiceName,"-postgres"),"POSTGRES_PORT=5432","POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(i),"BETTER_AUTH_SECRET=".concat(o),"BASE_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-caddy.$(EASYPANEL_HOST)"),"DISABLE_SIGNUP=false","RESEND_API_KEY="].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-client"),source:{type:"image",image:e.clientImage},env:["NODE_ENV=production","NEXT_PUBLIC_BACKEND_URL=https://$(PROJECT_NAME)_".concat(e.appServiceName,"-backend.$(EASYPANEL_HOST)"),"NEXT_PUBLIC_DISABLE_SIGNUP=false"].join("\n")}}),{services:t}}}
1,{slug:"ryot",meta:{name:"Ryot",description:"Ryot is a self-hosted platform for tracking and managing your media consumption across movies, TV shows, books, anime, manga, video games, podcasts, and more. Designed as an all-in-one solution for media enthusiasts, Ryot lets you maintain a comprehensive record of everything you've watched, read, played, or listened to. The application provides powerful tracking features including progress monitoring, ratings, reviews, and custom lists to organize your media library. With integrations for popular platforms like Trakt, Goodreads, and various media databases, Ryot can automatically fetch metadata, cover images, and detailed information for your media entries. The clean, modern interface works seamlessly across devices, allowing you to update your progress from anywhere. Key features include import capabilities from other tracking services, detailed statistics and insights about your media consumption habits, calendar views for upcoming releases, and recommendation suggestions based on your history. Built with performance in mind, Ryot uses PostgreSQL for reliable data storage and provides a fast, responsive experience. Perfect for media enthusiasts who want complete control over their tracking data, users migrating from commercial tracking services who want privacy and ownership, collectors who want to catalog their media libraries, or anyone who enjoys keeping detailed records of their entertainment consumption without relying on third-party platforms.",instructions:null,changeLog:[{date:"2025-12-04",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to v10"},{date:"2026-05-05",description:"Version bumped to v10.3.10"}],links:[{label:"Website",url:"https://ryot.io"},{label:"GitHub",url:"https://github.com/ignisda/ryot"},{label:"Documentation",url:"https://docs.ryot.io"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ryot"},appServiceImage:{type:"string",title:"App Service Image",default:"ignisda/ryot:v10.3.10"}}},benefits:[{title:"All-in-One Media Tracking",description:"Track movies, TV shows, books, anime, manga, video games, podcasts, and audiobooks all in one unified platform."},{title:"Complete Data Ownership",description:"Self-hosted solution gives you full control over your media tracking data without relying on third-party services."},{title:"Rich Media Metadata",description:"Automatically fetch detailed information, cover images, and metadata from various media databases for your entries."},{title:"Cross-Platform Access",description:"Modern responsive interface works seamlessly across desktop and mobile devices for tracking on the go."}],features:[{title:"Multi-Media Support",description:"Track diverse media types including movies, TV shows, books, anime, manga, video games, podcasts, and audiobooks."},{title:"Progress Tracking",description:"Monitor your progress through series, books, and games with detailed status updates and completion tracking."},{title:"Ratings & Reviews",description:"Rate your media and write personal reviews to remember your thoughts and share recommendations."},{title:"Custom Lists",description:"Create and organize custom lists to categorize your media by genre, mood, recommendations, or any criteria you choose."},{title:"Import & Export",description:"Import your existing data from services like Trakt, Goodreads, and others, with full export capabilities for your data."},{title:"Statistics & Insights",description:"View detailed statistics about your media consumption habits including time spent, genres preferred, and trends."},{title:"Calendar Integration",description:"Track upcoming releases for shows, movies, books, and games you're following with integrated calendar views."},{title:"API Access",description:"Full API access allows integration with other tools and services for automated tracking and data synchronization."}],tags:["Media Tracking","Movies","TV Shows","Books","Video Games","Self-Hosted","Entertainment"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["TZ=UTC","FRONTEND_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"SERVER_ADMIN_ACCESS_TOKEN=".concat(i)].join("\n")}}),{services:t}}},{slug:"saltcorn",meta:{name:"Saltcorn",description:"Saltcorn is an extensible open-source no-code database application builder. It allows you to build web applications based on relational data with flexible views, data types, and layouts. With Saltcorn, you can create dynamic applications without writing code, making it a powerful tool for both developers and non-developers alike.",instructions:"Delete the migration container, once that is done with migrations.",changeLog:[{date:"2025-03-13",description:"Template Release"},{date:"2025-07-24",description:"Version bumped to 1.3.0"},{date:"2025-12-29",description:"Version bumped to 1.4.0"},{date:"2026-02-24",description:"Version bumped to 1.5.0"},{date:"2026-05-05",description:"Version bumped to 1.5.6"}],links:[{label:"Documentation",url:"https://saltcorn.com/"},{label:"Github",url:"https://github.com/saltcorn/saltcorn"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"saltcorn"},appServiceImage:{type:"string",title:"App Service Image",default:"saltcorn/saltcorn:1.5.6"}}},benefits:[{title:"No-Code Database Application Builder",description:"Saltcorn allows users to create database-driven applications without coding, making development accessible to all skill levels."},{title:"Self-Hosted & Secure",description:"Host your applications on your own infrastructure, ensuring privacy and complete control over your data."},{title:"Flexible Data Models & Views",description:"Design relational databases with customized views, data types, and layouts that fit your specific needs."}],features:[{title:"Drag-and-Drop UI Builder",description:"Easily create application interfaces with an intuitive drag-and-drop editor."},{title:"Relational Database Support",description:"Define relationships between different data models to build complex applications."},{title:"Multi-Tenant Hosting",description:"Run multiple instances of Saltcorn on a single installation, enabling SaaS-style deployments."},{title:"Plugin & Theme Support",description:"Extend Saltcorn's functionality with community-developed plugins and themes."}],tags:["No-Code","Self-Hosted","Database Management","Web Applications","Multi-Tenant"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"PGUSER=postgres","PGHOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"PGPORT=5432","PGPASSWORD=".concat(a),"PGDATABASE=$(PROJECT_NAME)","SALTCORN_SESSION_SECRET=".concat(i)].join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,env:[o].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{command:"/usr/local/bin/saltcorn serve"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-migrations"),env:[o].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],deploy:{command:"/usr/local/bin/saltcorn reset-schema --force"}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"satisfactory",meta:{name:"Satisfactory Server",description:"Satisfactory Server is a dedicated server for the popular factory building game Satisfactory by Coffee Stain Studios. This containerized server allows you to host your own multiplayer world for friends to join and collaborate on massive factory projects. The server handles all game logic, world persistence, and player connections, while requiring minimal setup and maintenance. Perfect for players who want reliable, 24/7 access to their factory world without having to host the game on their own computer.",instructions:null,changeLog:[{date:"2025-04-24",description:"First Release"},{date:"2026-05-08",description:"Version bumped to v1.9.10"}],links:[{label:"Docker Hub",url:"https://hub.docker.com/r/wolveix/satisfactory-server"},{label:"GitHub",url:"https://github.com/wolveix/satisfactory-server"},{label:"Game Website",url:"https://www.satisfactorygame.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","maxPlayers","gamePort","beaconPort","queryPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"satisfactory-server"},appServiceImage:{type:"string",title:"App Service Image",default:"wolveix/satisfactory-server:v1.9.10"},maxPlayers:{type:"string",title:"Maximum Players",default:"4",description:"Maximum number of players that can join the server simultaneously"},gamePort:{type:"string",title:"Game Port",default:"7777",description:"Port for the game server"},beaconPort:{type:"string",title:"Beacon Port",default:"15000",description:"Port for the beacon server"},queryPort:{type:"string",title:"Query Port",default:"15777",description:"Port for the query server"}}},benefits:[{title:"Dedicated Game Server",description:"Host your Satisfactory world on a dedicated server that runs 24/7, allowing players to connect anytime without the host needing to be online."},{title:"Performance Optimization",description:"Dedicated server improves game performance by offloading server processing from player computers, resulting in smoother gameplay for everyone."},{title:"Persistent World",description:"Your factory world remains online and accessible at all times, enabling continuous progress and collaboration among players."}],features:[{title:"Easy Multiplayer Setup",description:"Quickly set up and configure a multiplayer server without complex networking or port forwarding requirements."},{title:"Customizable Server Settings",description:"Adjust player capacity, resource allocation, and other settings to match your preferences and server capabilities."},{title:"Save Management",description:"Automatic save handling ensures your factory progress is securely stored and persisted between server restarts."},{title:"Resource Control",description:"Define memory limits and reservations to optimize server performance and ensure stability during gameplay."},{title:"Experimental Support",description:"Option to run experimental versions of the game to access new features before they're officially released."}],tags:["Gaming","Game Server","Multiplayer","Factory Simulation","Dedicated Server"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},ports:[{published:Number(e.gamePort),target:7777,protocol:"udp"},{published:Number(e.beaconPort),target:15e3,protocol:"udp"},{published:Number(e.queryPort),target:15777,protocol:"udp"}],mounts:[{type:"volume",name:"config",mountPath:"/config"}],env:["MAXPLAYERS=".concat(e.maxPlayers),"PGID=1000","PUID=1000","ROOTLESS=false","STEAMBETA=false"].join("\n")}}),{services:t}}},{slug:"scylladb",meta:{name:"ScyllaDB",description:"ScyllaDB is a distributed NoSQL database that is compatible with Apache Cassandra but offers superior performance and lower latency. It's designed to handle high-throughput, low-latency workloads with linear scalability. ScyllaDB is written in C++ and uses a shared-nothing architecture, making it highly efficient for modern hardware. It's particularly well-suited for applications requiring high availability, consistent performance, and massive scalability.",instructions:"Once the server is up, you can connect to ScyllaDB using the following ports 9042 - Native transport (CQL) 9160 - Thrift transport 7000 - Inter-node communication 7001 - SSL inter-node communication 10000 - REST API",changeLog:[{date:"2025-03-24",description:"Initial template release"}],links:[{label:"Website",url:"https://www.scylladb.com/"},{label:"Documentation",url:"https://docs.scylladb.com/"},{label:"Docker Hub",url:"https://hub.docker.com/r/scylladb/scylla"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","cqlPort","thriftPort","rpcPort","rpcSslPort","restPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"scylla"},appServiceImage:{type:"string",title:"ScyllaDB Image",default:"scylladb/scylla:6.1"},cqlPort:{type:"string",title:"CQL Port",description:"Port for Native transport (CQL)",default:"9042"},thriftPort:{type:"string",title:"Thrift Port",description:"Port for Thrift transport",default:"9160"},rpcPort:{type:"string",title:"RPC Port",description:"Port for Inter-node communication",default:"7000"},rpcSslPort:{type:"string",title:"RPC SSL Port",description:"Port for SSL inter-node communication",default:"7001"},restPort:{type:"string",title:"REST Port",description:"Port for REST API",default:"10000"}}},benefits:[{title:"High Performance",description:"Superior performance compared to Apache Cassandra with lower latency and higher throughput."},{title:"Linear Scalability",description:"Scale horizontally with predictable performance as you add more nodes."},{title:"Cassandra Compatibility",description:"Drop-in replacement for Apache Cassandra with improved performance and reliability."}],features:[{title:"Distributed Architecture",description:"Built on a shared-nothing architecture for maximum performance and reliability."},{title:"CQL Support",description:"Compatible with Cassandra Query Language (CQL) for easy migration."},{title:"Monitoring & Management",description:"Built-in monitoring tools and JMX support for system management."},{title:"Data Consistency",description:"Configurable consistency levels for optimal performance and reliability."}],tags:["Database","NoSQL","Distributed","High Performance","Scalable"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},ports:[{published:Number(e.cqlPort),target:9042,protocol:"tcp"},{published:Number(e.thriftPort),target:9160,protocol:"tcp"},{published:Number(e.rpcPort),target:7e3,protocol:"tcp"},{published:Number(e.rpcSslPort),target:7001,protocol:"tcp"},{published:Number(e.restPort),target:1e4,protocol:"tcp"}],mounts:[{type:"volume",name:"scylla-data",mountPath:"/var/lib/scylla/data"},{type:"volume",name:"scylla-commitlog",mountPath:"/var/lib/scylla/commitlog"}]}}),{services:t}}},{slug:"seafile",meta:{name:"Seafile",description:"Seafile is a professional, open-source file synchronization and sharing platform with privacy protection and teamwork features. It provides secure file storage, synchronization, and sharing capabilities with end-to-end encryption, making it perfect for teams and organizations that need to collaborate on files while maintaining data security. Seafile supports file versioning, online editing, and mobile access across all platforms.",instructions:"Please go to this document https://ahsonshaikh616.medium.com/deploying-seafile-via-easypanel-feature-rich-file-sync-share-1d2df0a37345",changeLog:[{date:"2025-09-11",description:"Initial Template Release"},{date:"2026-02-24",description:"Version bumped to 13.0-latest"},{date:"2026-03-25",description:"Pinned Seafile image to 13.0.19 and removed 13.0-latest"},{date:"2026-05-05",description:"Version bumped to 13.0.21"}],links:[{label:"GitHub",url:"https://github.com/haiwen/seafile"},{label:"Documentation",url:"https://manual.seafile.com/"},{label:"Website",url:"https://hub.docker.com/r/seafileltd/seafile-mc"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"seafile-mc"},appServiceImage:{type:"string",title:"App Service Image",default:"seafileltd/seafile-mc:13.0.21",description:"Seafile Docker image"}}},benefits:[{title:"Secure File Synchronization",description:"End-to-end encryption and secure file synchronization across all devices and platforms with client-side encryption for maximum privacy."},{title:"Team Collaboration",description:"Advanced team collaboration features with shared libraries, file versioning, and granular permission controls for effective teamwork."},{title:"Cross-Platform Access",description:"Access your files from any device with native clients for Windows, macOS, Linux, iOS, and Android, plus web interface."},{title:"Self-Hosted Solution",description:"Complete control over your data with a self-hosted solution that keeps your files private and secure on your own infrastructure."}],features:[{title:"File Versioning",description:"Automatic file versioning with configurable retention policies to track changes and recover previous versions of your files."},{title:"Online Editing",description:"Built-in online document editor with support for Office documents, allowing you to edit files directly in the browser."},{title:"Mobile Apps",description:"Native mobile applications for iOS and Android with full synchronization and offline access capabilities."},{title:"WebDAV Support",description:"WebDAV protocol support for seamless integration with third-party applications and file managers."},{title:"Advanced Search",description:"Powerful full-text search across all your files with content indexing and metadata search capabilities."},{title:"API Integration",description:"Comprehensive REST API for integration with other applications and custom development workflows."}],tags:["File Sync","File Sharing","Collaboration","Self-Hosted","Encryption","Team Work","Document Management","Cloud Storage","WebDAV","Mobile Access"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[],i=v();return a.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i,rootPassword:i}}),a.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-memcached"),source:{type:"image",image:"memcached:1.6.18"},deploy:{command:"memcached -m 256"}}}),a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:null!==(t=e.appServiceImage)&&void 0!==t?t:"seafileltd/seafile-mc:13.0.19"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"seafile-data",mountPath:"/shared"}],env:["DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_ROOT_PASSWD=".concat(i),"TIME_ZONE=Etc/UTC","[email protected]","SEAFILE_ADMIN_PASSWORD=asecret","SEAFILE_SERVER_LETSENCRYPT=false","SEAFILE_SERVER_HOSTNAME=$(PRIMARY_DOMAIN)"].join("\n")}}),{services:a}}},{slug:"searxng",meta:{name:"SearXNG",description:"SearXNG is a powerful, privacy-focused metasearch engine that aggregates results from over 70 search services, ensuring your searches remain private and untracked. It offers secure, encrypted connections and the option to use it over Tor for enhanced online anonymity. With about 130 integrated search engines and 60 translations, SearXNG provides a comprehensive and versatile search experience. The app also offers easy integration of search engines and maintains high standards of professional development, including continuous integration, quality assurance, and automated UI testing. SearXNG was launched in 2021 as a fork of the searx project, and it continues to evolve with user-friendly features and improvements.",instructions:null,changeLog:[{date:"2023-03-30",description:"First Release"},{date:"2025-03-03",description:"Version bumped to 2025.3.2-8984d7ae0"},{date:"2025-07-24",description:"Version bumped to 2025.7.24-802bf4f"},{date:"2025-12-29",description:"Version bumped to 2025.12.30-a5c946a3"},{date:"2026-02-24",description:"Version bumped to 2026.2.23-4964d664f"},{date:"2026-05-05",description:"Version bumped to 2026.5.5-d3566fe8a"}],links:[{label:"Docs",url:"https://docs.searxng.org/"},{label:"Github",url:"https://github.com/searxng/searxng"},{label:"Docker",url:"https://hub.docker.com/r/searxng/searxng"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{enableRedis:{type:"boolean",title:"Enable Redis"}
1,appServiceName:{type:"string",title:"App Service Name",default:"searxng"},appServiceImage:{type:"string",title:"App Service Image",default:"searxng/searxng:2026.5.5-d3566fe8a"}}},benefits:[{title:"Privacy-Respecting Search",description:"SearXNG is a metasearch engine that respects your privacy. It aggregates results from over 70 search services without tracking or profiling its users, ensuring your online activities remain private."},{title:"Online Anonymity",description:"With the ability to be used over Tor, SearXNG provides an additional layer of online anonymity. This feature makes it a great choice for those who prioritize their online privacy."},{title:"Customizable Experience",description:"If you prefer not to trust any third-party services, SearXNG allows you to set up your own instance. This gives you full control over your search experience."}],features:[{title:"Metasearch Engine",description:"SearXNG aggregates search results from more than 70 different search services, providing a comprehensive overview of information available on your search topic."},{title:"No User Tracking",description:"Unlike many other search engines, SearXNG does not track or profile its users. This ensures your search activities remain private and anonymous."},{title:"Secure Connections",description:"SearXNG uses secure, encrypted connections to protect your search data from potential eavesdroppers."},{title:"Multiple Search Engines",description:"With about 130 integrated search engines, SearXNG provides a wide range of sources for your search results."},{title:"Multilingual Support",description:"SearXNG supports about 60 translations, making it a user-friendly search engine for users from different linguistic backgrounds."},{title:"Easy Integration",description:"SearXNG allows easy integration of search engines, providing a flexible and customizable search experience."}],tags:["Privacy","Search"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["SEARXNG_BASE_URL=https://$(PRIMARY_DOMAIN)"];if(e.enableRedis){var i=v();t.push({type:"redis",data:{serviceName:e.appServiceName+"-redis",password:i}}),a.push("SEARXNG_REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"))}return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:a.join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/etc/searxng"}]}}),{services:t}}},{slug:"seatsurfing",meta:{name:"SeatSurfing",description:"SeatSurfing is a comprehensive desk and room booking system that helps organizations manage their workspace efficiently. It provides a user-friendly interface for employees to book desks and meeting rooms, while giving administrators powerful tools to manage spaces, users, and bookings. The system includes features like real-time availability, booking management, and analytics to optimize space utilization.",instructions:"Login email [email protected] and password 12345678",changeLog:[{date:"2025-04-07",description:"First Release"}],links:[{label:"Website",url:"https://seatsurfing.app/"},{label:"Documentation",url:"https://docs.seatsurfing.app/"},{label:"Github",url:"https://github.com/seatsurfing"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","bookingServiceImage","adminServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"seatsurfing"},appServiceImage:{type:"string",title:"App Service Image",default:"seatsurfing/backend:1.28.0"},bookingServiceImage:{type:"string",title:"Booking Service Image",default:"seatsurfing/booking-ui:1.28.0"},adminServiceImage:{type:"string",title:"Admin Service Image",default:"seatsurfing/admin-ui:1.28.0"}}},benefits:[{title:"Workspace Management",description:"Efficiently manage desks and meeting rooms with real-time availability tracking."},{title:"User-Friendly Interface",description:"Intuitive booking interface for employees and powerful admin tools for managers."},{title:"Space Optimization",description:"Analytics and reporting tools to optimize space utilization and reduce costs."},{title:"Flexible Configuration",description:"Customizable settings for different types of spaces and booking rules."},{title:"Integration Ready",description:"API support for integration with other workplace management systems."}],features:[{title:"Desk Booking",description:"Book desks with real-time availability and flexible booking options."},{title:"Room Management",description:"Manage meeting rooms with capacity tracking and equipment booking."},{title:"User Management",description:"Manage users, roles, and permissions with ease."},{title:"Analytics",description:"Track space utilization and generate reports for better decision making."},{title:"Mobile Support",description:"Access the system from any device with responsive design."}],tags:["Workspace Management","Desk Booking","Room Booking","Space Management","Workplace Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["POSTGRES_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db/$(PROJECT_NAME)?sslmode=disable"),"JWT_SIGNING_KEY=".concat(i),"BOOKING_UI_BACKEND=$(PROJECT_NAME)_".concat(e.appServiceName,"-booking:3001"),"ADMIN_UI_BACKEND=$(PROJECT_NAME)_".concat(e.appServiceName,"-admin:3000"),"PUBLIC_URL=https://$(PRIMARY_DOMAIN)","FRONTEND_URL=https://$(PRIMARY_DOMAIN)"].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-booking"),source:{type:"image",image:e.bookingServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-admin"),source:{type:"image",image:e.adminServiceImage}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"seaweedfs",meta:{name:"SeaweedFS",description:"SeaweedFS is a fast, simple, and highly scalable distributed file system for storing and serving billions of files. Starting as an object store with O(1) disk seek performance, it has grown into a full-featured storage platform supporting S3 API, WebDAV, FUSE mount, HDFS, and Hadoop integration. The architecture separates concerns into a master server for volume management, a volume server for blob storage, a filer for directory/file abstraction, an S3 gateway for S3 compatibility, and a WebDAV server for mounted drive access. Features include erasure coding, cloud tiering, cross-datacenter replication, AES-256-GCM encryption, automatic compaction, file TTL, and a built-in admin UI. Licensed under Apache 2.0 with 30k+ GitHub stars.",instructions:"Open the admin UI.",changeLog:[{date:"2026-02-19",description:"Template Release (4.13)"},{date:"2026-05-05",description:"Version bumped to 4.23"}],links:[{label:"GitHub",url:"https://github.com/seaweedfs/seaweedfs"},{label:"Documentation",url:"https://github.com/seaweedfs/seaweedfs/wiki"},{label:"Website",url:"https://seaweedfs.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"seaweedfs"},appServiceImage:{type:"string",title:"SeaweedFS Image",default:"chrislusf/seaweedfs:4.23"}}},benefits:[{title:"Billion-File Scale",description:"Designed from the ground up to store billions of files with O(1) disk seek performance. Each file lookup requires just one disk read operation with only 40 bytes of metadata overhead per file."},{title:"Multi-Protocol Access",description:"Access your data via S3 API, WebDAV, FUSE mount, HDFS, or the built-in Filer HTTP interface. Use the right protocol for every use case without data duplication."},{title:"Cloud Tiering & Replication",description:"Transparently tier warm data to cloud storage (AWS S3, Google Cloud, Azure) while keeping hot data local. Cross-datacenter active-active replication ensures high availability."},{title:"Apache 2.0 Licensed",description:"Fully open-source under the permissive Apache 2.0 license with no restrictive copyleft clauses. Free for commercial and community use."}],features:[{title:"S3-Compatible Gateway",description:"Full Amazon S3 API compatibility lets you use existing S3 tools, SDKs, and applications. Drop-in replacement for cloud object storage."},{title:"WebDAV Server",description:"Mount your SeaweedFS storage as a network drive on macOS, Windows, and Linux, or access it from mobile devices via WebDAV."},{title:"Admin UI",description:"Built-in web administration console for monitoring cluster health, managing volumes, viewing topology, and performing maintenance."},{title:"Erasure Coding",description:"Reed-Solomon erasure coding (10.4 by default, customizable in Enterprise) reduces storage overhead while maintaining data durability across racks."},{title:"Encryption at Rest",description:"AES-256-GCM encrypted storage protects data at rest. Combined with TLS for data in transit, your files are secured end to end."},{title:"Automatic Compaction",description:"Automatically reclaims disk space after file deletion or updates. Combined with file TTL support for automatic expiration of temporary data."}],tags:["Object Storage","Distributed Storage","S3","WebDAV","Self-Hosted","File System"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a="$(PROJECT_NAME)_".concat(e.appServiceName,"-master"),i="$(PROJECT_NAME)_".concat(e.appServiceName,"-filer");return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-master"),source:{type:"image",image:e.appServiceImage},deploy:{command:"/entrypoint.sh master -ip=".concat(a," -ip.bind=0.0.0.0")},mounts:[{type:"volume",name:"master-data",mountPath:"/data"}],ports:[{published:9333,target:9333}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-volume"),source:{type:"image",image:e.appServiceImage},deploy:{command:"/entrypoint.sh volume -ip=$(PROJECT_NAME)_".concat(e.appServiceName,'-volume -master="').concat(a,':9333" -ip.bind=0.0.0.0 -port=8080')},mounts:[{type:"volume",name:"volume-data",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-filer"),source:{type:"image",image:e.appServiceImage},deploy:{command:"/entrypoint.sh filer -ip=".concat(i,' -master="').concat(a,':9333" -ip.bind=0.0.0.0')},mounts:[{type:"volume",name:"filer-data",mountPath:"/data"}],ports:[{published:8888,target:8888}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-s3"),source:{type:"image",image:e.appServiceImage},deploy:{command:'/entrypoint.sh s3 -filer="'.concat(i,':8888" -ip.bind=0.0.0.0')},ports:[{published:8333,target:8333}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-webdav"),source:{type:"image",image:e.appServiceImage},deploy:{command:'/entrypoint.sh webdav -filer="'.concat(i,':8888"')},ports:[{published:7333,target:7333}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-admin"),source:{type:"image",image:e.appServiceImage},deploy:{command:"/entrypoint.sh admin -master=".concat(a,":9333")},domains:[{host:"$(EASYPANEL_DOMAIN)",port:23646}]}}),{services:t}}},{slug:"serpbear",meta:{name:"SerpBear",description:"SerpBear is an open-source search engine position tracking app designed to help you monitor your website's keyword positions in Google. With SerpBear, you can add unlimited domains and keywords to track their Search Engine Results Page (SERP) positions. The app provides email notifications to keep you updated on your keyword position changes on a daily, weekly, or monthly basis. It also features a built-in SERP API for integration with your marketing and data reporting tools. SerpBear integrates with Google Search Console, allowing you to get actual visit counts, impressions, and more for each keyword. You can discover new keywords, identify the most performing ones, and find the most visited pages and countries. The app also allows you to export your domain keywords and their data in CSV files. For a better mobile experience, you can add the PWA app to your mobile. SerpBear is free to run on platforms like mogenius.com or Fly.io. The app uses third-party website scrapers like ScrapingAnt, ScrapingRobot, or your given Proxy IPs to scrape Google search results to see if your domain appears in the search result for the given keyword.",instructions:null,changeLog:[{date:"2023-1-5",description:"first release"},{date:"2025-03-03",description:"Version bumped to 2.0.7"}],links:[{label:"Documentation",url:"https://docs.serpbear.com"},{label:"Github",url:"https://github.com/towfiqi/serpbear"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","serpUser","serpPass"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"serpbear"},appServiceImage:{type:"string",title:"App Service Image",default:"towfiqi/serpbear:2.0.7"},serpUser:{type:"string",title:"Username"},serpPass:{type:"string",title:"Password"}}},benefits:[{title:"Track Your Website's Keyword Positions",description:"SerpBear allows you to monitor your website's keyword positions in Google. This feature enables you to understand your website's visibility in search engine results and make necessary adjustments to improve your SEO strategy."},{title:"Get Notified of Keyword Position Changes",description:"Stay updated with your keyword positions as SerpBear sends you notifications of any changes daily, weekly, or monthly through email. This ensures that you are always aware of your website's performance in search engine rankings."},{title:"Zero Cost to Run",description:"SerpBear is a cost-effective solution for tracking your website's keyword positions. You can run the app on mogenius.com or Fly.io for free, making it an affordable choice for businesses of all sizes."}],features:[{title:"Unlimited Keywords",description:"With SerpBear, you can add unlimited domains and unlimited keywords to track their Search Engine Results Page (SERP). This feature provides you with the flexibility to monitor as many keywords as you need for your SEO strategy."},{title:"Email Notification",description:"SerpBear comes with an email notification feature that alerts you of your keyword position changes. You can choose to receive these notifications daily, weekly, or monthly, depending on your preference."},{title:"SERP API",description:"SerpBear offers a built-in API that you can use for your marketing and data reporting tools. This feature allows you to integrate SerpBear with other platforms and streamline your SEO tracking process."},{title:"Google Search Console Integration",description:"SerpBear integrates with Google Search Console to provide you with the actual visit count, impressions, and more for each keyword. This feature enables you to gain a comprehensive understanding of your website's performance in search engine results."},{title:"Export CSV",description:"SerpBear allows you to export your domain keywords and their data in CSV files whenever you want. This feature makes it easy for you to analyze your keyword data and share it with your team."},{title:"Mobile App",description:"SerpBear offers a Progressive Web App (PWA) for a better mobile experience. This feature allows you to track your website's keyword positions on the go, making it convenient for busy professionals."}],tags:["Analytics","SEO"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=y(64),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"app-data",mountPath:"/app/data"}],env:["USER=".concat(e.serpUser),"PASSWORD=".concat(e.serpPass),"SECRET=".concat(a),"APIKEY=".concat(i),"NEXT_PUBLIC_APP_URL=https://localhost:80"].join("\n")}}),{services:t}}},{slug:"servas",meta:{name:"Servas",description:"Servas is a self-hosted bookmark management tool that allows you to organize and access your bookmarks in a more efficient and streamlined manner. With Servas, you can categorize your bookmarks using tags and groups, which can also be nested for better organization. The app also features a 'Later List' where you can add bookmarks that you wish to access at a later time. Servas also comes with a Chrome browser extension, allowing you to add sites to your bookmark list directly from your browser. The app supports multiple user accounts and boasts a responsive design that ensures it looks good on all your devices. For added security, Servas also offers Two Factor Authentication.",instructions:"Visit /register to create an account",changeLog:[{date:"2023-1-30",description:"first release"},{date:"2025-07-24",description:"Version bumped to 1.0.0"},{date:"2025-12-29",description:"Version bumped to 1.1.0"},{date:"2026-05-05",description:"Version bumped to 1.1.1"}],links:[{label:"Github",url:"https://github.com/beromir/Servas"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"servas"},appServiceImage:{type:"string",title:"App Service Image",default:"beromir/servas:1.1.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"servas-db"}}},benefits:[{title:"Efficient Bookmark Management",description:"Servas is a self-hosted bookmark management tool that allows you to efficiently organize and access your bookmarks. It provides a centralized platform where you can store all your bookmarks and retrieve them whenever needed."},{title:"Multi-Device Accessibility",description:"With its responsive design, Servas ensures that you can manage your bookmarks from any device. Whether you're using a desktop, tablet, or smartphone, you'll have a seamless user experience."},{title:"Enhanced Security",description:"Servas offers two-factor authentication, providing an extra layer of security to your bookmarks. This ensures that only you can access your bookmarks, even if someone else knows your password."}],features:[{title:"Tags and Groups",description:"Servas allows you to organize your bookmarks using tags and groups. You can even nest groups within other groups for more detailed organization."},{title:"Later List",description:"With the 'Later List' feature, you can add bookmarks that you want to access at a later time. This helps you prioritize your bookmarks and keep your list organized."},{title:"Browser Extension",description:"Servas comes with a Chrome browser extension, enabling you to add sites to your bookmark list directly from your browser."},{title:"Multiple Users",description:"Servas supports multiple user accounts. This means you can have different sets of bookmarks for different users, all managed from the same platform."}],tags:["Bookmarks","Productivity"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_NAME=Servas","APP_URL=https://$(PRIMARY_DOMAIN)","APP_ENV=production","APP_DEBUG=false","APP_KEY=base64:".concat(btoa(y(32))),"SERVAS_ENABLE_REGISTRATION=true","DB_CONNECTION=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_PORT=3306","DB_USERNAME=mariadb","DB_PASSWORD=".concat(a),"DB_DATABASE=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,image:"mariadb:10.7.3",password:a}}),{services:t}}},{slug:"sessy",meta:{name:"Sessy",description:"Sessy is a self-hosted web application built with Ruby on Rails designed for managing and interacting with AWS Simple Email Service (SES). The application provides a user-friendly interface for managing email sending operations, monitoring email delivery, and working with AWS SES configurations. With persistent storage for application data, Sessy ensures your settings and configurations are retained across container restarts. The application offers a straightforward deployment model with minimal configuration requirements, making it easy to set up and operate. Built on the robust Ruby on Rails framework, Sessy provides a reliable foundation for email service management. Perfect for developers and teams working with AWS SES who want a self-hosted management interface, organizations needing a simple way to interact with their email service infrastructure, or anyone looking for a lightweight self-hosted solution for AWS SES operations without relying on external services.",instructions:null,changeLog:[{date:"2026-01-02",description:"Template Release"}],links:[{label:"Website",url:"https://sessy.do"},{label:"GitHub",url:"https://github.com/marckohlbrugge/sessy"},{label:"Docker Hub",url:"https://hub.docker.com/r/marckohlbrugge/sessy"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sessy"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/marckohlbrugge/sessy:sha-8d93bde"}}},benefits:[{title:"AWS SES Management",description:"Simplified interface for managing AWS Simple Email Service operations and configurations from a single self-hosted application."},{title:"Simple Deployment",description:"Easy-to-deploy Rails application with minimal configuration requirements for quick setup and operation."},{title:"Persistent Storage",description:"Application data is stored persistently ensuring your information is retained across container restarts."},{title:"Self-Hosted Control",description:"Complete control over your email service management and data with a self-hosted solution."}],features:[{title:"AWS SES Integration",description:"Direct integration with AWS Simple Email Service for managing email sending operations and configurations."},{title:"Email Management Interface",description:"User-friendly web interface for monitoring email delivery, managing configurations, and interacting with AWS SES."},{title:"Rails-Based",description:"Built on Ruby on Rails framework providing a robust and reliable application foundation."},{title:"Persistent Data Storage",description:"Application data stored in persistent volumes ensuring data retention and reliability."}],tags:["AWS","SES","Web Application","Rails","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["SECRET_KEY_BASE=".concat(a),"DISABLE_AUTH_WARNING=true"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/rails/storage"}]}}),{services:t}}},{slug:"sftpgo",meta:{name:"SFTPGo",description:"SFTPGo is a fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support. It supports local filesystem, encrypted local filesystem, S3 (compatible) Object Storage, Google Cloud Storage, Azure Blob Storage, SFTP.",instructions:null,changeLog:[{date:"2025-05-02",description:"Initial release"},{date:"2026-02-24",description:"Version bumped to 2.7.x"}],links:[{label:"Website",url:"https://sftpgo.com/"},{label:"GitHub",url:"https://github.com/drakkan/sftpgo"},{label:"Documentation",url:"https://docs.sftpgo.com/2.6/"},{label:"Docker Hub",url:"https://hub.docker.com/r/drakkan/sftpgo"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sftpgo"},appServiceImage:{type:"string",title:"App Service Image",default:"drakkan/sftpgo:2.7.x"}}},benefits:[{title:"Multiple Protocols",description:"Support for SFTP, HTTP/S, FTP/S, and WebDAV protocols"},{title:"Multiple Storage Backends",description:"Support for local filesystem, S3, Google Cloud Storage, and more"},{title:"Security Features",description:"Built-in security features and encryption support"},{title:"Open Source",description:"Free and open-source platform with active community support"}],features:[{title:"Web Interface",description:"User-friendly web interface for management"},{title:"User Management",description:"Comprehensive user and permission management"},{title:"Virtual Folders",description:"Support for virtual folders and path mapping"},{title:"Quota Management",description:"Set storage quotas for users and groups"},{title:"Event Notifications",description:"Configure notifications for various events"},{title:"Backup Support",description:"Built-in backup and restore functionality"}],tags:["SFTP","File Transfer","Self-hosted","Open Source","Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],ports:[{published:2022,target:2022,protocol:"tcp"},{published:2121,target:2121,protocol:"tcp"},{published:10080,target:10080,protocol:"tcp"}],env:["SFTPGO_HTTPD_BINDINGS_0_PORT=8080","SFTPGO_HTTPD_BINDINGS_0_ADDRESS=0.0.0.0","SFTPGO_DATA_PROVIDER_CREATE_DEFAULT_ADMIN=true","SFTPGO_WEBDAVD_BINDINGS_0_PORT=10080","SFTPGO_FTPD_BINDINGS_0_PORT=2121","SFTPGO_FTPD_BINDINGS_0_FORCE_PASSIVE_IP=127.0.0.1:8080"].join("\n"),mounts:[{type:"volume",name:"sftpgo-data",mountPath:"/srv/sftpgo"},{type:"volume",name:"sftpgo-home",mountPath:"/var/lib/sftpgo"}]}}),{services:t}}},{slug:"shaarli",meta:{name:"Shaarli",description:"Shaarli is a personal, minimalist, super-fast, and database-free bookmarking service. It allows you to manage and share the links you discover, making it an ideal tool for those who frequently come across interesting content on the web. With Shaarli, you can share, comment, and save links, use it as a minimal blog or writing platform, or even as a read-it-later/todo list. It also serves as a notepad for drafting and saving articles, posts, or ideas, and a knowledge base for keeping notes, documentation, and code snippets. You can edit, view, and search your links, organize them with tags, and even generate ATOM and RSS feeds. Shaarli is self-hosted, meaning you install it on your own server, ensuring your data remains yours. It's an excellent alternative to commercial services, and it's free and open-source.",instructions:null,changeLog:[{date:"2023-04-04",description:"first release"},{date:"2025-07-24",description:"Version bumped to v0.14.0"},{date:"2025-12-29",description:"Version bumped to v0.15.0"},{date:"2026-02-24",description:"Version bumped to v0.16.1"}],links:[{label:"Documentation",url:"https://demo.shaarli.org/doc/html/index.html"},{label:"Github",url:"https://github.com/shaarli/Shaarli"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"shaarli"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/shaarli/shaarli:v0.16.1"}}},benefits:[{title:"Personalized Bookmarking",description:"Shaarli offers a personal, minimalist, and super-fast bookmarking service. It allows you to share, comment, and save interesting links on your own server."},{title:"Versatile Usage",description:"Shaarli can be used as a minimal blog, a read-it-later list, a notepad to draft and save articles, a knowledge base for notes and code snippets, a playlist manager for online media, and more."},{title:"Data Ownership",description:"With Shaarli, you have full control over your data. The data is yours, and you can import and export it to HTML bookmarks format compatible with most web browsers."},{title:"Fast and Efficient",description:"Shaarli is designed to be fast and efficient. It can handle tens of thousands of shares without slowing down."},{title:"Built-in Security",description:"Shaarli comes with built-in security features to help you protect your instance. It does not send any telemetry, metrics, or private information to developers."}],features:[{title:"Editable Links",description:"Shaarli allows you to edit the URL, title, description, tags, and private/public status for all your shares."},{title:"Search and Organization",description:"You can organize your shares with tags, search in all fields, and view your shares in a paginated list view with image and video thumbnails."},{title:"Extensibility",description:"Shaarli is extensible through plugins and can be easily extended by any client using the REST API exposed by Shaarli."},{title:"Bookmarklet and Sharing Tools",description:"Shaarli provides a bookmarklet and other tools to share links in one click. It also supports mobile browsers and degrades gracefully with Javascript disabled."},{title:"Easy Setup",description:"Setting up Shaarli is simple. Just drop the files on your server, open the page, and you're good to go. No database is required, making backup easy."}],tags:["Bookmarks","Documentation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"cache",mountPath:"/var/www/shaarli/cache"},{type:"volume",name:"data",mountPath:"/var/www/shaarli/data"}]}}),{services:t}}},{slug:"sharkord",meta:{name:"Sharkord",description:"Sharkord is a lightweight, open-source, self-hosted chat platform designed as a privacy-focused alternative to Discord for small groups. It provides voice, video, text chat, and screen sharing\u2014all running on your own server. Supports screen sharing up to 4K@60fps. Designed for 5-25 users.",instructions:"After deployment, access Sharkord via the main domain. Create your server and\ninvite others. Voice and video use port 40000. Data is stored in the data volume.\nNote: Sharkord is in alpha\u2014expect bugs and breaking changes.\n",changeLog:[{date:"2026-02-09",description:"First Release"},{date:"2026-05-08",description:"Version bumped to v0.0.19"}],links:[{label:"Website",url:"https://sharkord.com/"},{label:"Documentation",url:"https://sharkord.com/docs"},{label:"GitHub",url:"https://github.com/Sharkord/sharkord"},{label:"Demo",url:"https://demo.sharkord.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","appServicePort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sharkord"},appServiceImage:{type:"string",title:"App Service Image",default:"sharkord/sharkord:v0.0.19"},appServicePort:{type:"string",title:"App Service Port",default:"40000"}}},benefits:[{title:"Data Ownership",description:"All conversations and files stay on your server with no corporate data collection"},{title:"Lightweight",description:"Runs on modest hardware, even a Raspberry Pi 4"},{title:"Fully Open Source",description:"MIT License\u2014inspect, customize, and contribute"},{title:"No Artificial Limits",description:"No paywalls, user caps, or premium tiers"}],features:[{title:"Voice & Video",description:"High-quality voice and video chat"},{title:"Screen Sharing",description:"Screen sharing up to 4K@60fps"},{title:"Text Chat",description:"Real-time text messaging"},{title:"Self-Hosted",description:"Complete control over your data and infrastructure"}],tags:["Chat","Voice","Video","Open Source","Self-hosted","Discord Alternative","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a,i=[];return i.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4991}],ports:[{protocol:"tcp",published:null!==(t=Number(e.appServicePort))&&void 0!==t?t:4e4,target:4e4},{protocol:"udp",published:null!==(a=Number(e.appServicePort))&&void 0!==a?a:4e4,target:4e4}],mounts:[{type:"volume",name:"data",mountPath:"/home/bun/.config/sharkord"}]}}),{services:i}}},{slug:"shelf",meta:{name:"Shelf",description:"Shelf.nu is an open-source asset management platform designed to help organizations track and manage their physical assets efficiently. It provides features for asset tracking, inventory management, check-in/check-out functionality, and reporting. The platform includes location tracking with maps, user management, and email notifications for asset-related activities.",instructions:"Shelf.nu requires a Supabase project for file storage and authentication. Before deploying, create a free project at supabase.com, then copy your Project URL, anon public key, and service role key from Project Settings > API. The app will refuse to start if any of the three Supabase fields are left blank.",changeLog:[{date:"2025-06-17",description:"Initial Template Release"},{date:"2026-02-24",description:"Version bumped to main-e54458e"},{date:"2026-06-01",description:"Fix DATABASE_URL (wrong pgbouncer port), make Supabase fields required, bump image to 1.20.2"}],links:[{label:"Documentation",url:"https://docs.shelf.nu/"},{label:"GitHub",url:"https://github.com/shelf-nu/shelf.nu"},{label:"Website",url:"https://www.shelf.nu"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","supabaseAnonPublic","supabaseServiceRole","supabaseUrl"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"shelf"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/shelf-nu/shelf.nu:1.20.2",description:"Shelf.nu Docker image"},supabaseAnonPublic:{type:"string",title:"Supabase Anonymous Public Key",default:"",description:"Supabase anonymous public key for authentication"},supabaseServiceRole:{type:"string",title:"Supabase Service Role Key",default:"",description:"Supabase service role key for server-side operations"},supabaseUrl:{type:"string",title:"Supabase URL",default:"",description:"Your Supabase instance URL (e.g., https://yourproject.supabase.co)"},maptilerToken:{type:"string",title:"MapTiler Token",default:"",description:"MapTiler API token for location mapping features"},smtpHost:{type:"string",title:"SMTP Host",default:"",description:"SMTP server hostname for email notifications"},smtpUser:{type:"string",title:"SMTP Username",default:"",description:"SMTP username for email authentication"},smtpFrom:{type:"string",title:"SMTP From Address",default:"",description:'Email address to use as sender (e.g., "Support" <[email protected]>)'},smtpPassword:{type:"string",title:"SMTP Password",default:"",description:"SMTP password for email authentication"}}},benefits:[{title:"Asset Management",description:"Comprehensive asset tracking and management system with check-in/check-out functionality."},{title:"Location Tracking",description:"Built-in mapping and location tracking features for physical asset management."},{title:"User Management",description:"Multi-user support with role-based access control and team collaboration features."},{title:"Email Notifications",description:"Automated email notifications for asset activities and important updates."}],features:[{title:"Asset Tracking",description:"Track physical assets with detailed information, photos, and status updates."},{title:"Check-in/Check-out",description:"Manage asset assignments and returns with automated tracking and notifications."},{title:"Reporting",description:"Generate reports on asset utilization, location history, and inventory status."},{title:"Integration Ready",description:"Built-in Supabase integration for authentication and additional cloud services."}],tags:["Asset Management","Inventory","Tracking","Business","PostgreSQL"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"DIRECT_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"SUPABASE_ANON_PUBLIC=".concat(e.supabaseAnonPublic),"SUPABASE_SERVICE_ROLE=".concat(e.supabaseServiceRole),"SUPABASE_URL=".concat(e.supabaseUrl),"SESSION_SECRET=".concat(y(32)),"SERVER_URL=https://$(PRIMARY_DOMAIN)","MAPTILER_TOKEN=".concat(e.maptilerToken),"SMTP_HOST=".concat(e.smtpHost),"SMTP_USER=".concat(e.smtpUser),"SMTP_FROM=".concat(e.smtpFrom),"SMTP_PWD=".concat(e.smtpPassword),"INVITE_TOKEN_SECRET=".concat(y(32))].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"shelfmark",meta:{name:"Shelfmark",description:"Shelfmark is a self-hosted book management and organization application that provides comprehensive tools for managing your digital book library. Built with modern architecture, Shelfmark offers a web-based interface accessible on port 8084 for organizing, cataloging, and managing your book collection. The system supports book downloads, configuration management, and integration with torrent and usenet download clients. Perfect for book enthusiasts and libraries looking for a self-hosted solution to manage their digital book collections.",instructions:null,changeLog:[{date:"2025-01-22",description:"Initial Template Release"},{date:"2026-02-24",description:"Version bumped to sha-91cbd51"},{date:"2026-05-08",description:"Version bumped to sha-ba62771"}],links:[{label:"GitHub",url:"https://github.com/calibrain/shelfmark"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","puid","pgid"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"shelfmark"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/calibrain/shelfmark:sha-ba62771"},puid:{type:"string",title:"User ID (PUID)",default:"0",description:"User ID for file permissions (0 for root)"},pgid:{type:"string",title:"Group ID (PGID)",default:"0",description:"Group ID for file permissions (0 for root)"}}},benefits:[{title:"Digital Book Management",description:"Organize and manage your digital book library with comprehensive cataloging and organization tools."},{title:"Self-Hosted Solution",description:"Keep your book collection private and under your control with a self-hosted deployment."},{title:"Book Downloads",description:"Download and organize books with support for integration with torrent and usenet download clients."},{title:"Persistent Storage",description:"All books and configuration data are stored in persistent volumes, ensuring your library is preserved across container restarts."}],features:[{title:"Book Library Management",description:"Catalog, organize, and manage your digital book collection with an intuitive web interface."},{title:"Book Downloads",description:"Download books to a dedicated volume with support for various download sources and formats."},{title:"Configuration Management",description:"Store application configuration in a persistent volume for reliable settings management."},{title:"Download Client Integration",description:"Integrate with torrent and usenet download clients for automated book downloads."},{title:"File Permissions",description:"Configure user and group IDs for proper file permissions on downloaded books and configuration files."}],tags:["Books","Library","Self-Hosted","E-Books","Management","Docker"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8084}],env:["PUID=".concat(e.puid),"PGID=".concat(e.pgid)].join("\n"),mounts:[{type:"volume",name:"books",mountPath:"/books"},{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"shiori",meta:{name:"Shiori",description:"Shiori is a straightforward bookmarks manager, designed as a simple alternative to Pocket. It is written in the Go language and can be used as either a command line application or a web application. Shiori allows for basic bookmark management, including adding, editing, deleting, and searching bookmarks. It also supports importing and exporting bookmarks from and to Netscape Bookmark file and importing bookmarks from Pocket. The application features a clean command line interface and a user-friendly web interface. It is portable and supports sqlite3, PostgreSQL, and MySQL as its database. Shiori also creates an offline archive of the webpage where possible. The Shiori Web Extension is a simple extension for managing bookmarks using Shiori, intended to integrate Shiori with your favorite web browser, allowing you to save and remove bookmarks in Shiori without leaving your current page.",instructions:'The default account is "shiori" with password "gopher". It is removed once another "owner" account is created.',changeLog:[{date:"2023-03-17",description:"Template created (v1.5.4)"},{date:"2025-03-03",description:"Version bumped to v1.7.4"},{date:"2025-12-29",description:"Version bumped to v1.8.0"}],links:[{label:"Github",url:"https://github.com/go-shiori/shiori"},{label:"Web Extension",url:"https://github.com/go-shiori/shiori-web-ext"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"shiori"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/go-shiori/shiori:v1.8.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"shiori-db"}}},benefits:[{title:"Efficient Bookmark Management",description:"Shiori provides a simple and efficient way to manage your bookmarks. It allows you to add, edit, delete, and search bookmarks with ease, making it a convenient tool for organizing your online resources."},{title:"Offline Access",description:"Shiori creates an offline archive of the webpages you bookmark. This means you can access your saved content even when you're not connected to the internet."},{title:"Portability",description:"Shiori is distributed as a single binary, making it highly portable. You can use it on any device and carry your bookmarks with you wherever you go."},{title:"Browser Integration",description:"With the Shiori Web Extension, you can integrate Shiori with your favorite web browser. This allows you to save and remove bookmarks in Shiori without leaving your current page."}],features:[{title:"Bookmark Management",description:"Shiori allows you to add, edit, delete, and search bookmarks. It provides a simple and clean interface for managing your bookmarks."},{title:"Import and Export Functionality",description:"Shiori supports importing and exporting bookmarks from and to Netscape Bookmark file. It also allows you to import bookmarks from Pocket."},{title:"Offline Archive",description:"Shiori creates an offline archive of the webpages you bookmark. This allows you to access your saved content offline."},{title:"Web Extension",description:"Shiori offers a web extension that integrates Shiori with your web browser. This allows you to manage your bookmarks without switching from your current page."},{title:"Database Support",description:"Shiori supports sqlite3, PostgreSQL, and MySQL as its database. This provides flexibility in terms of data storage and management."}],tags:["Bookmarks","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["SHIORI_DIR=/src/shiori","SHIORI_DBMS=postgresql","SHIORI_PG_USER=postgres","SHIORI_PG_PASS=".concat(a),"SHIORI_PG_NAME=$(PROJECT_NAME)","SHIORI_PG_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"SHIORI_PG_PORT=5432"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/src/shiori"}]}}),{services:t}}},{slug:"shlink",meta:{name:"Shlink",description:"Shlink is an open-source URL shortener that allows you to create a short URL for your website. It provides a simple and intuitive interface that allows you to create a short URL for your website.",instructions:"To use this service we need a license key. Create an Account for GeoLite2, Generate a license key, and add it.",changeLog:[{date:"2025-02-14",description:"first release"},{date:"2025-07-24",description:"Version bumped to 4.5"},{date:"2025-12-29",description:"Version bumped to 4.6.0"},{date:"2026-02-24",description:"Version bumped to 5.0.0"},{date:"2026-05-05",description:"Version bumped to 5.0.2"}],links:[{label:"Website",url:"https://shlink.io/"},{label:"Documentation",url:"https://shlink.io/documentation/"},{label:"Github",url:"https://github.com/shlinkio/shlink"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","geolite2ApiKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"shlink"},appServiceImage:{type:"string",title:"App Service Image",default:"shlinkio/shlink:5.0.2"},geolite2ApiKey:{type:"string",title:"GeoLite2 API Key",description:"Generate a license key from your GeoLite2 account."}}},benefits:[{title:"Cross-Platform Support",description:"Shlink is a cross-platform URL shortener that works seamlessly on various operating systems, including Linux, Windows, and macOS. This makes it easy to deploy and manage your short URLs on any platform."},{title:"Easy Link Management",description:"Shlink provides a user-friendly interface and API for managing short URLs, making it easy to create, customize, and track URLs without any hassle."},{title:"Detailed Analytics",description:"Shlink offers detailed analytics for every short URL, including the number of visits, referrers, device types, and geographical data. This helps users gain valuable insights into their audience and link performance."}],features:[{title:"Custom Domains",description:"Shlink supports custom domains, allowing users to create branded short URLs that reflect their identity and improve user trust."},{title:"RESTful API",description:"Shlink includes a powerful RESTful API that allows for easy integration with other applications and automated URL management."},{title:"Geolocation and Device Tracking",description:"Shlink provides geolocation and device tracking for each click, offering insights into where visitors are coming from and what devices they are using."},{title:"QR Code Generation",description:"Automatically generate QR codes for every short URL, making it easy to share links through print media and offline channels."},{title:"Secure and Open Source",description:"Shlink is an open-source project with a focus on security and privacy. Users can self-host it for complete control over their data."}],tags:["URL Shortener","Analytics","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=Europe/Berlin","DEFAULT_DOMAIN=$(PRIMARY_DOMAIN)","IS_HTTPS_ENABLED=false","GEOLITE_LICENSE_KEY=".concat(e.geolite2ApiKey),"DB_DRIVER=maria","DB_USER=mariadb","DB_NAME=$(PROJECT_NAME)","DB_PASSWORD=".concat(a),"DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"shm",meta:{name:"SHM",description:"SHM (Self-Hosted Metrics) is privacy-first, agnostic telemetry for self-hosted software\u2014collect usage stats, verify active instances, and understand adoption without spying on users. Instances sign payloads with Ed25519; PostgreSQL stores JSON metrics behind a single Go binary with an embedded dashboard (port 8080). AGPL-3.0; upstream lives under the kOlapsis GitHub organization.",instructions:null,changeLog:[{date:"2025-01-29",description:"Initial Template Release"}],links:[{label:"Website",url:"https://self-hosted-metrics.com/"},{label:"GitHub",url:"https://github.com/kOlapsis/shm"},{label:"Documentation",url:"https://github.com/kOlapsis/shm/blob/main/docs/DEPLOYMENT.md"},{label:"Container registry",url:"https://github.com/kOlapsis/shm/pkgs/container/shm"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"shm"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/kolapsis/shm:sha-fd3affa"}}},benefits:[{title:"Privacy-first telemetry",description:"Aggregate counters and signed snapshots\u2014no user content; built for self-hosted product owners who need adoption insight."},{title:"Agnostic payloads",description:"Send JSON metrics; the dashboard adapts with dynamic KPIs and tables."},{title:"PostgreSQL backend",description:"Stores payloads in PostgreSQL via SHM_DB_DSN; Easypanel provisions a postgres service."},{title:"Embedded UI",description:"Single container serves API and dashboard on port 8080."}],features:[{title:"Ed25519 instance identity",description:"Cryptographic registration and signed snapshots reduce spoofing."},{title:"Multi-app tracking",description:"Track several products on one SHM server."},{title:"Badges & GitHub stars",description:"Optional embeddable badges and GitHub star integration when configured."},{title:"SDKs",description:"Go and Node clients for integrating telemetry into your apps."}],tags:["Telemetry","Metrics","Self-Hosted","PostgreSQL","Privacy","Go"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}});var i="postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?sslmode=disable");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["SHM_DB_DSN=".concat(i),"PORT=8080"].join("\n")}}),{services:t}}},{slug:"shotcut",meta:{name:"Shotcut",description:"Shotcut is a free, open-source, cross-platform video editor that enables users to create and edit professional-quality videos. Written in C++, it supports a wide range of video formats and codecs thanks to FFmpeg integration. Shotcut provides powerful features such as multi-format timeline editing, 4K resolution support, and advanced video effects and filters. The app offers intuitive drag-and-drop functionality, customizable UI, and support for hardware acceleration. It also includes audio editing tools, frame-accurate seeking, and video compositing capabilities. Shotcut is designed to be user-friendly while offering advanced tools for video enthusiasts and professionals alike. Additional features include support for network stream playback, webcam capture, and external monitoring.",instructions:null,changeLog:[{date:"2025-01-22",description:"first release"},{date:"2025-07-24",description:"Version bumped to 25.05.11"},{date:"2025-12-29",description:"Version bumped to 25.10.31"},{date:"2026-02-24",description:"Version bumped to 26.1.30"},{date:"2026-05-05",description:"Version bumped to 26.4.30"}],links:[{label:"Website",url:"https://www.shotcut.org/"},{label:"Github",url:"https://github.com/mltframework/shotcut"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"shotcut"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/shotcut:26.4.30"}}},benefits:[{title:"Cross-Platform Support",description:"Shotcut works seamlessly on Windows, macOS, and Linux, allowing users to edit videos across different operating systems with consistent functionality and performance."},{title:"Wide Format Support",description:"Thanks to FFmpeg integration, Shotcut supports hundreds of audio, video, and image formats and codecs, making it highly versatile and capable of handling almost any media file."},{title:"Advanced Video Editing Features",description:"Shotcut offers advanced features such as keyframe animations, customizable video filters, multi-track timeline editing, and 4K video support, making it ideal for professional video projects."}],features:[{title:"Multi-Format Timeline",description:"This feature allows you to mix and match resolutions and frame rates within a single project timeline, providing unmatched flexibility for editing."},{title:"Video Effects and Filters",description:"Shotcut includes a wide range of video filters, including color grading, chroma key, transitions, and text overlays, enabling users to enhance and customize their videos."},{title:"Hardware Acceleration",description:"Shotcut supports GPU-based rendering and encoding, significantly improving performance and reducing rendering times for complex projects."},{title:"Audio Editing Tools",description:"Shotcut includes tools for audio mixing, waveform visualization, and support for audio filters such as gain, bass, treble, and normalization."},{title:"Open Source Community",description:"Being open-source, Shotcut has an active community contributing to its development and providing support to users worldwide."}],tags:["Video Editing","Media","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"shynet",meta:{name:"Shynet",description:"Shynet is a powerful, open-source analytics tool designed to provide you with clear, comprehensive insights about your website's traffic and user behavior. Unlike traditional analytics platforms, Shynet respects user privacy and does not track individual users across websites. Instead, it focuses on providing aggregate data and trends, helping you understand how users interact with your website as a whole. Shynet offers a range of features including real-time analytics, session tracking, and primary key integration. It also supports single-page applications, ensuring you get accurate data even when users navigate between pages within your application. With Shynet, you can easily create and manage multiple services, each with its own unique tracking script. The app also offers an API, allowing you to access all the information displayed on the dashboard programmatically. Whether you're a small business owner, a web developer, or a data analyst, Shynet provides you with the tools you need to make informed decisions about your website.",instructions:"Open a console session and run ./manage.py createsuperuser to create your administrator account",changeLog:[{date:"2023-3-20",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/milesmcc/shynet/blob/master/GUIDE.md"},{label:"Github",url:"https://github.com/milesmcc/shynet/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"shynet"},appServiceImage:{type:"string",title:"App Service Image",default:"milesmcc/shynet:v0.13.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"shynet-db"}}},benefits:[{title:"Real-time Analytics",description:"Shynet provides real-time analytics, allowing you to monitor your website's traffic and user behavior in real time. This can help you make informed decisions and take immediate action based on the latest data."},{title:"Privacy-Focused",description:"Shynet respects user privacy by design. It does not use cookies or collect personally identifiable information. This makes it a great choice for businesses that value user privacy and want to comply with data protection regulations."},{title:"Detailed Insights",description:"With Shynet, you can gain detailed insights into your website's performance and user behavior. It provides comprehensive data on page views, sessions, and more, helping you understand your audience better."}],features:[{title:"Easy Deployment",description:"Shynet can be easily deployed using Docker, making it a convenient solution for businesses of all sizes. It supports both PostgreSQL and SQLite databases, giving you flexibility in your setup."},{title:"Admin User Creation",description:"Shynet allows you to create an admin user with a temporary password, providing secure access to your analytics dashboard."},{title:"Customizable Whitelabel",description:"You can customize the whitelabel of your Shynet instance, allowing you to rename it according to your preference."},{title:"Service Creation and Tracking",description:"Shynet enables you to create a service and generate a tracking script code. By injecting this script on your web pages, you can start tracking user behavior and collecting analytics data."},{title:"API Access",description:"Shynet provides API access to all the information displayed on the dashboard. This allows you to integrate Shynet's data with other systems or applications for further analysis and reporting."}],tags:["Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_NAME=$(PROJECT_NAME)","DB_USER=postgres","DB_PASSWORD=".concat(i),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_PORT=5432","DJANGO_SECRET_KEY=".concat(a),"ALLOWED_HOSTS=$(PRIMARY_DOMAIN)","CSRF_TRUSTED_ORIGINS=https://$(PRIMARY_DOMAIN)","LANGUAGE_CODE=en-us","ACCOUNT_SIGNUPS_ENABLED=False","TIME_ZONE=America/New_York","ACCOUNT_EMAIL_VERIFICATION=none","SCRIPT_USE_HTTPS=True","SCRIPT_HEARTBEAT_FREQUENCY=5000","SESSION_MEMORY_TIMEOUT=1800","ONLY_SUPERUSERS_CREATE=True","SHOW_SHYNET_VERSION=True","SHOW_THIRD_PARTY_ICONS=True"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"sickchill",meta:{name:"Sickchill",description:"SickChill is a self-hosted personal video recorder (PVR) application designed to automate the process of downloading and managing TV shows. It supports a wide range of sources to download content, including torrents and Usenet. With its intuitive interface, you can search for and schedule episodes, track your show library, and get detailed information about your favorite series. SickChill integrates with various media players and tools to organize and play content seamlessly. It also includes features like automatic quality selection, subtitles, and episode renaming for a streamlined viewing experience.",instructions:null,changeLog:[{date:"2025-01-22",description:"First Release"}],links:[{label:"Documentation",url:"https://github.com/SickChill/SickChill/wiki"},{label:"Github",url:"https://github.com/SickChill/SickChill"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sickchill"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/sickchill:2024.3.1"}}},benefits:[{title:"Automated TV Show Management",description:"SickChill automates the process of managing your TV shows. It tracks your favorite series and automatically downloads new episodes as they become available, saving you time and effort."},{title:"Broad Download Source Support",description:"SickChill supports both torrent and Usenet downloads. This versatility ensures that you can use your preferred downloading method for acquiring content efficiently."},{title:"Smart Quality Management",description:"With SickChill, you can define quality preferences for your downloads. It will automatically select and download episodes in the desired quality, ensuring the best viewing experience."}],features:[{title:"Automatic Subtitles",description:"SickChill includes support for automatically downloading subtitles for your episodes. This ensures that your content is accessible and enjoyable for a global audience."},{title:"Episode Renaming",description:"This feature renames episodes according to a user-defined format. It keeps your media library organized and makes it easier to find and play your content."},{title:"Integration with Media Players",description:"SickChill integrates seamlessly with popular media players, allowing you to play your downloaded content directly. This creates a cohesive entertainment experience."},{title:"Extensive Show Library Tracking",description:"SickChill provides detailed tracking of your show library, including upcoming episodes, previously watched content, and missing episodes."},{title:"Notifications and Alerts",description:"Receive notifications and alerts when new episodes are available or when downloads are complete. Stay updated without needing to check manually."}],tags:["TV Shows","Media","Automation"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"downloads",mountPath:"/downloads"},{type:"volume",name:"tv",mountPath:"/tv"}]}}),{services:t}}},{slug:"sidequests",meta:{name:"SideQuests",description:"SideQuests is a task management application that helps you organize and track your tasks and projects. It provides a simple and intuitive interface for managing your daily activities and side projects.",instructions:null,changeLog:[{date:"2025-04-09",description:"First Release"},{date:"2026-05-08",description:"Version bumped to 1.1.5"}],links:[{label:"GitHub",url:"https://github.com/need4swede/sidequests"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","appAdminUsername","appAdminPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sidequests"},appServiceImage:{type:"string",title:"App Service Image",default:"need4swede/sidequests:1.1.5"},appAdminUsername:{type:"string",title:"Admin Username",default:"adminuser"},appAdminPassword:{type:"string",title:"Admin Password",default:"adminpassword"}}},benefits:[{title:"Task Management",description:"Organize and track your tasks efficiently"},{title:"Simple Interface",description:"User-friendly interface for easy task management"},{title:"Project Organization",description:"Keep your projects and tasks well-organized"},{title:"Self-Hosted",description:"Keep your data private and secure"}],features:[{title:"Task Creation",description:"Create and manage tasks with ease"},{title:"Project Organization",description:"Organize tasks into projects"},{title:"User Management",description:"Manage user access and permissions"},{title:"Data Persistence",description:"Save your tasks and projects securely"},{title:"Customizable",description:"Configure to your specific needs"}],tags:["Task Management","Project Management","Organization","Productivity","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["PORT=8080","ADMIN_USERNAME=".concat(e.appAdminUsername),"ADMIN_PASSWORD=".concat(e.appAdminPassword),"SECRET_KEY=".concat(a)].join("\n"),mounts:[{type:"volume",name:"instance",mountPath:"/app/instance"}]}}),{services:t}}},{slug:"silicon-notes",meta:{name:"Silicon Notes",description:"Silicon Notes is a lightweight, low-friction personal knowledge base designed to streamline your note-taking and information organization. The app allows you to edit your notes in plaintext using Markdown, with the added benefit of language syntax highlighting in the rendered HTML. It offers powerful full-text and page title search capabilities, making it easier than ever to find the information you need. The app also features bi-directional page relationships, allowing you to create a complex web of interconnected information. Silicon Notes also includes a table of contents in the left sidebar for easy navigation, and a mobile layout that makes it accessible on any device. The app's no-frills UI ensures a smooth and distraction-free user experience. Silicon Notes is built with a minimal tech stack, relying on a few smallish depen
1dencies, making it a lightweight and efficient tool for your personal knowledge management.",instructions:null,changeLog:[{date:"2023-1-28",description:"first release"},{date:"2025-07-24",description:"Version bumped to 0.1.5"}],links:[{label:"Github",url:"https://github.com/cu/silicon"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"silicon"},appServiceImage:{type:"string",title:"App Service Image",default:"bityard/silicon:0.1.5"}}},benefits:[{title:"Efficient Knowledge Management",description:"Silicon Notes is a lightweight, low-friction personal knowledge base that allows you to efficiently manage and organize your information. It is designed to be easy to use and navigate, making it an ideal tool for anyone looking to improve their knowledge management practices."},{title:"Flexible and Accessible",description:"With a mobile-friendly layout, Silicon Notes ensures that your personal knowledge base is always within reach. Whether you're on the go or at your desk, you can easily access, edit, and manage your information."},{title:"Powerful Search Capabilities",description:"Silicon Notes features a powerful full-text and page title search, making it easy to find the information you need. Whether you're looking for a specific piece of information or just browsing, the search function makes it easy to navigate your personal knowledge base."}],features:[{title:"Plaintext Editing in Markdown",description:"Silicon Notes allows you to edit your notes in plaintext using Markdown. This makes it easy to format your notes and add elements like headers, links, and lists."},{title:"Rendering in HTML",description:"Your Markdown notes are rendered in HTML, providing a clean and readable format for your knowledge base. This feature also includes language syntax highlighting in the rendered HTML."},{title:"Bi-directional Page Relationships",description:"Silicon Notes supports bi-directional page relationships, allowing you to easily link related pages together. This feature helps to create a more interconnected and comprehensive knowledge base."},{title:"Page History",description:"Silicon Notes keeps a history of each page, allowing you to easily track and revert changes. This feature ensures that no information is lost and that you can always return to previous versions of your notes."},{title:"Table of Contents",description:"Silicon Notes includes a table of contents in the left sidebar, providing an easy and intuitive way to navigate your knowledge base."}],tags:["Notes","Documentation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],mounts:[{type:"volume",name:"data",mountPath:"/home/silicon/instance"}]}}),{services:t}}},{slug:"simpletorrent",meta:{name:"SimpleTorrent",description:"SimpleTorrent is a self-hosted remote torrent client that allows you to manage your torrents remotely. Written in Go (golang), it enables you to start torrents remotely and download sets of files on the local disk of the server. These files are then retrievable or streamable via HTTP. The app offers individual file download control, the ability to run an external program on task completion, and a seeding ratio to stop tasks when reached. It also provides a download/upload speed limiter and detailed transfer stats in the web UI. SimpleTorrent supports real-time updates, is mobile-friendly, and offers a fast content server. It also supports IPv6 out of the box and has an updated torrent engine from anacrolix/torrent. Additional features include a torrent watcher, K8s/docker health-check endpoint, extra trackers from an external source, and a protocol handler to magnet.",instructions:null,changeLog:[{date:"2022-10-28",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/boypt/simple-torrent/wiki"},{label:"Github",url:"https://github.com/boypt/simple-torrent"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"simpletorrent"},appServiceImage:{type:"string",title:"App Service Image",default:"boypt/cloud-torrent:1.3.9"}}},benefits:[{title:"Remote Torrent Management",description:"SimpleTorrent allows you to manage your torrents remotely. You can start torrents from anywhere and have them download files directly to the server's local disk. This makes it easy to manage your downloads without needing to be physically present at the server."},{title:"Streamable Downloads",description:"Once your files are downloaded to the server, they are retrievable or streamable via HTTP. This means you can access your downloaded content from any device with an internet connection, making it highly convenient and flexible."},{title:"Control Over Individual File Downloads",description:"SimpleTorrent gives you the ability to control individual file downloads. This means you can choose exactly which files you want to download from a torrent, giving you greater control over your downloads and saving server space."}],features:[{title:"DoneCmd",description:"This feature allows you to run an external program upon the completion of tasks. This can be useful for automating processes or triggering events once a download is complete."},{title:"SeedRatio",description:"This feature stops a task when a certain seeding ratio is reached. This allows you to control how much you seed back to the torrent community after your download is complete."},{title:"UploadRate/DownloadRate",description:"These features allow you to limit your upload and download speeds. This can be useful for managing bandwidth usage on your server."},{title:"Torrent Watcher",description:"This feature allows you to monitor your torrents in real-time. It provides detailed transfer stats in the web UI, giving you a clear overview of your torrent activity."},{title:"Magnet RSS Subscribing",description:"This feature supports subscribing to magnet RSS feeds. This allows you to automatically download new content from your favorite torrent feeds."}],tags:["File Management","Media","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:81}]}}),{services:t}}},{slug:"simstudio",meta:{name:"SimStudio AI",description:"SimStudio AI is an advanced AI simulation platform that combines cutting-edge artificial intelligence with intuitive design tools. It provides a comprehensive environment for creating, running, and analyzing AI-powered simulations with support for various AI models and integrations. The platform features authentication, email notifications, and extensible AI provider support including local models via Ollama.",instructions:"Please provide the OAuth credentials for Google or GitHub or both.",changeLog:[{date:"2025-06-24",description:"Initial Template Release"},{date:"2026-02-24",description:"Version bumped to v0.5.99"},{date:"2026-05-05",description:"Version bumped to v0.6.66"}],links:[{label:"Website",url:"https://simstudio.ai"},{label:"GitHub",url:"https://github.com/simstudioai/sim"},{label:"Documentation",url:"https://docs.simstudio.ai/introduction"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","migrationsServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"simstudio"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/simstudioai/simstudio:v0.6.66",description:"SimStudio AI main application Docker image"},migrationsServiceImage:{type:"string",title:"Migrations Service Image",default:"ghcr.io/simstudioai/migrations:v0.6.66",description:"SimStudio AI database migrations Docker image"},freestyleApiKey:{type:"string",title:"Freestyle API Key",default:"",description:"Optional API key for Freestyle AI services"},googleClientId:{type:"string",title:"Google OAuth Client ID",default:"",description:"Optional Google OAuth client ID for authentication"},googleClientSecret:{type:"string",title:"Google OAuth Client Secret",default:"",description:"Optional Google OAuth client secret for authentication"},githubClientId:{type:"string",title:"GitHub OAuth Client ID",default:"",description:"Optional GitHub OAuth client ID for authentication"},githubClientSecret:{type:"string",title:"GitHub OAuth Client Secret",default:"",description:"Optional GitHub OAuth client secret for authentication"},resendApiKey:{type:"string",title:"Resend API Key",default:"",description:"Optional Resend API key for email notifications"},ollamaUrl:{type:"string",title:"Ollama URL",default:"http://localhost:11434",description:"URL for Ollama server for local AI models"}}},benefits:[{title:"AI-Powered Simulations",description:"Create and run sophisticated AI simulations with support for multiple AI providers and models including local options."},{title:"Comprehensive Authentication",description:"Built-in authentication system with support for Google and GitHub OAuth providers for secure user management."},{title:"Vector Database Support",description:"PostgreSQL with pgvector extension for advanced AI and machine learning workloads requiring vector operations."},{title:"Flexible AI Integration",description:"Support for various AI providers including OpenAI-compatible APIs and local models via Ollama for maximum flexibility."}],features:[{title:"Multi-Provider AI Support",description:"Integrate with various AI providers and services, including local models through Ollama for privacy and control."},{title:"OAuth Authentication",description:"Secure user authentication with Google and GitHub OAuth integration for easy user onboarding."},{title:"Email Notifications",description:"Built-in email notification system using Resend API for user communication and alerts."},{title:"Database Migrations",description:"Automated database schema management with dedicated migration service for smooth updates and deployments."}],tags:["AI","Simulation","Machine Learning","PostgreSQL","Vector Database","OAuth","Next.js"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o=y(32);return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,image:"pgvector/pgvector:pg17"}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-migrations"),env:["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:e.migrationsServiceImage},deploy:{command:"bun run db:migrate"}}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"BETTER_AUTH_URL=https://$(PRIMARY_DOMAIN)","NEXT_PUBLIC_APP_URL=https://$(PRIMARY_DOMAIN)","BETTER_AUTH_SECRET=".concat(i),"ENCRYPTION_KEY=".concat(o),"FREESTYLE_API_KEY=".concat(e.freestyleApiKey),"GOOGLE_CLIENT_ID=".concat(e.googleClientId),"GOOGLE_CLIENT_SECRET=".concat(e.googleClientSecret),"GITHUB_CLIENT_ID=".concat(e.githubClientId),"GITHUB_CLIENT_SECRET=".concat(e.githubClientSecret),"RESEND_API_KEY=".concat(e.resendApiKey),"OLLAMA_URL=".concat(e.ollamaUrl)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"sinusbot",meta:{name:"Sinusbot",description:"Sinusbot is a powerful and versatile music bot designed for c
1ommunication platforms like TeamSpeak and Discord. It allows users to stream high-quality audio, manage playlists, and automate music playback seamlessly. Sinusbot is lightweight, highly customizable, and provides an intuitive web interface for managing audio playback. With support for plugins and scripting, Sinusbot can be tailored to meet the needs of any community, enhancing the audio experience for gaming, collaboration, or leisure activities.",instructions:'Create a user using this command "useradd --no-create-home -s /sbin/nologin -U sinusbot", then create directories using this command "mkdir -p /opt/sinusbot/data /opt/sinusbot/scripts", then give user permissions to this folder using this command "chown -R sinusbot:sinusbot /opt/sinusbot", then run echo $(id -u sinusbot) and echo $(id -g sinusbot) and copy the uid and guid, paste the given ids in the Environmental Section and redeploy, if UID/GUID is"1000"/"1000", then just redeploy after performing the above instructions',changeLog:[{date:"2025-01-21",description:"First Release"}],links:[{label:"Documentation",url:"https://sinusbot.github.io/docs/"},{label:"Github",url:"https://github.com/SinusBot"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sinusbot"},appServiceImage:{type:"string",title:"App Service Image",default:"sinusbot/docker:1.0.2"},password:{type:"string",title:"App Service Password",default:"password"}}},benefits:[{title:"High-Quality Audio Streaming",description:"Sinusbot delivers crystal-clear audio for your community, ensuring a top-notch listening experience."},{title:"Easy-to-Use Interface",description:"Manage playlists, stream audio, and control playback effortlessly with the user-friendly web interface."},{title:"Customizable with Plugins",description:"Extend Sinusbot\u2019s functionality with plugins and scripts to meet your specific requirements."},{title:"Multi-Platform Support",description:"Compatible with both Discord and TeamSpeak, making it versatile for various communication needs."},{title:"Lightweight and Efficient",description:"Sinusbot is resource-friendly, ensuring smooth performance without overloading your server."}],features:[{title:"Playlist Management",description:"Create and manage playlists easily, supporting multiple audio formats and streaming sources."},{title:"Auto-DJ Mode",description:"Enable Auto-DJ to keep the music playing continuously without manual intervention."},{title:"Scripting Support",description:"Use JavaScript-based scripts to automate and customize your bot's behavior."},{title:"Multi-Instance Support",description:"Run multiple bot instances on the same server to cater to different channels or platforms."},{title:"Advanced Permissions System",description:"Assign roles and permissions to control who can manage the bot or access specific features."}],tags:["Music Bot","Audio Streaming","TeamSpeak","Discord","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["UID=1000","GID=1000","OVERRIDE_PASSWORD=".concat(e.password)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8087}],mounts:[{type:"volume",name:"scripts",mountPath:"/opt/sinusbot/scripts"},{type:"volume",name:"data",mountPath:"/opt/sinusbot/data"}]}}),{services:t}}},{slug:"slash",meta:{name:"Slash",description:"Slash is an open source, self-hosted platform designed to help you organize, manage, and share your most important links. Easily create customizable, human-readable shortcuts to streamline your link management. Use tags to categorize your links and share them easily with your team or publicly.",instructions:null,changeLog:[{date:"2025-02-14",description:"First Release"},{date:"2025-03-03",description:"Version bumped to 1.0.0"},{date:"2026-02-24",description:"Version bumped to 1.0.0-rc.2"}],links:[{label:"Github",url:"https://github.com/yourselfhosted/slash"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"slash"},appServiceImage:{type:"string",title:"App Service Image",default:"yourselfhosted/slash:1.0.0-rc.2"}}},benefits:[{title:"Efficient Link Management",description:"Slash is an open-source, self-hosted platform designed to help you organize, manage, and share your most important links. It provides an intuitive interface for creating, managing, and categorizing links effortlessly."},{title:"Customizable Shortcuts",description:"With Slash, you can create human-readable, customizable shortcuts for your links. This makes it easy to share and remember important URLs without relying on cryptic or auto-generated links."},{title:"Tag-Based Organization",description:"Slash supports a powerful tag-based system for organizing your links. Easily categorize and filter your links using tags, helping you keep everything structured and easy to find."}],features:[{title:"Self-Hosting Capability",description:"Slash is designed to be self-hosted, giving you full control over your data and ensuring privacy and security in managing your links."},{title:"Public and Team Sharing",description:"Share your links publicly or with specific teams, making collaboration simple and efficient. This feature is ideal for teams that need to manage and share resources regularly."},{title:"Search and Filter",description:"Slash offers a robust search and filter function, making it easy to find links based on keywords, tags, or custom shortcuts."},{title:"API Support",description:"Slash includes API support for integrating link management with other applications and automating workflows, providing flexibility and enhanced productivity."},{title:"Analytics and Insights",description:"Gain insights into how your links are being used with built-in analytics. Track visits, referrers, and other data to better understand link performance."}],tags:["Link Management","Self-Hosted","Open Source","Productivity"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5231}],mounts:[{type:"volume",name:"data",mountPath:"/var/opt/slash"}]}}),{services:t}}},{slug:"slink",meta:{name:"Slink",description:"Slink is a self-hosted image hosting service that provides secure image upload, storage, and sharing capabilities. It features user management with approval workflows, configurable password requirements, and image processing options. Perfect for teams and organizations that need controlled image sharing.",instructions:null,changeLog:[{date:"2025-09-25",description:"First release (v1.6.7)"}],links:[{label:"GitHub",url:"https://github.com/anirdev/slink"},{label:"Documentation",url:"https://docs.slinkapp.io"},{label:"DockerHub",url:"https://hub.docker.com/r/anirdev/slink"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"slink"},appServiceImage:{type:"string",title:"App Service Image",default:"anirdev/slink:v1.6.7"}}},benefits:[{title:"Image Hosting",description:"Secure image upload, storage, and sharing with user management and approval workflows."},{title:"User Management",description:"Controlled user registration with approval requirements and configurable password policies."},{title:"Image Processing",description:"Automatic image compression, EXIF metadata removal, and size optimization for efficient storage."},{title:"Self-Hosted",description:"Complete control over your image data with no external dependencies or data sharing."}],features:[{title:"Web Interface",description:"Clean, responsive web interface for image management."},{title:"User Approval System",description:"Admin approval required for new user registrations."},{title:"Password Requirements",description:"Configurable password strength requirements."},{title:"Image Processing",description:"Automatic compression and metadata removal."},{title:"Size Limits",description:"Configurable maximum image size limits."},{title:"Storage Options",description:"Support for local and cloud storage providers."},{title:"Data Persistence",description:"Database and image storage persist across restarts."},{title:"Security Features",description:"EXIF metadata removal and secure image handling."}],tags:["Image Hosting","File Sharing","User Management","Image Processing","Web Interface"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"slink-data",mountPath:"/app/var/data"},{type:"volume",name:"slink-images",mountPath:"/app/slink/images"}],env:["TZ=Etc/UTC","ORIGIN=https://$(PRIMARY_DOMAIN)","USER_APPROVAL_REQUIRED=true","USER_PASSWORD_MIN_LENGTH=8","USER_PASSWORD_REQUIREMENTS=15","IMAGE_MAX_SIZE=15M","IMAGE_STRIP_EXIF_METADATA=true","IMAGE_COMPRESSION_QUALITY=80","STORAGE_PROVIDER=local"].join("\n")}}),{services:t}}},{slug:"slskd",meta:{name:"slskd",description:"slskd is a modern, web-based client for the Soulseek peer-to-peer file sharing network. It provides a clean, intuitive web interface for browsing, searching, and downloading files from the Soulseek network. Unlike traditional desktop clients, slskd runs as a daemon service that you can access from any device with a web browser. The application supports all core Soulseek features including user searches, room browsing, private messaging, and file sharing. With its containerized deployment, slskd makes it easy to run a persistent Soulseek client on a server or NAS device. It's perfect for music enthusiasts, collectors, and anyone who wants to participate in the Soulseek community without running a desktop application. The daemon continues to operate even when you're not actively using the web interface, ensuring you never miss downloads or messages.",instructions:"Default credentials are slskd/slskd.",changeLog:[{date:"2025-10-23",description:"Initial Template Release"},{date:"2026-03-25",description:"Replaced banner-like screenshot with full upstream web UI screenshot"},{date:"2026-05-05",description:"Version bumped to 0.25.1"}],links:[{label:"Website",url:"https://slskd.org"},{label:"Documentation",url:"https://github.com/slskd/slskd/tree/master/docs"},{label:"GitHub",url:"https://github.com/slskd/slskd"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","torrentPort","webPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"slskd"},appServiceImage:{type:"string",title:"App Service Image",default:"slskd/slskd:0.25.1",description:"slskd Docker image"},torrentPort:{type:"string",title:"Torrent Port",default:"5031"},webPort:{type:"string",title:"Web Port",default:"50300"}}},benefits:[{title:"Web-Based Access",description:"Access your Soulseek client from any device with a web browser, no need to install desktop applications or maintain multiple client installations."},{title:"Always-On Operation",description:"Run slskd as a persistent daemon service that continues operating 24/7, ensuring you never miss downloads, uploads, or messages from other users."},{title:"Modern Interface",description:"Enjoy a clean, responsive web interface with modern design and user experience improvements over traditional Soulseek desktop clients."},{title:"Remote Management",description:"Manage your Soulseek activity remotely through the web interface with support for remote configuration and control from anywhere."}],features:[{title:"Soulseek Network Client",description:"Full-featured client for the Soulseek peer-to-peer network supporting all core functionality including searches, downloads, uploads, and messaging."},{title:"Web Interface",description:"Responsive web-based interface accessible from any device with a browser, providing easy access to all Soulseek features without desktop software."},{title:"Search and Browse",description:"Search the Soulseek network for files, browse user libraries, and explore chat rooms to discover new music and content from the community."},{title:"File Sharing",description:"Share your own files with the Soulseek community while downloading from others, maintaining the network's peer-to-peer nature and etiquette."},{title:"Private Messaging",description:"Communicate with other Soulseek users through private messages, discuss music, and build connections within the community."},{title:"Room Support",description:"Join and participate in Soulseek chat rooms to engage with communities around specific music genres, artists, or interests."},{title:"Daemon Mode",description:"Runs as a background service that operates continuously, handling uploads and downloads even when the web interface isn't actively being used."},{title:"Remote Configuration",description:"Configure and manage all aspects of the client remotely through the web interface without needing direct server access or configuration files."}],tags:["File Sharing","P2P","Media","Music","Self-Hosted","Download Manager","Soulseek","Community"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5030}],ports:[{published:Number(e.torrentPort),target:5031,protocol:"tcp"},{published:Number(e.webPort),target:50300,protocol:"tcp"}],env:["SLSKD_REMOTE_CONFIGURATION=true"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app"}]}}),{services:t}}},{slug:"smokeping",meta:{name:"SmokePing",description:"SmokePing is a powerful open-source tool designed for network monitoring and latency measurement. It provides real-time visualizations of network latency and packet loss, making it easier to identify and diagnose connectivity issues. SmokePing uses ICMP and other protocols to monitor latency across multiple targets and generates detailed graphs to highlight network performance over time. It supports alerting, letting you know when latency or packet loss exceeds predefined thresholds. With its flexible configuration and plugin system, SmokePing can be adapted to various network environments, providing valuable insights into network health and reliability.",instructions:"You may configure your targets by taking the console from Easypanel",changeLog:[{date:"2025-01-21",description:"First Release"},{date:"2025-12-29",description:"Version bumped to 2.9.0"}],links:[{label:"Documentation",url:"https://oss.oetiker.ch/smokeping/doc/smokeping_install.en.html"},{label:"Github",url:"https://github.com/oetiker/SmokePing"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"smokeping"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/smokeping:2.9.0"}}},benefits:[{title:"Real-Time Network Monitoring",description:"SmokePing provides real-time monitoring of network latency and packet loss, enabling quick detection of connectivity issues and bottlenecks."},{title:"Detailed Visualizations",description:"Generate detailed graphs that show latency trends and packet loss over time, providing actionable insights into network performance."},{title:"Customizable Alerts",description:"Configure alerts to notify you when latency or packet loss exceeds predefined thresholds, ensuring you are always informed about potential issues."},{title:"Flexible Configuration",description:"SmokePing supports a wide range of protocols and can be easily configured to monitor multiple network targets and scenarios."},{title:"Open Source and Extensible",description:"SmokePing is open-source and supports plugins, allowing you to extend its functionality to suit your specific network monitoring needs."}],features:[{title:"Latency Measurement",description:"Measure network latency using ICMP and other supported protocols to provide accurate and reliable metrics."},{title:"Packet Loss Tracking",description:"Monitor and visualize packet loss across network targets to identify potential issues affecting connectivity."},{title:"Alerts and Notifications",description:"Set up custom alerts to notify you via email or other methods when network performance drops below acceptable levels."},{title:"Multi-Target Monitoring",description:"Monitor multiple network targets simultaneously, making it suitable for complex network environments."},{title:"Historical Data Retention",description:"Store and analyze historical data to identify trends and recurring issues in your network performance."}],tags:["Network Monitoring","Latency Measurement","Open Source","Connectivity","Troubleshooting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=1000","PGID=1000","TZ=Etc/UTC","MASTER_URL=https://$(PRIMARY_DOMAIN)/smokeping/"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"snapdrop",meta:{name:"SnapDrop",description:"Snapdrop is a self-hosted, browser-based file-sharing platform that allows you to seamlessly transfer files between devices on the same local network. Inspired by Apple's AirDrop, Snapdrop works across any device and browser without requiring an account or installation. It provides fast, peer-to-peer file transfers using WebRTC, ensuring privacy and efficiency. Snapdrop's lightweight design ensures minimal resource usage while offering an intuitive user interface for easy file sharing.",instructions:"Access the Snapdrop service via your browser on devices connected to the same network. Simply drag and drop files to transfer them to other devices detected on the Snapdrop interface.",changeLog:[{date:"2024-12-12",description:"First release"},{date:"2025-03-03",description:"Version bumped to version-b8b78cc2"}],links:[{label:"Documentation",url:"https://github.com/linuxserver/docker-snapdrop"},{label:"GitHub",url:"https://github.com/RobinLinus/snapdrop"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"snapdrop"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/snapdrop:version-b8b78cc2"}}},benefits:[{title:"Seamless File Sharing",description:"Snapdrop enables fast and seamless file transfers between devices on the same network without needing any accounts or installations."},{title:"Cross-Platform Support",description:"Snapdrop works across all devices and browsers, including mobile phones, tablets, and desktops, ensuring broad compatibility."},{title:"Private and Secure Transfers",description:"File transfers are peer-to-peer over WebRTC, ensuring privacy and no third-party servers for file storage."},{title:"Lightweight and Fast",description:"Snapdrop is lightweight, consumes minimal resources, and delivers efficient file transfers."}],features:[{title:"Peer-to-Peer Transfers",description:"Uses WebRTC for direct peer-to-peer file transfers, bypassing external servers for enhanced privacy."},{title:"Browser-Based Interface",description:"No installation required; simply open the Snapdrop service in any modern browser to start sharing files."},{title:"Multi-Device Detection",description:"Automatically detects other devices on the same network, allowing seamless file transfers between them."},{title:"Drag-and-Drop Functionality",description:"Share files easily by dragging and dropping them into the Snapdrop interface."},{title:"Cross-Browser Compatibility",description:"Snapdrop works on Chrome, Firefox, Safari, Edge, and other major browsers."},{title:"Mobile-Friendly Design",description:"Optimized for mobile devices, allowing you to share files between your phone, tablet, and desktop effortlessly."}],tags:["File Sharing","Peer-to-Peer","Browser-Based","Cross-Platform","Productivity","WebRTC","Secure Transfers","Local Network"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PORT=3000","PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"snapotter",meta:{name:"SnapOtter",description:"SnapOtter is a self-hosted, privacy-first image manipulation platform packed into a single Docker container. It offers 50+ image tools including resizing, compression, format conversion, AI background removal, upscaling, OCR, and more \u2014 all processing happens locally on your server with nothing leaving your network.",instructions:'After deployment, access the web interface. Default credentials are username "admin" and password "admin". Change the password immediately after first login. All image processing is performed locally \u2014 no data leaves your server.',changeLog:[{date:"2026-06-15",description:"First Release"}],links:[{label:"Website",url:"https://snapotter.com"},{label:"Documentation",url:"https://docs.snapotter.com"},{label:"Github",url:"https://github.com/snapotter-hq/SnapOtter"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"snapotter"},appServiceImage:{type:"string",title:"App Service Image",default:"snapotter/snapotter:1.17.2"}}},benefits:[{title:"Privacy First",description:"All image processing happens locally on your server. Your files stay on your network and are never sent to external services."},{title:"50+ Image Tools",description:"Resize, crop, compress, convert, watermark, vectorize, beautify screenshots, generate memes, create GIFs, and much more."},{title:"Local AI Capabilities",description:"Background removal, photo upscaling, restoration, object erasing, face blur, OCR, and canvas expansion powered by local AI models."},{title:"Single Container Deployment",description:"No Redis, no Postgres, no external dependencies. One Docker container handles everything out of the box."},{title:"REST API Access",description:"Full REST API with OpenAPI documentation so all tools can be integrated into your workflows and automations."}],features:[{title:"Format Conversion",description:"Convert between 55+ input formats including 23 camera RAW formats and 14 output formats in a single click."},{title:"AI Background Removal",description:"Remove image backgrounds using locally running AI without sending data to any external service."},{title:"Batch Processing",description:"Process unlimited images simultaneously using bulk operations for efficient workflows."},{title:"Layer-Based Editor",description:"Built-in layer-based image editor for advanced composition and editing tasks directly in the browser."},{title:"Screenshot Beautification",description:"Transform plain screenshots into polished, professional visuals with backgrounds, shadows, and padding."},{title:"GPU Acceleration",description:"Optional NVIDIA GPU support for significantly faster AI processing tasks when hardware is available."}],tags:["Image Processing","Media","AI","Privacy","Self-Hosted","Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["ANALYTICS_ENABLED=false"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:1349}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"snappymail",meta:{name:"Snappymail",description:"SnappyMail is a lightweight, fast, and self-hosted webmail client designed for efficient email management. Built with a focus on speed and security, SnappyMail offers a clean user interface, seamless IMAP integration, and multi-account support. It is optimized for both desktop and mobile use, providing a smooth and responsive email experience. SnappyMail supports advanced email features such as PGP encryption, custom folders, and customizable themes. With its self-hosted nature, users maintain full control over their emails, ensuring privacy and security.",instructions:"Configure SnappyMail with your IMAP server settings for full functionality.",changeLog:[{date:"2025-01-31",description:"First Release"}],links:[{label:"Documentation",url:"https://github.com/the-djmaze/snappymail/wiki"},{label:"Github",url:"https://github.com/the-djmaze/snappymail"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"snappymail"},appServiceImage:{type:"string",title:"App Service Image",default:"djmaze/snappymail:v2.38.2"}}},benefits:[{title:"Fast and Lightweight",description:"SnappyMail is optimized for speed and efficiency, ensuring a smooth and responsive email experience, even on low-resource servers."},{title:"Privacy-Focused",description:"Being self-hosted, SnappyMail ensures complete control over your emails, providing a secure and private email solution."},{title:"Multi-Account Support",description:"Easily manage multiple email accounts within a single SnappyMail instance, improving workflow efficiency."}],features:[{title:"IMAP and SMTP Support",description:"SnappyMail seamlessly integrates with IMAP and SMTP servers, making it compatible with most email providers."},{title:"PGP Encryption",description:"The built-in PGP encryption feature allows users to send and receive encrypted emails for enhanced security."},{title:"Customizable UI",description:"SnappyMail offers various themes and customization options to personalize the email interface."},{title:"Mobile-Friendly Design",description:"The responsive UI adapts to different screen sizes, ensuring a seamless experience across desktop and mobile devices."},{title:"Advanced Email Features",description:"Includes functionalities such as custom folders, message filtering, and auto-completion for improved email management."}],tags:["Email","Webmail","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8888}],mounts:[{type:"volume",name:"data",mountPath:"/snappymail/data/"}]}}),{services:t}}},{slug:"snipe-it",meta:{name:"Snipe-IT",description:"Snipe-IT is a powerful, open-source IT asset management system designed to help organizations efficiently manage and track their IT assets. From laptops to licenses, Snipe-IT provides a centralized platform to store, monitor, and manage asset information securely. Unlike traditional asset management systems, Snipe-IT is modern, intuitive, and built for ease of use. It features detailed reporting, asset auditing, and check-in/check-out functionality, ensuring accountability and accuracy for IT teams. Snipe-IT also supports role-based user management and integrates seamlessly with LDAP and SMTP for user authentication and notifications. Whether you're managing 10 or 10,000 assets, Snipe-IT offers the tools you need to stay organized and improve IT workflow. With robust API support, it can integrate with third-party systems for automation and enhanced reporting. Ideal for businesses of all sizes, Snipe-IT makes IT asset management easy and effective.",instructions:null,changeLog:[{date:"2024-12-09",description:"First release"},{date:"2025-03-03",description:"Version bumped to v8.0.2"},{date:"2025-07-24",description:"Version bumped to v8.2.1"},{date:"2025-12-29",description:"Version bumped to v8.3.7"},{date:"2026-02-24",description:"Version bumped to v8.4.0"},{date:"2026-05-05",description:"Version bumped to v8.4.1"}],links:[{label:"Documentation",url:"https://snipe-it.readme.io/"},{label:"GitHub",url:"https://github.com/snipe/snipe-it"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","smtpHost","smtpPort","smtpUsername","smtpPassword","smtpFromAddress","smtpFromName","smtpReplyToEmail","smtpReplyToName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"snipeit"},appServiceImage:{type:"string",title:"App Service Image",default:"snipe/snipe-it:v8.4.1"},smtpHost:{type:"string",title:"SMTP Host",default:"smtp.example.com"},smtpPort:{type:"integer",title:"SMTP Port",default:587},smtpUsername:{type:"string",title:"SMTP Username",default:"example"},smtpPassword:{type:"string",title:"SMTP Password",sensitive:!0},smtpFromAddress:{type:"string",title:"SMTP From Address",default:"[email protected]"},smtpFromName:{type:"string",title:"SMTP From Name",default:"Snipe-IT"},smtpReplyToEmail:{type:"string",title:"SMTP Reply-To Email",default:"[email protected]"},smtpReplyToName:{type:"string",title:"SMTP Reply-To Name",default:"Snipe-IT"}}},benefits:[{title:"Centralized Asset Management",description:"Snipe-IT provides a single platform to track and manage all IT assets, including hardware, software, and licenses, ensuring improved visibility and control."},{title:"Role-Based Access Control",description:"Snipe-IT supports role-based user management, allowing administrators to define permissions for different users and ensure security."},{title:"Comprehensive Auditing",description:"Snipe-IT maintains an audit log for all asset activities, helping IT teams track changes and ensure accountability."},{title:"Seamless Integration",description:"With API support and LDAP integration, Snipe-IT can easily integrate with existing systems for automation and reporting."},{title:"Check-In/Check-Out Functionality",description:"Easily assign and return assets to users, ensuring assets are tracked efficiently across the organization."}],features:[{title:"Easy Installation",description:"Snipe-IT can be deployed quickly using Docker or manual installation, ensuring a hassle-free setup."},{title:"Real-Time Notifications",description:"Integrate with SMTP to enable real-time email notifications for asset status changes and reminders."},{title:"Flexible Reporting",description:"Generate detailed reports on asset lifecycle, warranty status, and assignments to make data-driven decisions."},{title:"API Support",description:"Snipe-IT provides a robust API to integrate asset management data with third-party systems and automation tools."}],tags:["Asset Management","Open Source","Auditing","Reporting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_ENV=production","APP_DEBUG=false","APP_KEY=base64:3ilviXqB9u6DX1NRcyWGJ+sjySF+H18CPDGb3+IVwMQ=","APP_URL=https://$(PRIMARY_DOMAIN)","APP_TIMEZONE='UTC'","APP_LOCALE='en-US'","MAX_RESULTS=500","PRIVATE_FILESYSTEM_DISK=local","PUBLIC_FILESYSTEM_DISK=local_public","DB_CONNECTION=mysql","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=3306","DB_DATABASE=$(PROJECT_NAME)","DB_USERNAME=mariadb","DB_PASSWORD=".concat(a),"DB_PREFIX=null","DB_DUMP_PATH='/usr/bin'","DB_CHARSET=utf8mb4","DB_COLLATION=utf8mb4_unicode_ci","DB_SANITIZE_BY_DEFAULT=false","DB_SSL=false","DB_SSL_IS_PAAS=false","DB_SSL_KEY_PATH=null","DB_SSL_CERT_PATH=null","DB_SSL_CA_PATH=null","DB_SSL_CIPHER=null","DB_SSL_VERIFY_SERVER=null","MAIL_MAILER=smtp","MAIL_HOST=".concat(e.smtpHost),"MAIL_PORT=".concat(e.smtpPort),"MAIL_USERNAME=".concat(e.smtpUsername),"MAIL_PASSWORD=".concat(e.smtpPassword),"MAIL_FROM_ADDR=".concat(e.smtpFromAddress),"MAIL_FROM_NAME='".concat(e.smtpFromName),"MAIL_REPLYTO_ADDR=".concat(e.smtpReplyToEmail),"MAIL_REPLYTO_NAME='".concat(e.smtpReplyToName),"MAIL_AUTO_EMBED_METHOD='attachment'","MAIL_TLS_VERIFY_PEER=true","IMAGE_LIB=gd","MAIL_BACKUP_NOTIFICATION_DRIVER=null","MAIL_BACKUP_NOTIFICATION_ADDRESS=null","BACKUP_ENV=true","ALLOW_BACKUP_DELETE=false","ALLOW_DATA_PURGE=false","SESSION_DRIVER=file","SESSION_LIFETIME=12000","EXPIRE_ON_CLOSE=false","ENCRYPT=false","COOKIE_NAME=snipeit_session","PASSPORT_COOKIE_NAME='snipeit_passport_token'","COOKIE_DOMAIN=null","SECURE_COOKIES=false","API_TOKEN_EXPIRATION_YEARS=15","BS_TABLE_STORAGE=cookieStorage","BS_TABLE_DEEPLINK=true","APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1","ALLOW_IFRAMING=false","REFERRER_POLICY=same-origin","ENABLE_CSP=false","ADDITIONAL_CSP_URLS=null","CORS_ALLOWED_ORIGINS=null","ENABLE_HSTS=false","CACHE_DRIVER=file","QUEUE_DRIVER=sync","CACHE_PREFIX=snipeit","REDIS_HOST=null","REDIS_PASSWORD=null","REDIS_PORT=null","MEMCACHED_HOST=null","MEMCACHED_PORT=null","PUBLIC_AWS_SECRET_ACCESS_KEY=null","PUBLIC_AWS_ACCESS_KEY_ID=null","PUBLIC_AWS_DEFAULT_REGION=null","PUBLIC_AWS_BUCKET=null","PUBLIC_AWS_URL=null","PUBLIC_AWS_BUCKET_ROOT=null","PRIVATE_AWS_ACCESS_KEY_ID=null","PRIVATE_AWS_SECRET_ACCESS_KEY=null","PRIVATE_AWS_DEFAULT_REGION=null","PRIVATE_AWS_BUCKET=null","PRIVATE_AWS_URL=null","PRIVATE_AWS_BUCKET_ROOT=null","AWS_ACCESS_KEY_ID=null","AWS_SECRET_ACCESS_KEY=null","AWS_DEFAULT_REGION=null","LOGIN_MAX_ATTEMPTS=5","LOGIN_LOCKOUT_DURATION=60","
1LOGIN_AUTOCOMPLETE=false","RESET_PASSWORD_LINK_EXPIRES=15","PASSWORD_CONFIRM_TIMEOUT=10800","PASSWORD_RESET_MAX_ATTEMPTS_PER_MIN=50","LOG_CHANNEL=single","LOG_MAX_DAYS=10","APP_LOCKED=false","APP_CIPHER=AES-256-CBC","APP_FORCE_TLS=false","APP_ALLOW_INSECURE_HOSTS=false","GOOGLE_MAPS_API=","LDAP_MEM_LIM=500M","LDAP_TIME_LIM=600","IMPORT_TIME_LIMIT=600","IMPORT_MEMORY_LIMIT=500M","REPORT_TIME_LIMIT=12000","REQUIRE_SAML=false","API_THROTTLE_PER_MINUTE=120","CSV_ESCAPE_FORMULAS=true","LIVEWIRE_URL_PREFIX=null","HASHING_DRIVER='bcrypt'","BCRYPT_ROUNDS=10","ARGON_MEMORY=1024","ARGON_THREADS=2","ARGON_TIME=2","SCIM_TRACE=false","SCIM_STANDARDS_COMPLIANCE=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"storage",mountPath:"/var/lib/snipeit"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,image:"mariadb:11.5.2"}}),{services:t}}},{slug:"soketi",meta:{name:"Soketi",description:"Soketi Serverless is an open-source WebSockets server that offers a cost-effective, fast, and resilient solution for real-time deployment to Cloudflare. It is designed to be cheaper than any competitor, as you only pay for your infrastructure. It guarantees core message delivery in less than 100ms, thanks to its construction on top of C and porting to Node.js. Soketi is compatible with Pusher Protocol v7, meaning you can connect to the server without needing to replace your existing code. It is ready for production and can scale to hundreds of servers with Redis or NATS without losing performance. Soketi also offers built-in app management, allowing you to define your own app credentials and read from any database. Additionally, it features HTTP Webhooks that trigger HTTP requests whenever a channel gets occupied. Soketi can be deployed to Cloudflare Workers, bringing it closer to your users worldwide. It is also compatible with most popular databases, like MySQL or DynamoDB.",instructions:null,changeLog:[{date:"2022-10-31",description:"first release"}],links:[{label:"Website",url:"https://soketi.app/"},{label:"Documentation",url:"https://docs.soketi.app/"},{label:"Github",url:"https://github.com/soketi/soketi/"}],contributors:[{name:"Rub\xe9n Robles",url:"https://github.com/D8vjork"}],schema:{type:"object",required:["appServiceName","appServiceImage","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"soketi"},appServiceImage:{type:"string",title:"App Service Image",default:"quay.io/soketi/soketi:1.6-16-debian"},redisServiceName:{type:"string",title:"Redis Service Name",default:"redis"},defaultAppId:{type:"string",title:"Soketi Default App ID",default:"myapp"},defaultAppKey:{type:"string",title:"Soketi Default App Key"},defaultAppSecret:{type:"string",title:"Soketi Default App Secret Key"},enableClientMessages:{type:"boolean",title:"Enable default app message exchange between clients",default:!0}}},benefits:[{title:"Cost Effective",description:"Soketi Serverless is cheaper than any competitor because you only pay for your infrastructure. Whether it's your basement server or cloud, it fits and runs. It can be as cheap as $5 on DigitalOcean."},{title:"Fast and Resilient",description:"Guaranteed core message delivery in less than 100ms. Soketi is built with one of the fastest available technologies, making it blazing fast. It is also resilient enough to maintain performance even when scaled to hundreds of servers."},{title:"Pusher Compatible",description:"Soketi uses the Pusher Protocol v7, meaning you don't need to replace your existing code. You just connect to the server."},{title:"Ready for Production",description:"Soketi is ready for production. You can scale it to hundreds of servers with Redis or NATS and it will maintain its performance. It is resilient enough for you to have a good night's sleep."}],features:[{title:"Built-in App Management",description:"Just like Pusher, you can define your own app credentials with Soketi. You don't even need Pusher for it, and you can read from any database."},{title:"HTTP Webhooks",description:"Soketi can trigger HTTP requests whenever a channel gets occupied. Pair it with Lambda functions and 
1Soketi will invoke them for you."},{title:"Unlimited Connections and Messages",description:"Soketi offers unlimited peak connections and messages per month. The maximum message size and members per channel are also configurable."},{title:"Deployable on Cloudflare",description:"Soketi can be deployed to Cloudflare Workers, bringing it closer to your users all around the world."}],tags:["Developer Tools","Communication"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=v(),i=e.defaultAppKey||"pk_".concat(y(12)),o=e.defaultAppSecret||"ps_".concat(y(12)),n=["SOKETI_DB_REDIS_HOST=$(PROJECT_NAME)_".concat(e.redisServiceName),"SOKETI_DB_REDIS_PORT=6379","SOKETI_DB_REDIS_USERNAME=default","SOKETI_DB_REDIS_PASSWORD=".concat(a),"SOKETI_DEFAULT_APP_ID=".concat(e.defaultAppId),"SOKETI_DEFAULT_APP_KEY=".concat(i),"SOKETI_DEFAULT_APP_SECRET=".concat(o),"SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES=".concat(e.enableClientMessages)];return t.push({type:"app",data:{serviceName:e.appServiceName,env:n.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9601}],ports:[{published:6001,target:6001}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:a}}),{services:t}}},{slug:"solidinvoice",meta:{name:"SolidInvoice",description:"SolidInvoice is a self-hosted invoicing and billing platform built with Symfony and Vue.js. Create and send professional invoices and quotes, track payments, manage clients and contacts, and accept online payments through multiple payment gateways. It ships as a single container with an embedded FrankenPHP server and uses MySQL for data storage.",instructions:"After deployment, navigate to your domain \u2014 you will be automatically redirected to the installation wizard at /install. Follow the steps to configure the database connection (MySQL details are pre-filled via environment variables), set your application URL, locale, and create the initial admin account. Once the wizard completes you will be logged in and ready to create your first invoice.",changeLog:[{date:"2026-06-18",description:"Initial release"}],links:[{label:"Website",url:"https://solidinvoice.co"},{label:"Documentation",url:"https://solidinvoice.co/docs"},{label:"GitHub",url:"https://github.com/SolidInvoice/SolidInvoice"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"solidinvoice"},appServiceImage:{type:"string",title:"App Service Image",default:"solidinvoice/solidinvoice:3.0.0"}}},benefits:[{title:"Professional Invoicing",description:"Create branded invoices and quotes with line items, tax rates, discounts, and notes. Send them directly to clients via email from the app."},{title:"Payment Tracking",description:"Record payments, partial payments, and credits. Automatically mark invoices as paid and generate payment receipts."},{title:"Client & Contact Management",description:"Manage clients with multiple contacts, addresses, and payment terms. All invoices and quotes are linked to client profiles."},{title:"Self-Hosted & Private",description:"All data stays on your own server. No SaaS fees, no vendor lock-in, and full control over your billing data."}],features:[{title:"Invoice & Quote Builder",description:"Drag-and-drop line item editor with support for products, services, taxes, and discounts. Clone invoices to save time on recurring billing."},{title:"Payment Gateways",description:"Accept online payments via Stripe, PayPal, and other gateways configured directly in the admin settings."},{title:"Tax Management",description:"Define multiple tax rates and apply them per line item or globally. Supports compound taxes and tax-exempt clients."},{title:"Recurring Invoices",description:"Schedule invoices to repeat daily, weekly, monthly, or yearly with automatic generation and delivery."},{title:"Multi-Currency Support",description:"Set a base currency and bill clients in their local currency with configurable exchange rates."}],tags:["Finance","Invoicing","Billing","Business"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32),o="mysql://mysql:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:3306/$(PROJECT_NAME)");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8765}],env:["SOLIDINVOICE_ENV=prod","SOLIDINVOICE_DEBUG=0","SOLIDINVOICE_APP_SECRET=".concat(i),"SOLIDINVOICE_DATABASE_URL=".concat(o),"SOLIDINVOICE_CONFIG_DIR=/etc/solidinvoice"].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/etc/solidinvoice"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"solr",meta:{name:"Apache Solr",description:"Apache Solr is a highly reliable, scalable and fault-tolerant search platform that provides distributed indexing, replication and load-balanced querying, automated failover and recovery, centralized configuration and more. Solr powers the search and navigation features of many of the world's largest internet sites.",instructions:null,changeLog:[{date:"2025-06-23",description:"Initial Template Release"},{date:"2026-02-24",description:"Version bumped to 9.9.0"},{date:"2026-05-07",description:"Version bumped to 10.0.0"}],links:[{label:"Official Website",url:"https://solr.apache.org/"},{label:"Documentation",url:"https://solr.apache.org/guide/"},{label:"GitHub",url:"https://github.com/apache/solr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"solr"},appServiceImage:{type:"string",title:"App Service Image",default:"solr:10.0.0",description:"Apache Solr Docker image"}}},benefits:[{title:"Enterprise Search",description:"Powerful full-text search capabilities with advanced features like faceting, highlighting, and spell checking."},{title:"Scalable Architecture",description:"Built for high performance and scalability with distributed search and automatic failover capabilities."},{title:"Rich Query Language",description:"Supports complex queries with Boolean operators, phrase queries, wildcard searches, and more."},{title:"Easy Integration",description:"RESTful APIs and comprehensive documentation make integration straightforward with any application."}],features:[{title:"Full-Text Search",description:"Advanced text search with stemming, synonyms, spell checking, and relevance scoring."},{title:"Faceted Search",description:"Dynamic navigation with facets and filters to help users refine search results."},{title:"Real-time Indexing",description:"Add, update, and delete documents in real-time with near-instantaneous search availability."},{title:"Admin Interface",description:"Web-based administration interface for managing cores, schemas, and monitoring performance."}],tags:["Search Engine","Full-Text Search","Apache","Indexing","Enterprise Search"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8983}],mounts:[{type:"volume",name:"data",mountPath:"/var/solr"}]}}),{services:t}}},{slug:"sonarqube",meta:{name:"SonarQube Community",description:"SonarQube Community is an open-source platform for continuous inspection of code quality, designed to detect bugs, vulnerabilities, and code smells across multiple programming languages. It integrates with various CI/CD pipelines, providing valuable insights into code health and maintainability. SonarQube helps teams ensure that their code meets quality standards and aligns with security requirements, promoting efficient software development practices. The Community version is feature-rich and free to use, making it an ideal choice for developers and organizations focused on improving code quality without incurring costs.",instructions:"Default login; username=admin, password=admin",changeLog:[{date:"2022-12-15",description:"Latest release with enhanced language support and bug fixes"},{date:"2025-03-03",description:"Version bumped to 9.9.8-community"},{date:"2026-05-07",description:"Version bumped to 26.4.0.121862-community"}],links:[{label:"Website",url:"https://www.sonarqube.org/"},{label:"Documentation",url:"https://docs.sonarqube.org/latest/"},{label:"GitHub",url:"https://github.com/SonarSource/sonarqube"}],contributors:[{name:"SonarSource Team",url:"https://github.com/SonarSource"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sonarqube"},appServiceImage:{type:"string",title:"App Service Image",default:"sonarqube:26.4.0.121862-community"},databaseServiceName:{type:"string",title:"Database Service Name",default:"sonarqube-db"}}},benefits:[{title:"Open Source and Free",description:"The Community Edition of SonarQube is entirely open source and free, making it accessible to teams of all sizes. It offers essential code quality and security features without any licensing costs."},{title:"Multi-Language Support",description:"SonarQube supports over 20 programming languages, including Java, JavaScript, Python, C#, and more, ensuring comprehensive code analysis for various projects."},{title:"Continuous Code Inspection",description:"SonarQube integrates with popular CI/CD tools to provide continuous inspection of code quality. It ensures that issues are caught early and fixes are incorporated seamlessly."},{title:"Security Vulnerability Detection",description:"The platform scans code for known vulnerabilities and ensures that code aligns with secure development practices, helping teams build safe applications."}],features:[{title:"Dashboard and Metrics",description:"SonarQube provides an intuitive dashboard that displays key metrics, code quality trends, and insights to help teams make informed decisions."},{title:"Integrations with CI/CD",description:"SonarQube integrates seamlessly with CI/CD pipelines like Jenkins, GitHub Actions, and GitLab CI, making it easy to enforce code quality gates."},{title:"Extensible with Plugins",description:"SonarQube can be extended with a wide range of plugins, providing additional functionality for languages, quality profiles, and authentication mechanisms."},{title:"Community Support",description:"The SonarQube Community Edition has a strong user base and active support through forums, helping developers troubleshoot issues and share best practices."}],tags:["Developer Tools","Code Quality","Security","Continuous Integration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=["SONAR_JDBC_URL=jdbc:postgresql://$(PROJECT_NAME)_".concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"SONAR_JDBC_USERNAME=postgres","SONAR_JDBC_PASSWORD=".concat(a)];return t.push({type:"app",data:{serviceName:e.appServiceName,env:i.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"sonarr",meta:{name:"Sonarr",description:"Sonarr is a Personal Video Recorder (PVR) designed for Usenet and BitTorrent users. It monitors multiple RSS feeds for new episodes of your favorite shows and automatically grabs, sorts, and renames them. Sonarr can also be c
1onfigured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. It features a calendar to see all your upcoming episodes in one convenient location, and a manual search to find all the releases and choose the one you want. Sonarr also handles failed downloads, automatically blocking the release and trying another one until it finds one that works. It is fully integrated with SABnzbd, NZBGet, Kodi, and Plex, and supports major platforms including Windows, Linux, macOS, and Raspberry Pi.",instructions:null,changeLog:[{date:"2022-12-26",description:"first release"},{date:"2025-03-03",description:"Version bumped to 4.0.13"},{date:"2025-12-29",description:"Version bumped to 4.0.16"}],links:[{label:"Website",url:"https://sonarr.tv/"},{label:"Documentation",url:"https://wiki.servarr.com/Sonarr"},{label:"Github",url:"https://github.com/Sonarr/Sonarr"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sonarr"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/sonarr:4.0.16"}}},benefits:[{title:"Automated TV Show Management",description:"Sonarr is a Personal Video Recorder (PVR) that automates the process of downloading your favorite TV shows. It monitors multiple RSS feeds for new episodes and grabs, sorts, and renames them for your convenience."},{title:"Quality Upgrades",description:"Sonarr can be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. This ensures you always have the best viewing experience possible."},{title:"Failed Download Handling",description:"With Sonarr, failed downloads become a thing of the past. The app automatically blocks problematic releases and tries another one until it finds one that works, saving you time and frustration."}],features:[{title:"Calendar",description:"See all your upcoming episodes in one convenient location. This feature allows you to keep track of your shows and never miss an episode."}
1,{title:"Manual Search",description:"Find all the releases, choose the one you want and send it right to your download client. This gives you full control over what you download."},{title:"Episode Renaming",description:"Sonarr offers fully configurable episode renaming. This feature helps you to keep your library organized in the way you prefer."},{title:"Integration",description:"Sonarr provides full integration with SABnzbd and NZBGet, as well as with Kodi and Plex for notifications, library updates, and metadata."},{title:"Support for Specials and Multi-Episode Releases",description:"Sonarr fully supports specials and multi-episode releases, ensuring you get every piece of content you want from your favorite shows."}],tags:["Media","Calendars","Download"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8989}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"sonatype-nexus",meta:{name:"Sonatype Nexus",description:"Sonatype Nexus is a powerful repository manager designed to streamline the management and storage of binary components. It enables development teams to efficiently organize, share, and deploy artifacts across various formats, such as Maven, npm, Docker, and more. With its robust feature set and enterprise-grade capabilities, Sonatype Nexus improves DevOps workflows by providing secure, scalable, and centralized storage for software assets.",instructions:"After logging in without a password, log out and then log back in using the username admin. To get the password, open the container console tab and run the command cat /nexus-data/admin.password. Once logged in, you will be prompted to change the password.",changeLog:[{date:"2024-12-05",description:"First Release"},{date:"2025-03-03",description:"Version bumped to 3.77.2"},{date:"2025-07-25",description:"Version bumped to 3.82.0"},{date:"2025-12-29",description:"Version bumped to 3.87.0"},{date:"2026-02-24",description:"Version bumped to 3.89.1"},{date:"2026-05-07",description:"Version bumped to 3.91.1"}],links:[{label:"Github",url:"https://github.com/sonatype/nexus-public"},{label:"Documentation",url:"https://help.sonatype.com/repomanager3"},{label:"Demo",url:"https://www.sonatype.com/nexus-repository-sonatype"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nexus"},appServiceImage:{type:"string",title:"App Service Image",default:"sonatype/nexus3:3.91.1"}}},benefits:[{title:"Centralized Artifact Management",description:"Nexus Repository Manager provides a single source for all your development artifacts, enabling teams to collaborate more efficiently."},{title:"Security and Compliance",description:"Scan your components for vulnerabilities and ensure compliance with security standards using Sonatype integrations."},{title:"Support for Multiple Formats",description:"Manage a wide range of repository formats, including Maven, npm, Docker, PyPI, and more."}],features:[{title:"Repository Management",description:"Organize and control access to software artifacts across different teams and environments."},{title:"Proxy Caching",description:"Reduce build times by caching remote repositories and speeding up dependency resolution."},{title:"Vulnerability Scanning",description:"Integrate with tools like Sonatype Lifecycle to identify and mitigate risks in your dependencies."},{title:"High Availability",description:"Ensure uninterrupted access to your artifacts with clustering and high availability configurations."},{title:"REST API Support",description:"Automate and extend the repository manager's functionality using its comprehensive REST API."}],tags:["Repository Management","DevOps","Artifact Storage","Security","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:['INSTALL4J_ADD_VM_PARAMS="-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/nexus-data"',"NEXUS_CONTEXT=/"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}],mounts:[{type:"volume",name:"nexus-data",mountPath:"/nexus-data"}]}}),{services:t}}},{slug:"sortarr",meta:{name:"Sortarr",description:"Sortarr is a read-only analytics and organization tool for Sonarr and Radarr media libraries. It provides a data-driven management layer that helps you identify missing media, mismatches, and optimization opportunities using real playback data from providers like Tautulli, Jellystat, or Plex. Sortarr supports multiple Sonarr and Radarr instances, presents a unified PowerBI-like spreadsheet interface with actionable insights, and never modifies, moves, or renames your media files. All operations are strictly read-only and safe.",instructions:"On first launch, add your Sonarr/Radarr instances, a history provider (Tautulli, Jellystat, or Plex), and a playback provider (Plex). Test connections, save configuration, and Sortarr will begin analyzing your libraries immediately.",changeLog:[{date:"2026-03-17",description:"Template Release (v0.8.7)"}],links:[{label:"GitHub",url:"https://github.com/Jaredharper1/Sortarr"},{label:"Documentation",url:"https://github.com/Jaredharper1/Sortarr/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sortarr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/jaredharper1/sortarr:0.8.7"}}},benefits:[{title:"Read-Only & Safe",description:"Sortarr never modifies, moves, or renames your media files. It never deletes media or changes Sonarr/Radarr configuration. All operations are strictly read-only."},{title:"Data-Driven Insights",description:"Identify missing media, mismatches, and optimization opportunities using real playback data from Tautulli, Jellystat, or Plex."},{title:"Unified Library View",description:"Analyze multiple Sonarr and Radarr instances in a single PowerBI-like spreadsheet interface with filtering, sorting, and actionable insights."}],features:[{title:"Multi-Instance Support",description:"Connect multiple Sonarr and Radarr instances and analyze them in a unified interface with shows and movies views."},{title:"Playback History Integration",description:"Integrate playback data from Tautulli, Jellystat, or Plex to understand viewing patterns and spot underused media."},{title:"Advanced Filtering",description:"Audio and subtitle language columns with filters and quick chips. Sort and filter by any column to find outliers and issues."},{title:"Background Data Refresh",description:"Caches results for performance. Supports background data refresh with live processing indicators."}],tags:["Media","Sonarr","Radarr","Analytics","Self-Hosted","Plex"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8787}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"soulbeet",meta:{name:"Soulbeet",description:"Soulbeet is a self-hosted music management and downloading application that integrates with slskd (Soulseek daemon) and beets to create a seamless music acquisition and organization workflow. The application provides a web interface for searching and downloading music through the Soulseek peer-to-peer network, then automatically organizing your downloads using beets' powerful music library management capabilities. Soulbeet connects to your slskd instance to handle the actual Soulseek network communication, allowing you to search for tracks, browse user shares, and queue downloads. Once files are downloaded, beets integration enables automatic tagging, metadata correction, album art fetching, and file organization based on your configured rules. The application uses SQLite for lightweight data persistence and supports custom beets configurations for advanced music library management. Perfect for music enthusiasts who want to build and maintain a well-organized digital music collection, users looking for a self-hosted alternative to music streaming services, audiophiles who prefer to own their music with proper metadata and organization, or anyone who wants to combine the power of Soulseek's peer-to-peer network with beets' music library management in a single unified interface.",instructions:null,changeLog:[{date:"2025-12-10",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/terry90/soulbeet"},{label:"Docker Hub",url:"https://hub.docker.com/r/docccccc/soulbeet"},{label:"Documentation",url:"https://github.com/terry90/soulbeet#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"soulbeet"},appServiceImage:{type:"string",title:"App Service Image",default:"docker.io/docccccc/soulbeet:0.3.4"},slskdApiKey:{type:"string",title:"slskd API Key",default:""},enableSlskd:{type:"boolean",title:"Enable Built-in slskd Service",default:!0}}},benefits:[{title:"Unified Music Workflow",description:"Combine Soulseek downloading with beets organization in a single interface for seamless music acquisition and library management."},{title:"Automatic Organization",description:"Downloaded music is automatically tagged, renamed, and organized using beets' powerful library management capabilities."},{title:"Self-Hosted Privacy",description:"Keep your music collection and downloading activity private on your own infrastructure without relying on streaming services."},{title:"Peer-to-Peer Access",description:"Access the vast Soulseek network to find rare and hard-to-find music not available on mainstream platforms."}],features:[{title:"slskd Integration",description:"Direct integration with slskd for Soulseek network access, searching, browsing shares, and managing downloads."},{title:"Beets Integration",description:"Automatic music library management with beets for tagging, metadata correction, and file organization."},{title:"Web Interface",description:"Clean web-based interface for searching, browsing, and managing your music downloads and library."},{title:"SQLite Database",description:"Lightweight SQLite database for persistent storage of download history, library metadata, and application state."},{title:"Custom Configuration",description:"Support for custom beets configuration files to tailor music organization rules to your preferences."},{title:"Download Management",description:"Queue and manage downloads from the Soulseek network with progress tracking and status updates."},{title:"Music Library",description:"Organize your music collection with proper folder structure, consistent naming, and complete metadata."},{title:"Album Art",description:"Automatic album art fetching and embedding through beets integration for a complete music library experience."}],tags:["Music","Downloads","Media","Self-Hosted","Soulseek","Library Management"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.slskdApiKey||v();e.enableSlskd&&t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-slskd"),source:{type:"image",image:"slskd/slskd:0.24.5"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5030}],env:["SLSKD_REMOTE_CONFIGURATION=true","SLSKD_SLSK_LISTEN_PORT=50300"].join("\n"),mounts:[{type:"volume",name:"slskd-config",mountPath:"/app"},{type:"volume",name:"downloads",mountPath:"/app/downloads"}],ports:[{published:50300,target:50300,protocol:"tcp"}]}});var i,o="\ndirectory: /music\nlibrary: /data/beets-library.db\n\nimport:\n  move: yes\n  write: yes\n\npaths:\n  default: $albumartist/$album%aunique{}/$track $title\n  singleton: Non-Album/$artist/$title\n  comp: Compilations/$album%aunique{}/$track $title\n".trim();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:null!==(i=e.appServiceImage)&&void 0!==i?i:"docker.io/docccccc/soulbeet:0.3.4"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9765}],env:["DATABASE_URL=sqlite:/data/soulbeet.db","SLSKD_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-slskd:5030"),"SLSKD_API_KEY=".concat(a),"SLSKD_DOWNLOAD_PATH=/downloads","BEETS_CONFIG=/config/config.yaml"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"downloads",mountPath:"/downloads"},{type:"volume",name:"music",mountPath:"/music"},{type:"volume",name:"config",mountPath:"/config"},{type:"file",content:o,mountPath:"/config/config.yaml"}]}}),{services:t}}},{slug:"soulsync",meta:{name:"SoulSync",description:"SoulSync is an automated music synchronization service that bridges the gap between streaming platforms and your local media library. It automatically syncs your Spotify and Tidal playlists to your self-hosted media servers like Plex, Jellyfin, or Navidrome by downloading tracks from Soulseek. The web-based interface provides a centralized dashboard for managing playlist synchronization, monitoring download progress, configuring OAuth connections with streaming services, and organizing your music collection. With automated discovery and intelligent matching algorithms, SoulSync ensures your local library stays up-to-date with your streaming playlists without manual intervention. The service handles the complete workflow from playlist detection through download orchestration to media server integration, making it effortless to maintain an offline music collection that mirrors your online listening habits. Perfect for music enthusiasts who want the convenience of streaming services combined with the reliability and ownership of local media files, audiophiles building high-quality music collections, or users preparing for offline listening scenarios while maintaining synchronization with their curated playlists.",instructions:null,changeLog:[{date:"2025-11-26",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to 1.6"},{date:"2026-05-07",description:"Version bumped to 2.4.1"}],links:[{label:"GitHub",url:"https://github.com/Nezreka/SoulSync"},{label:"Docker Hub",url:"https://hub.docker.com/r/boulderbadgedad/soulsync"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"soulsync"},appServiceImage:{type:"string",title:"App Service Image",default:"boulderbadgedad/soulsync:2.4.1"},timezone:{type:"string",title:"Timezone",default:"UTC"}}},benefits:[{title:"Automated Playlist Syncing",description:"Automatically synchronize your Spotify and Tidal playlists to your local media library without manual downloads or conversions."},{title:"Media Server Integration",description:"Seamlessly integrate with Plex, Jellyfin, and Navidrome to make synchronized music instantly available across all your media clients."},{title:"Offline Music Collection",description:"Build and maintain a local music library that mirrors your streaming playlists, ensuring access even without internet connectivity."},{title:"Centralized Management",description:"Manage all your music synchronization from a single web interface with OAuth integration for streaming services and progress monitoring."}],features:[{title:"Multi-Platform Sync",description:"Connect with Spotify and Tidal accounts via OAuth to automatically track and sync your playlists to local storage."},{title:"Soulseek Integration",description:"Leverage the Soulseek network to download high-quality music files that match your streaming playlist tracks."},{title:"Web-Based Dashboard",description:"Monitor synchronization status, manage OAuth connections, configure download preferences, and view logs through an intuitive web interface."},{title:"Intelligent Track Matching",description:"Smart algorithms match streaming tracks to downloadable files with high accuracy based on metadata, ensuring correct downloads."},{title:"Automated Download Management",description:"Queue and manage downloads automatically with configurable paths, folder organization, and transfer monitoring."},{title:"Media Server Connectivity",description:"Direct integration with popular self-hosted media servers for immediate availability of newly synced music in your library."}],tags:["Music","Streaming","Synchronization","Spotify","Tidal","Media Server"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8008}],ports:[{published:8888,target:8888,protocol:"tcp"},{published:8889,target:8889,protocol:"tcp"}],env:["TZ=".concat(e.timezone||"UTC"),"PUID=0","PGID=0","UMASK=022","FLASK_ENV=production","PYTHONPATH=/app","SOULSYNC_CONFIG_PATH=/app/config/config.json"].join("\n"),mounts:[{type:"volume",name:"logs",mountPath:"/app/logs"},{type:"volume",name:"downloads",mountPath:"/app/downloads"},{type:"volume",name:"database",mountPath:"/app/database"},{type:"volume",name:"music",mountPath:"/music"}]}}),{services:t}}},{slug:"sourcegraph",meta:{name:"Sourcegraph",description:"Sourcegraph is a universal code search and intelligence platform designed to help developers find, explore, and understand code across all repositories. It enables teams to improve productivity and code quality by providing a centralized interface for searching, navigating, and understanding codebase
1s. Sourcegraph supports multiple version control systems, languages, and integrations, making it a powerful tool for developers, DevOps, and enterprises. With features like code insights, precise code navigation, and batch changes, Sourcegraph enhances collaboration and streamlines development workflows.",instructions:"Once the server is ready (logo is displayed in the terminal), navigate to the hostname or IP address on port 7080. Create the admin account, then you'll be guided through setting up Sourcegraph for code searching and navigation.",changeLog:[{date:"2025-01-21",description:"First Release"},{date:"2025-07-25",description:"Version bumped to 6.6.0"},{date:"2025-12-29",description:"Version bumped to 6.11.0"},{date:"2026-02-24",description:"Version bumped to 6.12.5040"}],links:[{label:"Github",url:"https://github.com/sourcegraph"},{label:"Documentation",url:"https://docs.sourcegraph.com"},{label:"Demo",url:"https://sourcegraph.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sourcegraph"},appServiceImage:{type:"string",title:"App Service Image",default:"sourcegraph/server:6.12.5040"}}},benefits:[{title:"Universal Code Search",description:"Sourcegraph provides fast and accurate search capabilities across all your repositories, enabling developers to find and understand code efficiently."},{title:"Multi-Language Support",description:"Sourcegraph supports a wide range of programming languages, offering precise code intelligence for navigating and understanding codebases."},{title:"Enhanced Collaboration",description:"Improve team collaboration with shared code insights, annotations, and streamlined workflows for development and review."}],features:[{title:"Code Search and Navigation",description:"Quickly find code, symbols, and references across all repositories with powerful search and navigation tools."},{title:"Batch Changes",description:"Automate large-scale code changes with batch changes, reducing manual effort and errors."},{title:"Integrations",description:"Seamlessly integrate Sourcegraph with popular tools like GitHub, GitLab, Bitbucket, and others."},{title:"Code Insights",description:"Gain insights into codebases with visual dashboards and analytics to track trends and improve decision-making."},{title:"Security and Compliance",description:"Perform automated searches for security vulnerabilities and compliance issues across repositories."}],tags:["Code Search","Developer Tools","Productivity","Open Source","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:[].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"sourcegraph-$(EASYPANEL_DOMAIN)",port:7080},{host:"grafana-$(EASYPANEL_DOMAIN)",port:3370}],mounts:[{type:"volume",name:"sourcegraph",mountPath:"/etc/sourcegraph"},{type:"volume",name:"sourcegraph-opt",mountPath:"/var/opt/sourcegraph"}]}}),{services:t}}},{slug:"spacebin",meta:{name:"Spacebin",description:"Spacebin is a modern, fast, and reliable pastebin server implemented in Go. Text sharing for the final frontier with features like syntax highlighting, password-protected encrypted pastes, configurable expiration, QR codes, reader view mode, and full API support. 99% self-contained requiring only a database to run, making it perfect for self-hosting.",instructions:null,changeLog:[{date:"2025-06-12",description:"First Release"},{date:"2026-05-07",description:"version bumped to v1.1.1"}],links:[{label:"Website",url:"https://spaceb.in/"},{label:"Documentation",url:"https://github.com/lukewhrit/spacebin#documentation"},{label:"Github",url:"https://github.com/lukewhrit/spacebin"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"spacebin"},appServiceImage:{type:"string",title:"App Service Image",default:"spacebinorg/spirit:v1.1.1"}}},benefits:[{title:"Modern & Reliable",description:"Built in Go for performance and reliability, avoiding common problems of many pastebin servers. 99% self-contained requiring only a database to run."},{title:"JavaScript-Free UI",description:"Modern user interface that works perfectly without JavaScript, while still providing syntax highlighting and advanced features when JS is enabled."},{title:"Highly Configurable",description:"Extensive configuration options including rate limiting, expiration settings, custom document sizes, authentication, and multiple database support (SQLite, MySQL, PostgreSQL)."}],features:[{title:"Text & Code Sharing",description:"Upload raw text and code with syntax highlighting for popular languages. Support for custom named documents, phrase and random string identifiers."},{title:"Security & Privacy",description:"Password-protected encrypted pastes, configurable rate limiting, basic auth for private instances, and configurable document expiration."},{title:"Advanced Features",description:"QR code generation for easy sharing, reader view mode with markdown formatting, paste collections, and comprehensive REST API for automation."},{title:"Database Flexibility",description:"Support for SQLite, MySQL, and PostgreSQL databases. Easy deployment with Docker or manual installation with configurable connection strings."}],tags:["Pastebin","Go","Text Sharing","Self-Hosted"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SPIRIT_CONNECTION_URI=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?sslmode=disable")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"spacedrive",meta:{name:"SpaceDrive",description:"SpaceDrive is a powerful storage and file management solution designed to streamline the organization, synchronization, and access of data across multiple devices. It enables users to efficiently manage their files with real-time synchronization, end-to-end encryption, and scalable storage options. With its robust feature set and enterprise-grade capabilities, SpaceDrive enhances productivity by providing secure, distributed, and decentralized storage for personal and professional use.",instructions:null,changeLog:[{date:"2025-01-30",description:"First Release"}],links:[{label:"Github",url:"https://github.com/spacedriveapp/spacedrive"},{label:"Documentation",url:"https:/spacedrive.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"spacedrive"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/spacedriveapp/spacedrive/server:0.4.2"},username:{type:"string",title:"Username",default:"spacedrive"},password:{type:"string",title:"Password",default:"password"}}},benefits:[{title:"Distributed Storage",description:"SpaceDrive provides a decentralized approach to file management, ensuring redundancy and accessibility across multiple devices."},{title:"End-to-End Encryption",description:"Protect your data with robust encryption protocols, keeping your files secure from unauthorized access."},{title:"Cross-Platform Support",description:"Manage and sync files seamlessly across Windows, macOS, Linux, and mobile devices."}],features:[{title:"Real-Time Sync",description:"Keep your files updated across all devices with efficient synchronization technology."},{title:"File Versioning",description:"Access and restore previous versions of files with built-in version control."},{title:"Remote Access",description:"Securely access your files from anywhere with SpaceDrive\u2019s cloud and local storage integration."},{title:"Offline Mode",description:"Work on your files even without an internet connection and sync when connectivity is restored."},{title:"API & Developer Support",description:"Extend functionality with a comprehensive API, allowing integrations with third-party applications and services."}],tags:["File Management","Cloud Storage","Decentralized Storage","Security","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SD_AUTH=".concat(e.username,":").concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"spacedrive",mountPath:"/var/spacedrive"}]}}),{services:t}}},{slug:"sparkyfitness",meta:{name:"SparkyFitness",description:"SparkyFitness is a self-hosted, privacy-first alternative to MyFitnessPal. Track nutrition, exercise, hydration, and body metrics while keeping full control of your data. Built for families with AI-powered features, SparkyFitness offers comprehensive health tracking with integrations for Apple Health, Google Health Connect, Fitbit, Garmin Connect, and Withings. Features include goal setting, interactive charts, long-term reports, and optional AI chatbot for conversational data logging.",instructions:null,changeLog:[{date:"2025-02-13",description:"Initial template release"}],links:[{label:"Website",url:"https://codewithcj.github.io/SparkyFitness"},{label:"GitHub",url:"https://github.com/CodeWithCJ/SparkyFitness"},{label:"Documentation",url:"https://codewithcj.github.io/SparkyFitness"},{label:"Docker Hub Server",url:"https://hub.docker.com/r/codewithcj/sparkyfitness_server"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","serverImage","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sparkyfitness"},appServiceImage:{type:"string",title:"App Service Image",default:"codewithcj/sparkyfitness:v0.16.5.4"},serverImage:{type:"string",title:"Server Image",default:"codewithcj/sparkyfitness_server:v0.16.5.4"},apiEncryptionKey:{type:"string",title:"API Encryption Key (Auto-generated if empty)",default:"",description:"A 64-character hex string for data encryption. Auto-generated if not provided. Changing this will invalidate existing encrypted data."},betterAuthSecret:{type:"string",title:"Better Auth Secret (Auto-generated if empty)",default:"",description:"Secret key for Better Auth authentication. Auto-generated if not provided."},logLevel:{type:"string",title:"Log Level",default:"ERROR",oneOf:[{enum:["ERROR"],title:"ERROR"},{enum:["WARN"],title:"WARN"},{enum:["INFO"],title:"INFO"},{enum:["DEBUG"],title:"DEBUG"}]},allowPrivateNetworkCors:{type:"boolean",title:"Allow Private Network CORS",default:!0,description:"Required for current upstream behavior so EXTRA_TRUSTED_ORIGINS is applied. Disable only if upstream removes this coupling."},disableSignup:{type:"boolean",title:"Disable Signup",default:!1,description:"Set to true to disable new user registrations"},forceEmailLogin:{type:"boolean",title:"Force Email Login",default:!0,description:"Force email/password login to be enabled. Fail-safe to prevent being locked out if OIDC is misconfigured."},adminEmail:{type:"string",title:"Admin Email (Optional)",default:"",description:"Email of a user to automatically grant admin privileges on server startup."},extraTrustedOrigins:{type:"string",title:"Extra Trusted Origins (Optional)",default:"",description:"Comma-separated list of additional URLs that Better Auth should trust (e.g., http://192.168.1.175:8080)"},emailHost:{type:"string",title:"Email Host (Optional)",default:"",description:"SMTP host for email notifications (e.g., smtp.example.com)"},emailPort:{type:"string",title:"Email Port (Optional)",default:"",description:"SMTP port (e.g., 587)"},emailSecure:{type:"boolean",title:"Email Secure (Optional)",default:!0,description:"Use TLS/SSL for email (true) or plain text (false)"},emailUser:{type:"string",title:"Email User (Optional)",default:"",description:"SMTP username"},emailPass:{type:"string",title:"Email Password (Optional)",default:"",description:"SMTP password"},emailFrom:{type:"string",title:"Email From (Optional)",default:"",description:"Email address to send from (e.g., [email protected])"},customDomain:{type:"string",title:"Custom Domain (Optional)",default:"",description:"Custom domain for the application (e.g., app.example.com)"}}},benefits:[{title:"Privacy-First Health Tracking",description:"Keep complete control of your health data with self-hosted deployment. No third-party services have access to your sensitive health information."},{title:"Family-Friendly Platform",description:"Built for families with multiple user profiles and shared access features, making it easy to track health together."},{title:"Comprehensive Health Integration",description:"Sync data from Apple Health, Google Health Connect, Fitbit, Garmin Connect, and Withings for a complete view of your health metrics."}],features:[{title:"Nutrition & Exercise Tracking",description:"Track food intake, exercise, hydration, and body measurements with interactive charts and long-term reports."},{title:"AI-Powered Features",description:"Optional AI chatbot for conversational data logging, meal logging from images, and progress reviews."},{title:"Goal Setting & Check-ins",description:"Set health goals and perform daily check-ins to stay on track with your fitness journey."},{title:"Light & Dark Themes",description:"Customizable interface with light and dark themes for comfortable viewing at any time of day."}],tags:["Fitness","Health Tracking","Self-Hosted","Privacy","Nutrition"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=e.apiEncryptionKey||y(64),o=e.betterAuthSecret||y(32),n=["SPARKY_FITNESS_LOG_LEVEL=".concat(e.logLevel),"ALLOW_PRIVATE_NETWORK_CORS=".concat(e.allowPrivateNetworkCors),"SPARKY_FITNESS_DB_USER=postgres","SPARKY_FITNESS_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"SPARKY_FITNESS_DB_NAME=$(PROJECT_NAME)","SPARKY_FITNESS_DB_PASSWORD=".concat(a),"SPARKY_FITNESS_APP_DB_USER=postgres","SPARKY_FITNESS_APP_DB_PASSWORD=".concat(a),"SPARKY_FITNESS_DB_PORT=5432","SPARKY_FITNESS_API_ENCRYPTION_KEY=".concat(i),"BETTER_AUTH_SECRET=".concat(o),"SPARKY_FITNESS_FRONTEND_URL=https://".concat(e.customDomain||"$(PRIMARY_DOMAIN)"),"SPARKY_FITNESS_DISABLE_SIGNUP=".concat(e.disableSignup),"SPARKY_FITNESS_FORCE_EMAIL_LOGIN=".concat(e.forceEmailLogin)];e.adminEmail&&n.push("SPARKY_FITNESS_ADMIN_EMAIL=".concat(e.adminEmail)),e.emailHost&&(n.push("SPARKY_FITNESS_EMAIL_HOST=".concat(e.emailHost)),e.emailPort&&n.push("SPARKY_FITNESS_EMAIL_PORT=".concat(e.emailPort)),void 0!==e.emailSecure&&n.push("SPARKY_FITNESS_EMAIL_SECURE=".concat(e.emailSecure)),e.emailUser&&n.push("SPARKY_FITNESS_EMAIL_USER=".concat(e.emailUser)),e.emailPass&&n.push("SPARKY_FITNESS_EMAIL_PASS=".concat(e.emailPass)),e.emailFrom&&n.push("SPARKY_FITNESS_EMAIL_FROM=".concat(e.emailFrom))),e.extraTrustedOrigins&&n.push("SPARKY_FITNESS_EXTRA_TRUSTED_ORIGINS=".concat(e.extraTrustedOrigins));var r=["SPARKY_FITNESS_FRONTEND_URL=https://".concat(e.customDomain||"$(PRIMARY_DOMAIN)"),"SPARKY_FITNESS_SERVER_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-server"),"SPARKY_FITNESS_SERVER_PORT=3010"];return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-server"),source:{type:"image",image:e.serverImage},env:n.join("\n"),mounts:[{type:"volume",name:"backups",mountPath:"/app/SparkyFitnessServer/backup"},{type:"volume",name:"uploads",mountPath:"/app/SparkyFitnessServer/uploads"}],ports:[{published:3010,target:3010}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-frontend"),source:{type:"image",image:e.appServiceImage},domains:[{host:e.customDomain||"$(EASYPANEL_DOMAIN)",port:80}],env:r.join("\n")}}),{services:t}}},{slug:"speedtest-tracker",meta:{name:"Speedtest Tracker",description:"Speedtest Tracker is a self-hosted internet performance tracking application that runs speedtests and displays the results in a clean web interface. It automatically runs periodic speed tests using various providers like Ookla Speedtest, and stores historical data to track y
1our internet connection performance over time. Perfect for monitoring ISP performance, network troubleshooting, and keeping records of internet speed changes.",instructions:null,changeLog:[{date:"2025-06-17",description:"Initial Template Release"},{date:"2025-07-25",description:"Version bumped to 1.6.5"},{date:"2025-12-29",description:"Version bumped to 1.13.4"},{date:"2026-02-24",description:"Version bumped to 1.13.10"},{date:"2026-05-07",description:"Version bumped to 1.14.0"}],links:[{label:"Documentation",url:"https://docs.speedtest-tracker.dev/"},{label:"GitHub",url:"https://github.com/alexjustesen/speedtest-tracker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"speedtest-tracker"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/speedtest-tracker:1.14.0",description:"Speedtest Tracker Docker image"}}},benefits:[{title:"Internet Performance Monitoring",description:"Automatically track your internet connection speed and performance over time with scheduled speed tests."},{title:"Historical Data",description:"Store and visualize historical speed test results to identify patterns and performance trends."},{title:"Multiple Providers",description:"Support for various speed test providers including Ookla Speedtest for accurate measurements."},{title:"Self-Hosted Solution",description:"Keep your network performance data private with a completely self-hosted monitoring solution."}],features:[{title:"Automated Testing",description:"Schedule automatic speed tests at regular intervals to continuously monitor your connection."},{title:"Web Dashboard",description:"Clean and intuitive web interface to view current and historical speed test results."},{title:"Data Visualization",description:"Charts and graphs to visualize speed trends and identify performance issues over time."},{title:"SQLite Database",description:"Lightweight SQLite database for storing test results without external database requirements."}],tags:["Network Monitoring","Speed Test","Performance","Self-Hosted","Tracking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","APP_KEY=".concat(a),"DB_CONNECTION=sqlite"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"speedtest-config",mountPath:"/config"},{type:"volume",name:"speedtest-keys",mountPath:"/config/keys"}]}}),{services:t}}},{slug:"sqlchat",meta:{name:"SQLChat",description:"SQLChat is a chat-based SQL client powered by ChatGPT that allows you to interact with your databases using natural language. It provides an intuitive interface for querying databases, exploring data, and learning SQL through conversational interactions. SQLChat supports multiple database types and integrates with OpenAI's GPT models to translate natural language queries into SQL statements, making database interactions more accessible for both beginners and experienced developers.",instructions:null,changeLog:[{date:"2025-06-25",description:"Initial Template Release"}],links:[{label:"GitHub",url:"https://github.com/sqlchat/sqlchat"},{label:"Documentation",url:"https://github.com/sqlchat/sqlchat#readme"},{label:"Demo",url:"https://sqlchat.ai"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","openaiApiKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sqlchat"},appServiceImage:{type:"string",title:"App Service Image",default:"sqlchat/sqlchat:latest",description:"SQLChat Docker image"},openaiApiKey:{type:"string",title:"OpenAI API Key",description:"Your OpenAI API key for ChatGPT integration"}}},benefits:[{title:"Natural Language Queries",description:"Query your databases using natural language instead of complex SQL syntax, making database interactions more intuitive and accessible."},{title:"ChatGPT Integration",description:"Powered by OpenAI's ChatGPT to translate natural language into SQL queries and provide intelligent database insights."},{title:"Multi-Database Support",description:"Connect to various database types including PostgreSQL, MySQL, SQLite, and more through a unified chat interface."},{title:"Learning Tool",description:"Perfect for learning SQL as it shows the generated SQL queries alongside natural language explanations and results."}],features:[{title:"Conversational Interface",description:"Chat-based interface that makes database querying feel like having a conversation with an expert SQL developer."},{title:"Query Translation",description:"Automatically translates natural language questions into optimized SQL queries with explanations of the logic."},{title:"Database Explorer",description:"Explore database schemas, tables, and relationships through natural language commands and questions."},{title:"Result Visualization",description:"View query results in formatted tables with options for data export and further analysis through chat."}],tags:["Database","SQL","AI","ChatGPT","Query Tool","Natural Language","Next.js"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NEXTAUTH_SECRET=".concat(a),"OPENAI_API_KEY=".concat(e.openaiApiKey)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"squidex",meta:{name:"Squidex",description:"Squidex is an open-source, headless CMS designed for seamless content management across multiple platforms. It provides a real-time GraphQL API, fine-grained permissions, and a flexible workflow for content collaboration. Squidex supports event sourcing and integrates well with modern applications, ensuring a structured and efficient content distribution.",instructions:"If you do not choose any identity provider, you can register a user when you go to the browser.",changeLog:[{date:"2025-01-29",description:"Template Release"},{date:"2025-07-25",description:"Version bumped to 7.21.0"},{date:"2026-05-07",description:"Version bumped to 7.23.0"}],links:[{label:"Documentation",url:"https://docs.squidex.io/"},{label:"Github",url:"https://github.com/Squidex/squidex"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"squidex"},appServiceImage:{type:"string",title:"App Service Image",default:"squidex/squidex:7.23.0"},adminEmailAddress:{type:"string",title:"Admin Email Address",description:"The email address for admin account."},adminPassword:{type:"string",title:"Admin Password",description:"The password for the admin account."},googleClient:{type:"string",title:"Google Client",description:"The Client ID for Google OAuth authentication."},googleClientSecret:{type:"string",title:"Google Client Secret"},githubClient:{type:"string",title:"Github Client ID",description:"The Client ID for Github OAuth authentication."},githubClientSecret:{type:"string",title:"Github Client Secret"},microsoftClient:{type:"string",title:"Microsoft Client ID",description:"The Client ID for Microsoft OAuth authentication."},microsoftClientSecret:{type:"string",title:"Microsoft Client Secret"}}},benefits:[{title:"Headless CMS",description:"Squidex provides a robust headless content management system with a flexible API-first approach."},{title:"Real-Time Collaboration",description:"Enable teams to collaborate with real-time content updates and workflows."},{title:"Multi-Platform Support",description:"Deliver content seamlessly across web, mobile, and IoT devices."}],features:[{title:"GraphQL & REST API",description:"Easily fetch content using Squidex's powerful GraphQL or REST API."},{title:"Version Control & History",description:"Track content changes with built-in version control and rollback options."},{title:"Permissions & Roles",description:"Define granular user roles and permissions for secure content management."},{title:"Event Sourcing",description:"Benefit from a scalable event-driven architecture for data consistency."}],tags:["Headless CMS","API-Driven","Content Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["URLS__BASEURL=https://$(PRIMARY_DOMAIN)","EVENTSTORE__TYPE=MongoDB","EVENTSTORE__MONGODB__CONFIGURATION=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:27017/?tls=false"),"STORE__MONGODB__CONFIGURATION=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:27017/?tls=false"),"IDENTITY__ADMINEMAIL=".concat(e.adminEmailAddress||""),"IDENTITY__ADMINPASSWORD=".concat(e.adminPassword||""),"IDENTITY__GOOGLECLIENT=".concat(e.googleClient||""),"IDENTITY__GOOGLESECRET=".concat(e.googleClientSecret||""),"IDENTITY__GITHUBCLIENT=".concat(e.githubClient||""),"IDENTITY__GITHUBSECRET=".concat(e.githubClientSecret||""),"IDENTITY__MICROSOFTCLIENT=".concat(e.microsoftClient||""),"IDENTITY__MICROSOFTSECRET=".concat(e.microsoftClientSecret||"")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"assets",mountPath:"/app/Assets"}]}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"squirrelserversmanager",meta:{name:"Squirrel Servers Manager",description:"Squirrel Servers Manager (SSM) is a user-friendly, UI/UX-focused server and configuration management tool. It lets you connect to remote servers over SSH, manage Docker containers and Compose stacks, execute Ansible playbooks, and monitor server health \u2014 all from a single web interface. SSM includes a built-in Prometheus instance for metrics collection, a Redis cache, and a MongoDB database for persistent storage. The architecture is a multi-service deployment consisting of an Nginx proxy, a Node.js API server, a React client, and supporting services.",instructions:"After deployment, open the web UI. The default admin account is created on first access. Connect your remote servers using SSH credentials in the Devices section. Use the Playbooks section to run Ansible tasks and the Containers section to manage Docker workloads on connected servers.",changeLog:[{date:"2026-06-29",description:"first release"}],links:[{label:"Website",url:"https://squirrelserversmanager.io"},{label:"Github",url:"https://github.com/SquirrelCorporation/SquirrelServersManager"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","proxyServiceImage","serverServiceImage","clientServiceImage","prometheusServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"squirrelserversmanager"},proxyServiceImage:{type:"string",title:"Proxy Service Image",default:"ghcr.io/squirrelcorporation/squirrelserversmanager-proxy:v0.5.2"},serverServiceImage:{type:"string",title:"Server Service Image",default:"ghcr.io/squirrelcorporation/squirrelserversmanager-server:v0.5.2"},clientServiceImage:{type:"string",title:"Client Service Image",default:"ghcr.io/squirrelcorporation/squirrelserversmanager-client:v0.5.2"},prometheusServiceImage:{type:"string",title:"Prometheus Service Image",default:"ghcr.io/squirrelcorporation/squirrelserversmanager-prometheus:v0.5.2"}}},benefits:[{title:"Unified Server Management",description:"Manage all your remote servers from one place. SSM connects over SSH and gives you a full-featured dashboard to monitor health, run commands, and deploy workloads without juggling multiple tools."},{title:"Ansible Playbook Execution",description:"Run Ansible playbooks directly from the UI. Import playbooks from remote Git repositories or write them inline, then execute them against any connected server with real-time output streaming."},{title:"Docker and Compose Management",description:"View, start, stop, and restart Docker containers and Compose stacks on every connected server. SSM pulls live status from the Docker daemon so you always see the current state."}],features:[{title:"SSH-Based Device Connectivity",description:"Add servers using SSH key or password authentication. SSM establishes secure tunnels for all management operations and keeps credentials encrypted at rest using a vault password."},{title:"Real-Time Metrics with Prometheus",description:"A bundled Prometheus instance collects server and container metrics. The dashboard surfaces CPU, memory, and disk usage so you can spot issues before they become incidents."},{title:"Multi-User with Role-Based Access",description:"Create multiple user accounts with different permission levels. Teams can share a single SSM instance without granting everyone full administrative access."},{title:"Ansible Integration",description:"SSM ships with Ansible support out of the box. Connect remote playbook repositories over Git, browse available roles and tasks, and execute them on demand or on a schedule."}],tags:["Server Management","DevOps","Monitoring","Self-Hosted"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=y(16),o=v(),n=v(),r=v(),s=["server {","  listen 8000;","  server_name localhost;","  access_log off;","  error_log /dev/null;","","  location /api/socket.io/ {","    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;","    proxy_set_header Host $host;","    proxy_pass http://${SSM_SERVER_HOST}:3000/socket.io/;","    proxy_http_version 1.1;","    proxy_set_header Upgrade $http_upgrade;",'    proxy_set_header Connection "upgrade";',"  }","","  location /api/ {","    proxy_pass http://${SSM_SERVER_HOST}:3000/;","    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;","    proxy_set_header Host $host;","  }","","  location /mcp {","    proxy_pass http://${SSM_SERVER_HOST}:3001/;","    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;","    proxy_set_header Host $host;","  }","","  location /static-plugins/ {","    proxy_pass http://${SSM_SERVER_HOST}:3000/static-plugins/;","    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;","    proxy_set_header Host $host;","    add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';","    expires off;","  }","","  location / {","    proxy_pass http://${SSM_CLIENT_HOST}:8000/;","    proxy_http_version 1.1;","    proxy_set_header Upgrade $http_upgrade;",'    proxy_set_header Connection "upgrade";',"  }","}"].join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.proxyServiceImage},env:["SSM_SERVER_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-server"),"SSM_CLIENT_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-client")].join("\n"),mounts:[{type:"file",content:s,mountPath:"/etc/nginx/templates/default.conf.template"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-server"),source:{type:"image",image:e.serverServiceImage},env:["NODE_ENV=production","SECRET=".concat(a),"SALT=".concat(i),"VAULT_PWD=".concat(o),"DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_NAME=ssm","DB_PORT=27017","DB_AUTH_SOURCE=admin","DB_USER=mongo","DB_USER_PWD=".concat(n),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","PROMETHEUS_HOST=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-prometheus:9090"),"PROMETHEUS_BASE_URL=/api/v1","PROMETHEUS_USERNAME=admin","PROMETHEUS_PASSWORD=".concat(r)].join("\n"),mounts:[{type:"volume",name:"server-data",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-client"),source:{type:"image",image:e.clientServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-prometheus"),source:{type:"image",image:e.prometheusServiceImage},env:["PROMETHEUS_USERNAME=admin","PROMETHEUS_PASSWORD=".concat(r)].join("\n"),mounts:[{type:"volume",name:"prometheus-data",mountPath:"/prometheus"}]}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-db"),password:n}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-redis"),source:{type:"image",image:"redis:7.4.11-alpine"},deploy:{command:"redis-server --save 60 1"},mounts:[{type:"volume",name:"redis-data",mountPath:"/data"}]}}),{services:t}}},{slug:"sshwifty",meta:{name:"Sshwifty",description:"Sshwifty is a web-based SSH and Telnet client that allows you to access these services directly from any standard web browser. It can be deployed on your computer or server, providing a convenient and accessible interface for SSH and Telnet connections. Sshwifty is designed to be highly configurable, allowing you to set up multiple servers, define presets for known remotes, and even restrict connections to preset remotes only. It also supports secure connections through TLS, and can be configured to connect through a Socks5 proxy. Whether you need to connect to a remote server or a local machine, Sshwifty provides a flexible and user-friendly solution.",instructions:null,changeLog:[{date:"2022-12-20",description:"first release"},{date:"2025-03-03",description:"Version bumped to 0.3.18-beta-release"},{date:"2025-07-25",description:"Version bumped to 0.3.25-beta-release"},{date:"2025-12-29",description:"Version bumped to 0.4.2-beta-release"},{date:"2026-02-24",description:"Version bumped to 0.4.3-beta-release"},{date:"2026-05-07",description:"Version bumped to 0.4.5-beta-release"}],links:[{label:"Github",url:"https://github.com/nirui/sshwifty"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sshwifty"},appServiceImage:{type:"string",title:"App Service Image",default:"niruix/sshwifty:0.4.5-beta-release"}}},benefits:[{title:"Web-Based SSH and Telnet Access",description:"Sshwifty provides a web-based interface for SSH and Telnet connections, allowing you to access these services from any standard web browser."},{title:"Secure Connections",description:"Sshwifty supports TLS, ensuring that your connections are secure and your data is protected."},{title:"Flexible Configuration",description:"Sshwifty can be configured through either a file or environment variables, giving you the flexibility to set up the software in a way that best suits your needs."}],features:[{title:"SSH and Telnet Connector",description:"Sshwifty allows you to connect to SSH and Telnet services directly from your web browser, eliminating the need for additional software."},{title:"Predefined Remote Presets",description:"Sshwifty allows you to define presets for known remote hosts, saving you time and effort when connecting to these hosts."},{title:"Secure Connections with TLS",description:"Sshwifty supports TLS, ensuring that your connections are secure and your data is protected."},{title:"Flexible Configuration Options",description:"Sshwifty can be configured through either a file or environment variables, giving you the flexibility to set up the software in a way that best suits your needs."}],tags:["Developer Tools","SSH","Telnet"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8182}]}}),{services:t}}},{slug:"stalwart",meta:{name:"Stalwart",description:"Stalwart is a modern, all-in-one mail and collaboration server written in Rust for security and performance. It bundles SMTP, IMAP, JMAP, POP3, CalDAV, CardDAV, and WebDAV into a single binary with a unified configuration. Features include a built-in spam and phishing filter with LLM-driven analysis, DMARC/DKIM/SPF/ARC authentication, encryption at rest with S/MIME or OpenPGP, automatic TLS via ACME, full-text search in 17 languages, Sieve scripting, and a web-based admin dashboard. It supports pluggable storage backends (RocksDB, FoundationDB, PostgreSQL, MySQL, SQLite, S3, Redis) and scales from a single instance to thousands of nodes with built-in clustering, load balancing, and fault tolerance.",instructions:"On first boot, Stalwart auto-generates admin credentials and prints them to the container logs. Check the service logs to find the admin username and password. Then access the web admin at the service domain and log in. From there, configure your domain under Management > Directory > Domains, and Stalwart will generate the required DNS records (MX, DKIM, SPF, DMARC) for you. Set the correct server hostname in Settings > Server > Network. Mail ports (SMTP 25, submission 587/465, IMAP 143/993, POP3 110/995, ManageSieve 4190) are exposed for direct access.",changeLog:[{date:"2026-02-20",description:"Template Release"}],links:[{label:"Website",url:"https://stalw.art"},{label:"GitHub",url:"https://github.com/stalwartlabs/stalwart"},{label:"Documentation",url:"https://stalw.art/docs/install/get-started"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"stalwart"},appServiceImage:{type:"string",title:"Stalwart Image",default:"ghcr.io/stalwartlabs/stalwart:v0.15.5"},smtpPort:{type:"number",title:"SMTP Port",default:25,description:"Inbound mail delivery (SMTP)"},smtpSubmissionPort:{type:"number",title:"SMTP Submission Port",default:587,description:"Mail submission (SMTP with STARTTLS)"},smtpTlsPort:{type:"number",title:"SMTP Submission TLS Port",default:465,description:"Mail submission over implicit TLS"},imapPort:{type:"number",title:"IMAP Port",default:143,description:"IMAP with STARTTLS"},imapsPort:{type:"number",title:"IMAPS Port",default:993,description:"IMAP over implicit TLS"},pop3Port:{type:"number",title:"POP3 Port",default:110,description:"POP3 with STARTTLS"},pop3sPort:{type:"number",title:"POP3S Port",default:995,description:"POP3 over implicit TLS"},sievePort:{type:"number",title:"ManageSieve Port",default:4190,description:"ManageSieve protocol for server-side mail filtering"}}},benefits:[{title:"All-in-One Server",description:"SMTP, IMAP, JMAP, POP3, CalDAV, CardDAV, WebDAV, spam filter, and web admin all in a single Rust binary. No need to stitch together multiple components."},{title:"Written in Rust",description:"Memory-safe by design with excellent performance. Security audited and built to handle everything from small personal setups to large-scale enterprise deployments."},{title:"Built-in Spam & Phishing Filter",description:"Comprehensive spam filtering with LLM-driven analysis, statistical classifier, DNS blocklists, greylisting, sender reputation, phishing protection, and collaborative filtering."},{title:"Scales Seamlessly",description:"From a single instance to thousands of nodes with peer-to-peer cluster coordination, load balancing, fault tolerance, and support for Kubernetes, Docker Swarm, and Apache Mesos."}],features:[{title:"Complete Protocol Support",description:"Full JMAP, IMAP4rev2, POP3, and SMTP support with DMARC, DKIM, SPF, ARC authentication and DANE, MTA-STS transport security."},{title:"Calendars, Contacts & Files",description:"Native CalDAV and CardDAV support for calendars and contacts, plus WebDAV for file storage and sharing with fine-grained access controls."},{title:"Pluggable Storage Backends",description:"Choose from RocksDB, FoundationDB, PostgreSQL, MySQL, SQLite, S3-compatible storage, Azure, or Redis. Full-text search via built-in engine, Meilisearch, or ElasticSearch."},{title:"Encryption & Security",description:"Encryption at rest with S/MIME or OpenPGP, automatic TLS via ACME, two-factor authentication, OAuth 2.0, OpenID Connect, LDAP, and fail2ban-style blocking."},{title:"Web Admin Dashboard",description:"Real-time monitoring, account and domain management, SMTP queue management, DMARC/TLS report visualization, log viewer, and self-service portal."},{title:"Sieve Scripting",description:"Full Sieve scripting language support with all registered extensions for powerful server-side email filtering and automation."}],tags:["Email","Mail Server","SMTP","IMAP","CalDAV","CardDAV","Self-Hosted","Collaboration"],logo:"logo.svg",screenshots:["screenshot.png","screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/opt/stalwart"}],ports:[{published:e.smtpPort||25,target:25},{published:e.smtpSubmissionPort||587,target:587},{published:e.smtpTlsPort||465,target:465},{published:e.imapPort||143,target:143},{published:e.imapsPort||993,target:993},{published:e.pop3Port||110,target:110},{published:e.pop3sPort||995,target:995},{published:e.sievePort||4190,target:4190}]}}),{services:t}}},{slug:"standardnotes",meta:{name:"StandardNotes",description:"StandardNotes is a private, end-to-end encrypted notes app that provides a secure platform for writing and organizing your thoughts. It offers a clean, distraction-free interface with strong encryption to protect your privacy. The self-hosted version gives you complete control over your data while maintaining all the security features of the cloud version.",instructions:null,changeLog:[{date:"2025-09-16",description:"Template Release (9b023782830a4742b31cd3696cc2f8fff22e0936)"},{date:"2026-02-24",description:"Version bumped to ff58de30fb4d8093f5056b5c4789163e81edf632"},{date:"2026-05-07",description:"Version bumped to f4a94811848ea19550703d5dcd2b446091bf9536"}],links:[{label:"Documentation",url:"https://docs.standardnotes.com/self-hosting/getting-started"},{label:"Github",url:"https://github.com/standardnotes/app"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"standardnotes"},appServiceImage:{type:"string",title:"Web Service Image",default:"standardnotes/web:f4a94811848ea19550703d5dcd2b446091bf9536"}}},benefits:[{title:"End-to-End Encryption",description:"Your notes are encrypted on your device before being sent to the server, ensuring complete privacy and security of your personal data."},{title:"Self-Hosted Privacy",description:"Complete control over your data with self-hosted deployment, ensuring your notes never leave your own infrastructure."},{title:"Clean, Distraction-Free Interface",description:"Minimalist design focused on writing without distractions, helping you concentrate on your thoughts and ideas."}],features:[{title:"Secure Note Taking",description:"Write and organize notes with strong encryption protecting your content from unauthorized access or data breaches."},{title:"Multi-Platform Access",description:"Access your notes from any device with web browsers, mobile apps, and desktop applications for seamless note-taking across platforms."},{title:"File Attachments",description:"Attach files to your notes with the same encryption protection, keeping all your documents secure and organized."},{title:"Tagging and Organization",description:"Organize your notes with tags, folders, and search functionality to quickly find and manage your content."},{title:"Version History",description:"Track changes to your notes over time with automatic version history and the ability to restore previous versions."},{title:"Offline Access",description:"Work on your notes even when offline, with automatic synchronization when you reconnect to the internet."}],tags:["Notes App","Encryption","Self-Hosted","Privacy","Writing","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"statping-ng",meta:{name:"Statping-ng",description:"Statping is a web and app status monitoring tool designed for any type of project. It automatically fetches your application and generates a beautiful, feature-rich status page. This status page generator supports MySQL, Postgres, or SQLite on multiple operating systems, ensuring future-proof and resilient monitoring. If your server crashes, your Statping service will remain online to notify your users of downtime. Lightweight and fast, Statping is available for Linux, Mac, and Windows, and even on a Raspberry Pi. The mobile app, available on the App Store and Google Play, allows you to view services, receive notifications when a service is offline, and manage groups, users, services, and messages. Statping can run on any server, from Docker to AWS EC2, and offers custom SASS styling for complete customization of your status page. It includes email notification via SMTP and Slack integration, and allows you to create your own plugins to interact with every element of your status page. With its easy-to-use dashboard, you can monitor your websites and applications with a basic HTTP GET request or a POST request with your own JSON.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"}],links:[{label:"Website",url:"https://github.com/statping/statping"},{label:"Documentation",url:"https://github.com/statping/statping"},{label:"Github",url:"https://github.com/statping/statping"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"statping-ng"},appServiceImage:{type:"string",title:"App Service Image",default:"adamboutcher/statping-ng:v0.90.78"},databaseType:{type:"string",title:"Database Type",default:"sqlite",oneOf:[{enum:["sqlite"],title:"SQLite"},{enum:["postgres"],title:"Postgres"},{enum:["mysql"],title:"MySQL"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"statping-ng-db"}}},benefits:[{title:"Future-Proof Status Page",description:"Statping is designed to remain future-proof and intact even in the event of a failure. It ensures that your status page remains online to notify your users of downtime, even if your server crashes."},{title:"Lightweight and Fast",description:"Statping is a very lightweight application, ensuring that it won't be filling up your hard drive space. It is available for Linux, Mac, and Windows, and even runs on a Raspberry Pi."},{title:"Cost-Effective Hosting",description:"Statping offers multiple options for hosting your status page. It can run on any server, including AWS EC2, which might be the most cost-effective way to host your own Statping Status Page."},{title:"Customizable Styling",description:"Statping allows you to completely customize your Status Page using SASS styling with easy-to-use variables."},{title:"Notification Integration",description:"Statping includes email notification via SMTP and Slack integration using Incoming Webhook. Anytime a service fails, your specified Slack channel will receive a message."}],features:[{title:"Status Page & Monitoring Server",description:"Statping provides an easy-to-use Status Page for your websites and applications. It automatically fetches the application and renders a beautiful status page with tons of features."},{title:"Mobile App",description:"The Statping app, available on the App Store and Google Play, allows you to view services, receive notifications when a service is offline, update groups, users, services, messages, and more."},{title:"User Created Notifiers",description:"Statping is not just another Status Page for your applications, it's a framework that allows you to create your own plugins to interact with every element of your status page."},{title:"Easy-to-use Dashboard",description:"Statping provides a straightforward dashboard for monitoring your websites and applications with a basic HTTP GET request, or add a POST request with your own JSON to post to the endpoint."},{title:"Prometheus Exporter",description:"Statping includes a Prometheus Exporter so you can have even more monitoring power with your services."}],tags:["Monitoring","Status Page","Notifications"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=e.databaseType;return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_CONN=".concat(e.databaseType),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_USER=".concat(i),"DB_PASS=".concat(a),"DB_DATABASE=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"app",mountPath:"/app"}]}}),"postgres"===e.databaseType&&t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),"mysql"===e.databaseType&&t.push({type:"mysql",data:{serviceName:e.databaseServiceName,image:"mysql:5",password:a}}),{services:t}}},{slug:"steamcmd",meta:{name:"SteamCMD",description:"SteamCMD is a command-line version of the Steam client for installing and updating Steam games and dedicated servers. It's perfect for managing game servers and game installations.",instructions:"After installation, you can use SteamCMD to install and update games. The installation directory can be configured in the settings.",changeLog:[{date:"2025-05-05",description:"Initial release"}],links:[{label:"Documentation",url:"https://developer.valvesoftware.com/wiki/SteamCMD"},{label:"Docker Hub",url:"https://hub.docker.com/r/steamcmd/steamcmd"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","installPath","steamCommand"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"steamcmd"},appServiceImage:{type:"string",title:"App Service Image",default:"steamcmd/steamcmd:latest"},installPath:{type:"string",title:"Installation Path",description:"Host path where games will be installed",default:"/path/to/games"},steamCommand:{type:"string",title:"Steam Command",description:"SteamCMD command to install CSGO locally to data directory.",default:"+login anonymous +force_install_dir /data +app_update 740 +quit"}}},benefits:[{title:"Game Management",description:"Install and update Steam games and dedicated servers"},{title:"Command Line",description:"Powerful command-line interface for automation"},{title:"Official Tool",description:"Official Valve tool for game server management"},{title:"Containerized",description:"Runs in a container for easy management"}],features:[{title:"Game Installation",description:"Install any Steam game or dedicated server"},{title:"Automatic Updates",description:"Keep games and servers up to date"},{title:"Custom Commands",description:"Run any SteamCMD command"},{title:"Volume Persistence",description:"Persistent game data through volume mounting"},{title:"Automation",description:"Perfect for automated game server management"}],tags:["Steam","Game Server","Self-hosted","Gaming"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"bind",hostPath:e.installPath,mountPath:"/data"}],deploy:{command:e.steamCommand}}}),{services:t}}},{slug:"stirlingpdf",meta:{name:"StirlingPDF",description:"StirlingPDF is an open-source PDF management tool designed to streamline PDF handling tasks for both individual users and businesses. It enables users to create, merge, split, compress, and convert PDF documents with ease. Built to support a wide range of platforms, including Linux, Windows, and macOS, StirlingPDF ensures flexibility and resilience for everyday PDF management. Its user-friendly interface and powerful backend make it suitable for both simple and complex PDF workflows. StirlingPDF can run on personal computers or be deployed on servers, offering seamless API access for integration into larger systems. Lightweight and efficient, StirlingPDF is ideal for individual users, small businesses, and large enterprises alike, ensuring reliable PDF manipulation without the need for costly subscriptions. It supports MySQL, PostgreSQL, or SQLite databases, providing robust data handling across various infrastructures.",instructions:null,changeLog:[{date:"2024-11-13",description:"Initial release of StirlingPDF"},{date:"2025-03-03",description:"Version bumped to 0.43.2"},{date:"2025-07-25",description:"Version bumped to 1.1.0"},{date:"2026-05-07",description:"Version bumped to 2.10.0"}],links:[{label:"Website",url:"https://stirlingpdf.io/"},{label:"Documentation",url:"https://stirlingpdf.io/"},{label:"Github",url:"https://github.com/Stirling-Tools/Stirling-PDF"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"PDF Service Name",default:"stirlingpdf"},appServiceImage:{type:"string",title:"PDF Service Image",default:"frooodle/s-pdf:2.10.0"}}},benefits:[{title:"Comprehensive PDF Management",description:"StirlingPDF offers a suite of tools for handling PDFs, allowing users to create, merge, split, compress, and convert documents in one easy-to-use application."},{title:"Multi-Platform Support",description:"StirlingPDF is available for Linux, Windows, and macOS, making it accessible for users across various operating systems."},{title:"Open-Source & Free",description:"StirlingPDF is open-source, meaning it is free to use without any subscription costs, providing a cost-effective solution for PDF management."},{title:"Flexible Deployment Options",description:"StirlingPDF can be run on personal devices or deployed on a server, offering both local and remote PDF management capabilities."},{title:"API Integration",description:"StirlingPDF includes API access, allowing businesses to integrate PDF handling functionality into their own applications and workflows."}],features:[{title:"Complete PDF Toolkit",description:"StirlingPDF provides a comprehensive toolkit for all major PDF operations, from creating to compressing, to meet various document management needs."},{title:"User-Friendly Interface",description:"StirlingPDF is built with an intuitive interface, making it accessible for users of all technical backgrounds."},{title:"Customizable Storage",description:"StirlingPDF supports MySQL, PostgreSQL, or SQLite databases, ensuring data is stored securely and managed efficie
1ntly."},{title:"Efficient Performance",description:"StirlingPDF is lightweight and performs operations quickly, making it suitable for handling both small and large PDF files without lag."},{title:"Server and Cloud Ready",description:"StirlingPDF can be deployed on cloud platforms and servers, supporting high availability for enterprise-grade use."}],tags:["PDF","Document Management","Open Source","API Integration","PDF Conversion"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DOCKER_ENABLE_SECURITY=false","INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false","LANGS=en_GB"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"strapi",meta:{name:"Strapi",description:"Strapi is a leading open-source headless CMS that is fully customizable and built with 100% JavaScript. It allows you to manage any content, anywhere, providing you with the freedom to use your favorite tools and frameworks. With Strapi, you can build apps quickly, getting your backend done in minutes instead of weeks. You can easily build customizable content APIs and use them with a modern tech stack. Strapi also allows you to effortlessly create content structures that flex to your needs, write, edit, and manage any content types, and build apps and digital experiences without the distraction of CMS complexities. You can consume Strapi API from any client using REST or GraphQL, and deploy on Strapi Cloud or on any cloud platforms.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"}],links:[{label:"Website",url:"https://strapi.io/"},{label:"Documentation",url:"https://docs.strapi.io/developer-docs/latest/getting-started/introduction.html"},{label:"Github",url:"https://github.com/strapi"}],contributors:[{name:"Ponkhy",url:"https://github.com/Ponkhy"},{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"strapi"},appServiceImage:{type:"string",title:"App Service Image",default:"strapi/strapi:3.6.8-alpine"},databaseType:{type:"string",title:"Database Type",default:"sqlite",oneOf:[{enum:["sqlite"],title:"SQLite"},{enum:["postgres"],title:"Postgres"},{enum:["mariadb"],title:"MariaDB"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"strapi-db"}}},benefits:[{title:"Efficient Content Management",description:"Strapi is a leading open-source headless CMS that allows you to manage any content, anywhere. It provides a flexible data structure that can be easily customized to fit your business needs, enabling you to create rich layout experiences."},{title:"Rapid Backend Development",description:"With Strapi, you can get your backend done in minutes instead of weeks. It allows you to easily build customizable content APIs and use them with a modern tech stack, accelerating your app development process."},{title:"Full Control and Customization",description:"Strapi gives you full control over your content management. You can easily customize the admin panel as well as the API, extend your content management with custom plugins, and choose where to host your app, with no lock-in."}],features:[{title:"Flexible Data Structure",description:"Strapi allows you to effortlessly create content structures that flex to your needs. You can easily define models and add relations to create rich layout experiences."},{title:"Content Management",description:"Once you have created your content architecture, you can seamlessly write, edit, and manage any content types. Strapi allows cross-functional teams to deliver content faster across various industries, use cases, locations, devices, and channels."},{title:"API Integration",description:"Strapi allows you to easily build apps and digital experiences without the distraction of CMS complexities. You can integrate individual best-in-class services by third-party vendors and connect any framework of your choice."},{title:"Deployment Options",description:"With Strapi, you can deploy your app on Strapi Cloud or on any cloud platforms. Strapi can quickly be deployed on Strapi Cloud or on services such as 21YunBox, Render, AWS, Azure, and others or locally using Docker."}],tags:["CMS"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i="mariadb"===e.databaseType?"mysql":e.databaseType,o="postgres"===e.databaseType?"postgres":"mariadb",n="postgres"===e.databaseType?"5432":"3306";return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_CLIENT=".concat(i),"DATABASE_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DATABASE_PORT=".concat(n),"DATABASE_NAME=$(PROJECT_NAME)","DATABASE_USERNAME=".concat(o),"DATABASE_PASSWORD=".concat(a),"DATABASE_SSL=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1337}],mounts:[{type:"volume",name:"app",mountPath:"/srv/app"}]}}),"postgres"===e.databaseType&&t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),"mariadb"===e.databaseType&&t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"streampanel",meta:{name:"StreamPanel",description:"StreamPanel simplifies app deployment and management, streamlining your workflow and boosting productivity.",instructions:"Make sure to update the EasyPanel, Google and Github environment variables.",changeLog:[{date:"2024-04-03",description:"Template added"}],links:[{label:"Github",url:"https://github.com/wish-oss/stream-panel"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"}],schema:{type:"object",required:["appServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"nextjs"}}},benefits:[{title:"Effortless Deployment",description:"Seamlessly deploy modern applications without the hassle of managing servers."},{title:"Streamlined Management",description:"Simplify app management tasks and free up valuable time for more important work."}],features:[{title:"Instant Access",description:"Access your cloud environment instantly, with pre-installed applications ready to use."},{title:"Scalable Solutions",description:"Easily scale your environment as your needs grow, ensuring seamless performance at any scale."}],tags:["Cloud Computing","App Deployment"],logo:null,screenshots:[]},generate:function(e){var t=[],a=v(),i=v(),o=["# https://github.com/wish-oss/stream-panel/tree/dev?tab=readme-ov-file#setup-environment-variables","","GITHUB_ID=your-github-id","GITHUB_SECRET=your-github-secret","","NEXTAUTH_SECRET=".concat(i),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","","DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_postgres:5432/$(PROJECT_NAME)"),"","EASYPANEL_URL=https://your-easypanel.url","EASYPANEL_API_KEY=your-easypanel-apikey","","GOOGLE_CLIENT_ID=___.apps.googleusercontent.com","GOOGLE_CLIENT_SECRET=your-google-secret"];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"github",owner:"wish-oss",repo:"stream-panel",ref:"dev",path:"/",autoDeploy:!0},build:{type:"nixpacks"},env:o.join("\n"),deploy:{replicas:1,command:"npx prisma migrate deploy && npm run start",zeroDowntime:!0},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:"postgres",image:"postgres:16",password:a}}),{services:t}}},{slug:"stremio",meta:{name:"Stremio",description:"Stremio is a modern media center application that provides a unified platform for streaming movies, TV shows, and live TV content. This template uses the community Docker image tsaridas/stremio-docker (server and web UI). The self-hosted setup lets you run your own Stremio server, giving you complete control over your media streaming experience. With support for various content sources and add-ons, Stremio aggregates content from multiple providers into a single interface. The application features automatic server URL configuration and CORS handling, making it easy to access from any device. With persistent storage for server data and configurations, Stremio ensures your settings and preferences are retained across container restarts. Perfect for media enthusiasts who want a centralized streaming solution, users looking for a self-hosted alternative to commercial streaming services, or anyone seeking a flexible media center that can aggregate content from multiple sources.",instructions:null,changeLog:[{date:"2026-01-05",description:"Template Release"},{date:"2026-05-07",description:"Version bumped to v1.2.16"}],links:[{label:"GitHub",url:"https://github.com/tsaridas/stremio-docker"},{label:"Docker Hub",url:"https://hub.docker.com/r/tsaridas/stremio-docker"},{label:"Website",url:"https://www.stremio.com"},{label:"Blog",url:"https://blog.stremio.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"stremio"},appServiceImage:{type:"string",title:"App Service Image",default:"tsaridas/stremio-docker:v1.2.16"}}},benefits:[{title:"Unified Media Center",description:"Aggregate and stream movies, TV shows, and live TV content from multiple sources in a single, unified interface."},{title:"Self-Hosted Control",description:"Complete control over your media streaming experience with a self-hosted solution that keeps your data private."},{title:"Persistent Storage",description:"Server data and configurations are stored persistently ensuring your settings and preferences are retained across container restarts."},{title:"Easy Access",description:"Automatic server URL configuration and CORS handling make it easy to access your Stremio server from any device."}],features:[{title:"Media Streaming",description:"Stream movies, TV shows, and live TV content from various sources through a single interface."},{title:"Add-on Support",description:"Extend functionality with add-ons that provide access to additional content sources and features."},{title:"Automatic Configuration",description:"Automatic server URL configuration and CORS handling for seamless access from any device."},{title:"Web Interface",description:"Access your Stremio server through a web interface that works on any device with a browser."}],tags:["Media","Streaming","Movies","TV Shows","Self-Hosted","Media Center"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["NO_CORS=1","AUTO_SERVER_URL=1"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/root/.stremio-server"}]}}),{services:t}}},{slug:"stump",meta:{name:"Stump",description:"Stump is a fast, free and open source audiobook and e-book server. It provides a web interface for accessing and managing your digital book collection, supporting various formats including audiobooks and e-books. Stump offers streaming capabilities, library management, and a modern responsive interface for reading and listening to your books from any device.",instructions:null,changeLog:[{date:"2025-09-12",description:"Template Release (v0.0.11)"},{date:"2025-12-29",description:"Version bumped to 0.0.12"},{date:"2026-05-07",description:"Version bumped to 0.1.2"}],links:[{label:"Website",url:"https://www.stumpapp.dev"},{label:"Documentation",url:"https://www.stumpapp.dev/installation/docker"},{label:"Github",url:"https://github.com/aaronleopold/stump"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"stump"},appServiceImage:{type:"string",title:"App Service Image",default:"aaronleopold/stump:0.1.2"}}},benefits:[{title:"Fast and Lightweight",description:"Optimized for speed and performance with minimal resource usage, making it perfect for running on various hardware configurations."},{title:"Multi-Format Support",description:"Comprehensive support for both audiobooks and e-books in various formats, providing a unified platform for your entire digital library."},{title:"Self-Hosted Privacy",description:"Keep your book collection completely private and secure on your own server with no external dependencies or data sharing."}],features:[{title:"Audiobook Streaming",description:"Stream audiobooks directly through the web interface with support for various audio formats and quality settings."},{title:"E-book Reader",description:"Built-in e-book reader with support for multiple formats and responsive design for optimal reading experience across devices."},{title:"Library Management",description:"Organize and manage your digital book collection with metadata support, search functionality, and categorization features."},{title:"Web-Based Access",description:"Access your entire library from any device with a web browser, providing convenient reading and listening from anywhere."},{title:"Responsive Design",description:"Modern, responsive interface that works seamlessly across different devices and screen sizes for optimal user experience."},{title:"Easy Setup",description:"Simple Docker-based deployment with minimal configuration required to get your personal book server running quickly."}],tags:["Audiobook Server","E-book Reader","Digital Library","Self-Hosted","Web Interface","Books"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=0","PGID=0","STUMP_CONFIG_DIR=/config"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:10801}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"books",mountPath:"/data"}]}}),{services:t}}},{slug:"substreamer",meta:{name:"Substreamer",description:"Substreamer is a free client app designed to provide you with a seamless and personalized music experience. It works in conjunction with the Subsonic music server, allowing you to organize and access your music library in a way that suits you best. Substreamer is compatible with Subsonic forks such as Airsonic, Madsonic, and others that implement the Subsonic API v1.13 or higher, including Navidrome and Ampache. This app is packed with features that enhance your music listening experience. With Substreamer, your music is always at your fingertips, just the way you like it.",instructions:null,changeLog:[{date:"2023-3-13",description:"first release"}],links:[{label:"Community",url:"https://reddit.com/substreamer"},{label:"Website",url:"https://substreamerapp.com"}
1],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"substreamer"},appServiceImage:{type:"string",title:"App Service Image",default:"ghenry22/substreamer:6.0.43"}}},benefits:[{title:"Your Music, Your Way",description:"Substreamer allows you to access and enjoy your music in your own style. It's a free client app for the Subsonic music server, designed to deliver your music, your way."},{title:"Compatibility with Subsonic Forks",description:"Substreamer works seamlessly with Subsonic forks such as Airsonic, Madsonic, and others that implement the Subsonic API v1.13 or higher, including Navidrome and Ampache."},{title:"Organize Your Music Library",description:"With the original Subsonic server, Substreamer helps you get started in organizing your music library for a more streamlined and personalized listening experience."}],features:[{title:"Free and Fully Featured",description:"Substreamer is a free client for Subsonic servers, packed with features to enhance your music listening experience."},{title:"Subsonic Server",description:"Substreamer works with the original Subsonic server, allowing you to organize and manage your music library effectively."},{title:"Subsonic Forks",description:"The app is compatible with Subsonic forks such as Airsonic, Madsonic, and others, offering you a wide range of options for your music server."}],tags:["Music","Streaming","Server"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8081}],mounts:[{type:"volume",name:"data",mountPath:"/usr/share/nginx/html"}]}}),{services:t}}},{slug:"suggestarr",meta:{name:"SuggestArr",description:"SuggestArr is a self-hosted media automation tool that monitors recently watched content from Jellyfin, Plex, or Emby, discovers similar movies and TV shows via the TMDb API, and automatically submits download requests to Jellyseerr or Overseerr. It runs on a configurable cron schedule, supports AI-powered recommendations through any OpenAI-compatible LLM (Ollama, OpenRouter, etc.), and provides a web UI for managing services, schedules, users, and real-time logs. All data is persisted to a single SQLite database stored in the config volume \u2014 no external database is required.",instructions:"After deployment open the app URL. A setup wizard will guide you through creating an admin account, entering your TMDb API key, connecting your media server (Jellyfin, Plex, or Emby), and configuring your Jellyseerr or Overseerr instance. Optionally link Trakt accounts per-user from the Profile page after setup.",changeLog:[{date:"2026-07-01",description:"first release (v2.9.1)"}],links:[{label:"Website",url:"https://giuseppe99barchetta.github.io/SuggestArr/"},{label:"GitHub",url:"https://github.com/giuseppe99barchetta/SuggestArr"},{label:"Documentation",url:"https://giuseppe99barchetta.github.io/SuggestArr/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"suggestarr"},appServiceImage:{type:"string",title:"App Service Image",default:"ciuse99/suggestarr:v2.9.1"}}},benefits:[{title:"Automatic Media Suggestions",description:"Monitors what you and your users recently watched and automatically requests similar content \u2014 no manual searching or queue management needed."},{title:"Multi-Server Support",description:"Works with Jellyfin, Plex, and Emby media servers and submits requests to either Jellyseerr or Overseerr, fitting into your existing *arr stack without changes."},{title:"AI-Powered Recommendations",description:"Optionally routes suggestion queries through any OpenAI-compatible LLM (Ollama, OpenRouter, OpenAI) for higher-quality, context-aware recommendations beyond TMDb similarity."}],features:[{title:"Cron-Scheduled Automation",description:"Runs discovery and request jobs on a configurable schedule so new suggestions are queued regularly without manual triggers."},{title:"Per-User Tracking",description:"Tracks watch history per user and tailors suggestions individually, allowing fine-grained control over who gets automated requests."},{title:"Trakt Integration",description:"Links Trakt accounts per-user via OAuth to enrich watch history with ratings and list data for better recommendations."},{title:"Real-Time Logs and Web UI",description:"Built-in web interface shows live job logs, request history, and service connection status so you can monitor activity without SSHing into the container."},{title:"TMDb-Powered Discovery",description:"Uses the TMDb API to find similar titles, fetch metadata, and check availability before submitting requests to your Seer instance."}],tags:["Media","Automation","Recommendation","Jellyfin","Plex","Servarr","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["SUGGESTARR_PORT=5000","LOG_LEVEL=INFO","TZ=Etc/UTC","ALLOW_REGISTRATION=false","AUTH_MODE=enabled"].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/app/config/config_files"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}]}}),{services:t}}},{slug:"suitecrm",meta:{name:"SuiteCRM",description:"SuiteCRM is the world's leading Open Source CRM, designed to help you sell, market, and service smarter. This feature-rich, enterprise-ready alternative to Salesforce offers all the benefits of CRM at a significantly lower cost, with the freedom and flexibility of Open Source. With SuiteCRM, you can gain a 360-degree view of your customers by creating a central repository for all your customer data, enabling you to gain key insights to enhance and nurture your business relationships. The platform is highly customizable and easy to use, with hundreds of extensions and integrations. SuiteCRM 8, our most advanced upgrade to date, promises to give you better control of your data and business solutions. The platform also allows for seamless integration with core business systems using our open REST API, enhancing productivity across your organization. With SuiteCRM, you can automate key actions, improve efficiency, understand your customers' needs, convert more leads, and engage your customers more effectively with personalized experiences and consistent messaging. It also empowers your customer service team to service smarter, faster, and more professionally.",instructions:null,changeLog:[{date:"2023-1-12",description:"first release"},{date:"2023-07-12",description:"Added default user registration"},{date:"2025-03-03",description:"Version bumped to 8.8.0"},{date:"2026-05-07",description:"Version bumped to 8.8.1-debian-12-r3"}],links:[{label:"Website",url:"https://suitecrm.com/"},{label:"Documentation",url:"https://docs.suitecrm.com/"},{label:"Github",url:"https://github.com/salesagility/SuiteCRM"}],contributors:[{name:"Mxrcy",url:"https://github.com/DrMxrcy"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{suitecrmUsername:{type:"string",title:"Username",default:"admin"},suitecrmPassword:{type:"string",title:"Password"},suitecrmEmail:{type:"string",title:"Email",default:"[email protected]"}
1,appServiceName:{type:"string",title:"App Service Name",default:"suitecrm"},appServiceImage:{type:"string",title:"App Service Image",default:"bitnamilegacy/suitecrm:8.8.1-debian-12-r3"},databaseServiceName:{type:"string",title:"Database Service Name",default:"suitecrm-db"}}},benefits:[{title:"Cost-Effective CRM Solution",description:"SuiteCRM is a feature-rich enterprise-ready alternative to Salesforce, providing all the benefits of CRM at substantially lower costs. It offers the freedoms and flexibility of Open Source, allowing you to dramatically reduce your total cost of ownership."},{title:"Enhanced Business Relationships",description:"SuiteCRM enables you to create a central repository for all your customer data, providing key insights that can be used to enhance and nurture your business relationships."},{title:"Increased Productivity",description:"With SuiteCRM, you can increase productivity across your organisation. Its open REST API allows you to integrate CRM with core business systems, enabling you to share and collaborate across any boun
1daries."},{title:"Improved Customer Satisfaction",description:"SuiteCRM empowers your customer service team with the tools that will allow them to service smarter, faster and more professionally, thereby improving customer satisfaction."}],features:[{title:"360 Degree View",description:"Know your customer by creating a central repository for all your customer data enabling you to gain key insights that can be used to enhance and nurture your business relationships."},{title:"Integration",description:"Increase productivity across your organisation using our open REST API allowing you to integrate CRM with core business systems, enabling you to share and collaborate across any boundaries."},{title:"Powerful Reporting and Dashboards",description:"Our powerful reporting and dashboards give you quick visibility of key metrics to support your business."},{title:"Personalised Quotations",description:"Our Open Source CRM provides you with all the tools to capture important leads, manage your opportunities and create personalised quotations freeing up precious time to sell."},{title:"Customer Segmentation and Targeted Marketing",description:"Automate customer segmentation, send targeted marketing content and track important activity to generate more leads and feed the funnel."}],tags:["CRM"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SUITECRM_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"SUITECRM_DATABASE_PORT_NUMBER=3306","SUITECRM_DATABASE_NAME=$(PROJECT_NAME)","SUITECRM_DATABASE_USER=mariadb","SUITECRM_DATABASE_PASSWORD=".concat(a),"SUITECRM_HOST=$(PRIMARY_DOMAIN)","SUITECRM_USERNAME=".concat(e.suitecrmUsername),"SUITECRM_PASSWORD=".concat(e.suitecrmPassword),"SUITECRM_EMAIL=".concat(e.suitecrmEmail)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"vendor",mountPath:"/bitnami/suitecrm"}]}}),t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"supabase",meta:{name:"Supabase",description:"Supabase is an open source Firebase alternative. Supabase is built on top of Postgres, and it's easy to set up and use. Supabase is also completely free to use, and it's completely open source.",instructions:"Username is `supabase` and password is `this_password_is_insecure_and_should_be_updated`. You can change these by editing the environment variables.",changeLog:[{date:"2024-7-26",description:"first release"}],links:[{label:"Website",url:"https://supabase.com/"},{label:"Documentation",url:"https://supabase.com/docs"},{label:"Github",url:"https://github.com/supabase/supabase"}],contributors:[{name:"Serban Alexandru",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["serviceName"],properties:{serviceName:{type:"string",title:"Service Name",default:"supabase"}}},logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"compose",data:{serviceName:e.serviceName,source:{type:"git",repo:"https://github.com/easypanel-io/compose.git",ref:"18-05-2026",rootPath:"/supabase/code",composeFile:"docker-compose.yml"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3,service:"kong"}]}}),{services:t}}},{slug:"supertokens-core",meta:{name:"Supertokens Core",description:"SuperTokens is an advanced user authentication solution designed to streamline your app's security. It offers a range of features including user roles, two-factor authentication (2FA), Single Sign-On (SSO) with platforms like AD and Okta, session management, user management, account linking, and machine authentication. The app is trusted by startups and enterprises alike for its ease of setup and use. With SuperTokens, you can host your login page on your own domain, eliminating the need for redirects. It also provides prebuilt UIs and frontend SDKs to help you build your own login page quickly. SuperTokens is also capable of handling multitenant SSO, allowing each customer to have their own user pool. Loved by the world's best teams, SuperTokens is your go-to solution for user authentication and session management.",instructions:"Check environment tab for your API key",changeLog:[{date:"2023-2-22",description:"first release"},{date:"2025-03-03",description:"Version bumped to 10.0.2"},{date:"2025-07-25",description:"Version bumped to 11.0.4"},{date:"2025-12-29",description:"Version bumped to 11.3.0"},{date:"2026-05-07",description:"Version bumped to 11.4.4"}],links:[{label:"Website",url:"https://supertokens.com/"},{label:"Documentation",url:"https://supertokens.com/docs"},{label:"Github",url:"https://github.com/supertokens"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"supertokens-core"},appServiceImage:{type:"string",title:"App Service Image",default:"supertokens/supertokens-postgresql:11.4.4"},databaseServiceName:{type:"string",title:"Database Service Name",default:"supertokens-core-db"}}},benefits:[{title:"Fast and Controlled User Authentication",description:"SuperTokens allows you to build user authentication quickly while maintaining control. It is trusted by startups and enterprises alike, and can be set up in just 5 minutes."},{title:"Prebuilt UI and Customizable Login Page",description:"With prebuilt UI hosted on your domain, there are no more redirects. You can also use our frontend SDKs and helper functions to build your own login page quickly."},{title:"Comprehensive User Management",description:"SuperTokens provides everything you need for user management, including user roles, 2FA, SSO (AD, Okta), session management, account linking, and machine auth."},{title:"Multitenant SSO",description:"Configure sign up with Okta, Microsoft AD and SAML per customer. Each customer has their own user pool."}],features:[{title:"User Roles and 2FA",description:"SuperTokens allows you to assign user roles and implement two-factor authentication for added security."},{title:"Single Sign-On (SSO)",description:"SuperTokens supports SSO with AD, Okta, and other platforms, allowing users to log in with a single set of credentials."},{title:"Session Management",description:"SuperTokens provides robust session management capabilities, allowing you to effectively manage user sessions."},{title:"Account Linking",description:"With SuperTokens, you can link multiple user accounts, making it easier to manage users with multiple accounts."},{title:"Machine Auth",description:"SuperTokens supports machine auth, allowing you to authenticate machines in addition to users."}],tags:["Developer Tools","Security"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["POSTGRESQL_USER=postgres","POSTGRESQL_PORT=5432","POSTGRESQL_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"POSTGRESQL_DATABASE_NAME=$(PROJECT_NAME)","POSTGRESQL_PASSWORD=".concat(i),"API_KEYS=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3567}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"sure",meta:{name:"Sure",description:"Sure is a self-hosted personal finance management application built with Ruby on Rails. It helps individuals and families track expenses, manage budgets, monitor income, and gain insights into their financial health. Sure features an intuitive interface for recording transactions, categorizing expenses, creating budgets, and generating financial reports. With real-time data processing via Sidekiq background jobs and optional AI-powered features through OpenAI integration, Sure provides intelligent financial insights, spending pattern analysis, and automated categorization. Built for privacy-conscious users, Sure keeps all your financial data on your own infrastructure without sharing sensitive information with third-party services. Perfect for anyone seeking complete control over their personal finance tracking and analysis.",instructions:null,changeLog:[{date:"2025-11-17",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to 0.6.8-alpha.13"},{date:"2026-05-07",description:"Version bumped to 0.7.1-alpha.3"}],links:[{label:"Github",url:"https://github.com/we-promise/sure"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"sure"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/we-promise/sure:0.7.1-alpha.3"},openaiToken:{type:"string",title:"OpenAI API Token (Optional - for AI features)",default:""}}},benefits:[{title:"Complete Financial Privacy",description:"Keep all your financial data on your own infrastructure. Your sensitive banking information, transactions, and spending habits never leave your server."},{title:"AI-Powered Insights",description:"Optional OpenAI integration provides intelligent spending analysis, automated transaction categorization, and personalized financial recommendations."},{title:"Real-Time Financial Tracking",description:"Background job processing with Sidekiq ensures instant transaction updates, budget calculations, and financial report generation."}],features:[{title:"Expense Tracking",description:"Record and categorize all your expenses with detailed transaction history, receipts, and notes for comprehensive financial tracking."},{title:"Budget Management",description:"Create custom budgets for different categories, set spending limits, and receive alerts when approaching or exceeding budget thresholds."},{title:"Income Monitoring",description:"Track multiple income sources, monitor cash flow, and analyze earning patterns over time with detailed reporting."},{title:"Financial Reports",description:"Generate comprehensive financial reports including spending summaries, category breakdowns, trends analysis, and custom date ranges."},{title:"Automated Categorization",description:"Use AI-powered transaction categorization to automatically organize expenses and income with smart pattern recognition."},{title:"Multi-Currency Support",description:"Track finances in multiple currencies with automatic conversion and support for international transactions."}],tags:["Finance","Personal Finance","Budget","Expense Tracker","Money Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(64),n=["POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"POSTGRES_DB=$(PROJECT_NAME)","SECRET_KEY_BASE=".concat(o),"SELF_HOSTED=true","RAILS_FORCE_SSL=false","RAILS_ASSUME_SSL=false","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=5432","REDIS_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379/1")];return e.openaiToken&&n.push("OPENAI_ACCESS_TOKEN=".concat(e.openaiToken)),t.push({type:"app",data:{serviceName:e.appServiceName,env:n.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"storage",mountPath:"/rails/storage"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:n.join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"bundle exec sidekiq"},mounts:[{type:"volume",name:"storage",mountPath:"/rails/storage"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"surmai",meta:{name:"Surmai",description:"Surmai is a personal and family travel organizer\u2014a Progressive Web App for collaborative trip planning with privacy-first, self-hosted data. Built on PocketBase, it helps you keep itineraries, bookings, documents, and trip details in one place, with multi-user collaboration and offline-friendly access. The stack exposes the web UI on port 8080 and persists PocketBase data under /pb_data.",instructions:"After deploy, sign in with the admin email you configured and the password\nshown in the service environment (SURMAI_ADMIN_PASSWORD)\u2014it is auto-generated\nfor a strong default. Change it after first login if you like. See\nhttps://surmai.app/documentation/installation for Docker details.\n",changeLog:[{date:"2026-03-23",description:"Accurate travel-organizer description; image v0.4.16; auto-generated admin password (randomPassword)."},{date:"2025-01-21",description:"Initial Template Release"},{date:"2026-05-07",description:"Version bumped to v0.5.0"}],links:[{label:"Website",url:"https://surmai.app/"},{label:"Documentation",url:"https://surmai.app/documentation/"}
1,{label:"GitHub",url:"https://github.com/rohitkumbhar/surmai"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminEmail"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"surmai"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/rohitkumbhar/surmai:v0.5.0"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]",description:"Initial Surmai administrator email (PocketBase admin)"}}},benefits:[{title:"Trip planning in one place",description:"Organize itineraries, bookings, and trip artifacts collaboratively instead of scattered inboxes and notes."},{title:"Privacy",description:"Self-hosted PocketBase backend\u2014your travel data stays on your server."},{title:"Collaborative",description:"Multiple people can plan together while keeping access under your control."},{title:"PWA & mobile-friendly",description:"Installable as a Progressive Web App for easier access on phones during travel."}],features:[{title:"PocketBase backend",description:"PocketBase powers the API; data lives in /pb_data with a volume for persistence."},{title:"Travel-focused workflow",description:"Built for real trip planning (alpha-stage; project under active development)."},{title:"Admin bootstrap",description:"SURMAI_ADMIN_EMAIL and a strong auto-generated SURMAI_ADMIN_PASSWORD on first deploy."},{title:"Docker deployment",description:"Official image from ghcr.io/rohitkumbhar/surmai with documented installation."}],tags:["Travel","Trip Planning","Self-Hosted","PocketBase","PWA","Collaboration"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["SURMAI_ADMIN_EMAIL=".concat(e.adminEmail),"SURMAI_ADMIN_PASSWORD=".concat(a),"PB_DATA_DIRECTORY=/pb_data"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/pb_data"}]}}),{services:t}}},{slug:"suwayomi-server",meta:{name:"Suwayomi Server",description:"Suwayomi Server is a free and open source manga reader server that runs on the desktop and mobile. It provides a web interface for reading manga from various sources and supports multiple extensions. Suwayomi Server allows you to organize your manga library, track reading progress, and access your collection from any device through a modern web interface.",instructions:null,changeLog:[{date:"2025-09-12",description:"Template Release"},{date:"2025-12-29",description:"Version bumped to v2.1.2031"},{date:"2026-02-24",description:"Version bumped to v2.1.2087"},{date:"2026-05-07",description:"Version bumped to v2.1.2099"}],links:[{label:"Documentation",url:"https://suwayomi.org/"},{label:"Github",url:"https://github.com/Suwayomi/Suwayomi-Server"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"suwayomi-server"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/suwayomi/suwayomi-server:v2.1.2099"}}},benefits:[{title:"Free and Open Source",description:"Suwayomi Server is completely free and open source, giving you full control over your manga reading experience without any subscription fees."},{title:"Multi-Source Support",description:"Access manga from various sources through a unified interface with support for multiple extensions and catalogs."},{title:"Cross-Platform Access",description:"Read your manga collection from any device with a web browser, including desktop computers, tablets, and smartphones."}],features:[{title:"Web-Based Reader",description:"Modern web interface for reading manga with features like zoom, page navigation, and reading progress tracking."},{title:"Library Management",description:"Organize your manga collection with categories, favorites, and custom reading lists for easy browsing and management."},{title:"Extension Support",description:"Extend functionality with various extensions to access different manga sources and catalogs from around the web."},{title:"Reading Progress Tracking",description:"Track your reading progress across different manga series and resume reading from where you left off on any device."},{title:"Download Management",description:"Download manga chapters for offline reading with automatic organization and storage management."},{title:"User Management",description:"Support for multiple users with individual reading progress and personalized library organization."}],tags:["Manga Reader","Digital Library","Reading","Self-Hosted","Web Interface","Comics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4567}],mounts:[{type:"volume",name:"downloads",mountPath:"/home/suwayomi/.local/share/Tachidesk/downloads"},{type:"volume",name:"files",mountPath:"/home/suwayomi/.local/share/Tachidesk"}]}}),{services:t}}},{slug:"swetrix",meta:{name:"Swetrix",description:"Swetrix is a powerful, privacy-focused analytics platform that provides comprehensive website and application analytics. Built with modern technologies, it offers real-time data collection, beautiful dashboards, and detailed insights into user behavior. Features include event tracking, performance monitoring, user session analysis, and customizable reports. Self-hosted solution that ensures complete data privacy and control while providing enterprise-grade analytics capabilities.",instructions:"After deployment, open the Swetrix frontend URL and click Sign Up to create your account. Once registered, log in with your credentials to access the dashboard.",changeLog:[{date:"2025-06-03",description:"First release (v3.3.1)"},{date:"2025-12-29",description:"Version bumped to v4.1.0"},{date:"2026-05-21",description:"Version bumped to v5.2.2, ClickHouse pinned to 24.8 (26.4 breaks user table)"}],links:[{label:"GitHub",url:"https://github.com/Swetrix/swetrix"},{label:"Website",url:"https://swetrix.com"},{label:"Documentation",url:"https://docs.swetrix.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","frontendImage","apiImage","clickhouseImage"],properties:{appServiceName:{type:"string",title:"Service Name",default:"swetrix"},frontendImage:{type:"string",title:"Frontend Image",default:"swetrix/swetrix-fe:v5.2.2"},apiImage:{type:"string",title:"API Image",default:"swetrix/swetrix-api:v5.2.2"},clickhouseImage:{type:"string",title:"ClickHouse Image",default:"clickhouse/clickhouse-server:24.8-alpine"}}},benefits:[{title:"Privacy-Focused",description:"Complete control over your analytics data with self-hosting."},{title:"Real-time Analytics",description:"Monitor website and application performance in real-time."},{title:"Modern Interface",description:"Beautiful, intuitive dashboard for visualizing analytics data."},{title:"High Performance",description:"Built with ClickHouse for fast query processing and Redis for caching."}],features:[{title:"Website Analytics",description:"Comprehensive tracking of page views, user sessions, and interactions."},{title:"Event Tracking",description:"Custom event tracking for detailed user behavior analysis."},{title:"Performance Monitoring",description:"Monitor page load times and application performance metrics."},{title:"Real-time Dashboard",description:"Live analytics dashboard with customizable charts and reports."},{title:"API Access",description:"RESTful API for programmatic access to analytics data."}],tags:["Analytics","Privacy","Self-Hosted","Real-time","Dashboard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64),i=y(64),o=v(),n=v(),r=y(64);return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-frontend"),source:{type:"image",image:e.frontendImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["API_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-api.$(EASYPANEL_HOST)")].join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),source:{type:"image",image:e.apiImage},env:["JWT_ACCESS_TOKEN_SECRET=".concat(a),"JWT_REFRESH_TOKEN_SECRET=".concat(i),"API_KEY=".concat(r),"IP_GEOLOCATION_DB_PATH=","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PASSWORD=".concat(o),"CLICKHOUSE_HOST=http://$(PROJECT_NAME)-".concat(e.appServiceName,"-clickhouse"),"CLICKHOUSE_PORT=8123","CLICKHOUSE_USER=default","CLICKHOUSE_PASSWORD=".concat(n),"CLICKHOUSE_DATABASE=analytics"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:5005}]}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-clickhouse"),source:{type:"image",image:e.clickhouseImage},env:["CLICKHOUSE_DB=analytics","CLICKHOUSE_USER=default","CLICKHOUSE_PASSWORD=".concat(n)].join("\n"),mounts:[{type:"volume",name:"clickhouse-data",mountPath:"/var/lib/clickhouse"},{type:"volume",name:"clickhouse-config",mountPath:"/etc/clickhouse-server/config.d"}]}}),{services:t}}},{slug:"swingmusic",meta:{name:"Swingmusic",description:"Swingmusic is a beautiful, self-hosted music player and streaming server for your personal music collection. It provides a modern, intuitive web interface that allows you to stream your music library from anywhere. With supp
1ort for various audio formats and a clean, responsive design, Swingmusic makes it easy to enjoy your music collection across all your devices. The application offers features like playlist management, search functionality, and album artwork display, making it a perfect alternative to commercial streaming services for those who want to keep their music library private and under their control.",instructions:"Default credentials are admin/admin",changeLog:[{date:"2025-10-22",description:"Initial Template Release"},{date:"2026-05-07",description:"Version bumped to v2.1.10"}],links:[{label:"GitHub",url:"https://github.com/swingmx/swingmusic"},{label:"Documentation",url:"https://github.com/swingmx/swingmusic#readme"},{label:"Demo",url:"https://swingmx.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"swingmusic"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/swingmx/swingmusic:v2.1.10",description:"Swingmusic Docker image from GitHub Container Registry"}}},benefits:[{title:"Self-Hosted Music Streaming",description:"Host your own music streaming server to access your personal music collection from anywhere without relying on commercial streaming services or subscriptions."},{title:"Privacy & Control",description:"Keep your music library completely private on your own infrastructure with full control over your data and listening habits without third-party tracking."},{title:"Modern Web Interface",description:"Enjoy a beautiful, responsive web interface that works seamlessly across desktop, tablet, and mobile devices for a consistent listening experience."},{title:"Format Support",description:"Play your music collection regardless of format with broad audio file support, eliminating the need to convert your existing library."}],features:[{title:"Music Library Management",description:"Organize and browse your entire music collection with support for artists, albums, tracks, and automatic metadata extraction from audio files."},{title:"Playlist Creation",description:"Create and manage custom playlists to organize your favorite tracks and enjoy curated listening experiences tailored to your preferences."},{title:"Search & Discovery",description:"Quickly find any song, album, or artist in your collection with powerful search functionality and intuitive browsing capabilities."},{title:"Album Artwork Display",description:"Automatically display embedded album artwork from your audio files for a visually rich music browsing and playback experience."},{title:"Web-Based Player",description:"Stream your music through any modern web browser without requiring additional software or plugins on your devices."},{title:"Responsive Design",description:"Access your music library from any device with a fully responsive interface that adapts to different screen sizes and orientations."}],tags:["Music","Media Server","Self-Hosted","Streaming","Music Player","Audio","Entertainment","Personal Media"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:1970}],mounts:[{type:"volume",name:"music",mountPath:"/music"},{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"syncthing",meta:{name:"Syncthing",description:"Syncthing is a powerful, real-time file synchronization program designed to keep your data secure and under your control. It enables the synchronization of files between two or more computers, ensuring your data is always up-to-date across your devices. Syncthing prioritizes your privacy and security, with no data ever stored on a central server that could be compromised. All communication is encrypted and authenticated, with only devices you have explicitly allowed able to connect to your other devices. The app is easy to use, with a responsive and powerful interface accessible via your browser. It works across various operating systems including Mac OS X, Windows, Linux, FreeBSD, Solaris, OpenBSD, and many others. Syncthing doesn't require complex configuration or IP addresses, it simply works, over LAN and over the Internet. You can synchronize as many folders as you need with different people or just between your own devices.",instructions:null,changeLog:[{date:"2023-07-10",description:"First Release"},{date:"2025-03-03",description:"Version bumped to 1.29"},{date:"2025-07-25",description:"Version bumped to 1.30"}],links:[{label:"Website",url:"https://syncthing.net"},{label:"Docs",url:"https://docs.syncthing.net"},{label:"GitHub",url:"https://github.com/syncthing/syncthing"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"syncthing"},appServiceImage:{type:"string",title:"App Service Image",default:"syncthing/syncthing:1.30"}}},benefits:[{title:"Continuous File Synchronization",description:"Syncthing is a real-time file synchronization program that keeps your files updated across multiple computers. It ensures that your data is always current, no matter where you access it from."},{title:"Private & Secure",description:"Your data is stored only on your computers, with no central server that could be compromised. All communication is encrypted and authenticated, ensuring your data is safe from prying eyes."},{title:"Open and Transparent",description:"Syncthing operates on an open protocol with all source code available on GitHub. There are no hidden processes, and any bugs found are immediately visible for anyone to browse."},{title:"Easy to Use",description:"Syncthing is powerful yet simple to use. You can synchronize as many folders as you need with different people or just between your own devices. It doesn\u2019t need IP addresses or advanced configuration: it just works, over LAN and over the Internet."}],features:[{title:"Real-Time Synchronization",description:"Syncthing synchronizes files between two or more computers in real time, ensuring your data is always up-to-date."},{title:"Private and Secure",description:"Syncthing uses TLS for secure communication, includes perfect forward secrecy to prevent any eavesdropper from ever gaining access to your data, and only allows connections from devices you have explicitly allowed."},{title:"Open Protocol",description:"The protocol used by Syncthing is a documented specification with no hidden processes. All source code is available on GitHub."},{title:"Powerful Interface",description:"Configure and monitor Syncthing via a responsive and powerful interface accessible via your browser. It works on multiple platforms including Mac OS X, Windows, Linux, FreeBSD, Solaris, OpenBSD, and many others."}],tags:["File Management","Security","Privacy"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8384}],mounts:[{type:"volume",name:"data",mountPath:"/var/syncthing"}],ports:[{published:22e3,target:22e3,protocol:"tcp"},{published:22e3,target:22e3,protocol:"udp"},{published:21027,target:21027,protocol:"udp"}]}}),{services:t}}},{slug:"tandoor",meta:{name:"Tandoor",description:"Tandoor is an online recipe management app designed to help you manage and grow your recipe collection. It allows you to drop your collection of links and notes, and provides a platform for recipe management, storage, sharing, and collaborative cooking. Tandoor is equipped with a powerful fuzzy search engine that helps you find your recipes faster. You can search for keywords, ingredients and more. The app also allows you to import your favorite recipes from thousands of websites online, and if you already have a digital recipe collection, you can import your data from many other managers. Tandoor also provides the functionality to create shopping lists for your recipes, making meal planning and shopping a breeze. It's the perfect tool for cooking enthusiasts looking to digitize and share their cookbooks and recipes.",instructions:null,changeLog:[{date:"2023-04-10",description:"first release"},{date:"2025-03-03",description:"Version bumped to 1.5.31"},{date:"2025-07-25",description:"Version bumped to 1.5.35"}],links:[{label:"Website",url:"https://tandoor.dev"},{label:"Documentation",url:"https://docs.tandoor.dev"},{label:"Github",url:"https://github.com/TandoorRecipes/recipes"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tandoor"},appServiceImage:{type:"string",title:"App Service Image",default:"vabene1111/recipes:1.5.35"},databaseServiceName:{type:"string",title:"Database Service Name",default:"tandoor-db"}}},benefits:[{title:"Online Recipe Management",description:"Tandoor allows you to manage your ever-growing recipe collection online. No more searching through notes, books, or websites. All your cherished meals can be collected in one place using Tandoor."},{title:"Efficient Meal Planning",description:"With Tandoor, you can plan meals for yourself and your family. It allows you to create shopping lists for days or weeks at a time, making meal preparation a breeze."},{title:"Easy Recipe Sharing",description:"Tandoor makes it easy to share your recipes with family and friends. Just add them to your space and they can cook, improve, or expand your collection."}],features:[{title:"Powerful Search",description:"Tandoor comes with a powerful fuzzy search engine that helps you find your recipes faster. You can search for keywords, ingredients, and more."},{title:"Import & Export",description:"Tandoor allows you to import your digital recipe collection from many other managers. You can also export all your data at any time, ensuring you're never locked in."},{title:"Website Import",description:"Tandoor lets you import your favorite recipes from thousands of websites online. It works with all of your favorite recipe sharing platforms."},{title:"Shopping Lists",description:"Tandoor provides the functionality to create shopping lists from your recipes. These lists are automatically sorted according to your supermarket layout."}],tags:["Recipe Management","Cooking","Meal Planning"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["SECRET_KEY=".concat(a),"DB_ENGINE=django.db.backends.postgresql","POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"POSTGRES_PORT=5432","POSTGRES_PASSWORD=".concat(i),"POSTGRES_USER=postgres","POSTGRES_DB=$(PROJECT_NAME)","GUNICORN_MEDIA=1","DEBUG=0","ENABLE_PDF_EXPORT=1"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"media",mountPath:"/opt/recipes/mediafiles"},{type:"volume",name:"static",mountPath:"/opt/recipes/staticfiles"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"taskcafe",meta:{name:"TaskCafe",description:"TaskCafe is a modern, open-source project management tool that helps teams organize and track their work. It provides an intuitive interface for managing projects, tasks, and collaborations with features similar to Trello and other project management tools.",instructions:"After installation, access the web interface through the provided domain to start managing your projects and tasks.",changeLog:[{date:"2025-04-10",description:"First Release"},{date:"2026-05-07",description:"Version bumped to 0.3.6"}],links:[{label:"Github",url:"https://github.com/JordanKnott/taskcafe"},{label:"Documentation",url:"https://github.com/JordanKnott/taskcafe/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"taskcafe"},appServiceImage:{type:"string",title:"App Service Image",default:"taskcafe/taskcafe:0.3.6"}}},benefits:[{title:"Project Management",description:"Organize and track projects with an intuitive interface."},{title:"Task Organization",description:"Create, manage, and track tasks efficiently."},{title:"Team Collaboration",description:"Work together with team members on projects and tasks."},{title:"File Uploads",description:"Upload and attach files to tasks and projects."},{title:"Database Persistence",description:"Reliable PostgreSQL database for data storage."}],features:[{title:"Project Boards",description:"Visual boards for organizing and tracking tasks."},{title:"Task Management",description:"Create, assign, and track tasks with detailed information."},{title:"File Attachments",description:"Upload and manage files related to tasks."},{title:"User Management",description:"Manage team members and their access."},{title:"Modern Interface",description:"Clean and intuitive web interface for project management."}],tags:["Project Management","Task Tracking","Collaboration","Team","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3333}],env:["TASKCAFE_DATABASE_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"TASKCAFE_DATABASE_USER=postgres","TASKCAFE_DATABASE_PASSWORD=".concat(a),"TASKCAFE_DATABASE_NAME=$(PROJECT_NAME)","TASKCAFE_MIGRATE=true"].join("\n"),mounts:[{type:"volume",name:"uploads",mountPath:"/root/uploads"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"tautulli",meta:{name:"Tautuilli",description:"Tautulli is a powerful web application designed to monitor, analyze, and notify you about your Plex Media Server's activities. It runs alongside your Plex Media Server, tracking a variety of statistics including what has been watched, who watched it, when and where it was watched, and how it was watched. The app presents all these statistics in a clean, user-friendly interface with tables and graphs. Tautulli also allows you to monitor current activity on your Plex Media Server, log watch history for all your users, view streaming trends with intuitive graphs, trigger notifications or scripts from events on your Plex server, and keep track of when content is added to your Plex library. You can also create and send newsletters for recently added media, view and delete all synced content from your server, see detailed information on all of your media, and even download the official app to view activity and stats on the go. Tautulli is compatible with any system that supports python.",instructions:null,changeLog:[{date:"2023-1-26",description:"first release"},{date:"2025-03-03",description:"Version bumped to 2.15.1"},{date:"2025-07-25",description:"Version bumped to 2.15.2"},{date:"2025-12-29",description:"Version bumped to 2.16.0"},{date:"2026-02-24",description:"Version bumped to 2.16.1"},{date:"2026-05-07",description:"Version bumped to 2.17.1"}],links:[{label:"Website",url:"https://tautulli.com/"},{label:"Github",url:"https://github.com/Tautulli/Tautulli"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tautuilli"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/tautulli:2.17.1"}}},benefits:[{title:"Comprehensive Monitoring",description:"Tautulli provides a complete overview of your Plex Media Server activity. It allows you to keep track of what has been watched, who watched it, when and where they watched it, and how it was watched."},{title:"Detailed Analytics",description:"With Tautulli, you can view detailed statistics about your Plex library. The app presents all statistics in a clean and intuitive interface with tables and graphs, making it easy to understand your server's performance."},{title:"Real-time Notifications",description:"Tautulli allows you to set up notifications or scripts triggered by events on your Plex server. This feature ensures you are always up-to-date with your server's activity."},{title:"Content Management",description:"Tautulli helps you manage your Plex library by keeping track of when content is added. It also allows you to view and delete all synced content from your server."}],features:[{title:"Monitoring",description:"Monitor the current activity on your Plex Media Server."},{title:"Statistics",description:"View statistics about your Plex library."},{title:"History",description:"Log watch history for all your users."},{title:"Graphs",description:"View streaming trends with intuitive graphs."},{title:"Notifications",description:"Trigger notifications or scripts from events on your Plex server."},{title:"Recently Added",description:"Keep track of when content is added to your Plex library."},{title:"Newsletters",description:"Create and send newsletters for recently added media."},{title:"Sync",description:"View and delete all synced content from your server."},{title:"Media Info",description:"See detailed information on all of your media."},{title:"Cross Platform",description:"Works on any system that supports python."},{title:"Tautulli Remote",description:"Download the official app to view activity and stats on the go."}],tags:["Monitoring","Media"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:8181}]}}),{services:t}}},{slug:"teable",meta:{name:"Teable",description:"Teable is a powerful, self-hosted service designed for managing team collaboration and projects efficiently. It offers a clean and user-friendly interface, supports plugins for extended functionality, and provides detailed analytics on team activities. With Teable, you can maintain full control over your data and workflows.",instructions:"Wait for the migration to complete, then start using Teable for managing your projects.",changeLog:[{date:"2025-02-12",description:"Initial Template Release"},{date:"2025-07-25",description:"Version bumped to 753fb6ad997f70693688bce057f0c8cf5da8e6ee"},{date:"2025-12-29",description:"Version bumped to d23050009b835ee12b36085b0146b0206c9489d4"},{date:"2026-02-24",description:"Version bumped to bfd290f274cf8b0cc1defe9e1e6fd2b6826fed6b"}],links:[{label:"Documentation",url:"https://teable.io/docs"},{label:"Github",url:"https://github.com/teableio/teable"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","migrationServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"teable"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/teableio/teable:bfd290f274cf8b0cc1defe9e1e6fd2b6826fed6b"},migrationServiceImage:{type:"string",title:"Migration Service Image",default:"ghcr.io/teableio/teable-db-migrate:bfd290f274cf8b0cc1defe9e1e6fd2b6826fed6b"},enableArm:{type:"boolean",title:"Enable Arm",default:!1}}},benefits:[{title:"Efficient Collaboration",description:"Teable simplifies team collaboration and project management through a unified platform."},{title:"Self-Hosted Solution",description:"Stay in control of your data with a self-hosted service, ensuring privacy and flexibility."},{title:"Customizable Workflows",description:"Customize workflows to match your team\u2019s unique processes and enhance productivity."}],features:[{title:"API Access",description:"Integrate Teable with other tools using its flexible API for programmatic access."},{title:"Plugin Support",description:"Extend Teable\u2019s functionality with various plugins to meet specific team needs."},{title:"Activity Analytics",description:"Gain insights into project progress, team activities, and overall performance."},{title:"Task Management",description:"Organize tasks, set priorities, and track progress in one place for effective project management."}],tags:["Project Management","Self-Hosted","Team Collaboration","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TIMEZONE=UTC","PUBLIC_ORIGIN=https://$(PRIMARY_DOMAIN)","PRISMA_DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"PUBLIC_DATABASE_PROXY=127.0.0.1:42345","# Need to support sending emails to enable the following configurations","# You need to modify the configuration according to the actual situation, otherwise it will not be able to send emails correctly.","#BACKEND_MAIL_HOST=smtp.teable.io","#BACKEND_MAIL_PORT=465","#BACKEND_MAIL_SECURE=true","#BACKEND_MAIL_SENDER=noreply.teable.io","#BACKEND_MAIL_SENDER_NAME=Teable","#BACKEND_MAIL_AUTH_USER=username"].join("\n"),source:{type:"image",image:"".concat(e.appServiceImage).concat(e.enableArm?"-arm64":"")},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"app",mountPath:"/app/.assets"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-migration"),env:["TIMEZONE=UTC","PRISMA_DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)")].join("\n"),source:{type:"image",image:"".concat(e.migrationServiceImage).concat(e.enableArm?"-arm64":"")}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"teamcity",meta:{name:"TeamCity",description:"TeamCity is a build management and continuous integration server from JetBrains.",instructions:"After setup, connect your Git repository and create a Build Configuration. If you enabled the bundled agent, it will auto-register to the server; approve it in **Agents** before running your first build.",changeLog:[{date:"2025-04-29",description:"First Release"},{date:"2026-05-07",description:"Version bumped to 2025.11.4"}],links:[{label:"Github",url:"https://github.com/JetBrains/teamcity-docker-images"},{label:"Documentation",url:"https://www.jetbrains.com/help/teamcity/teamcity-docker.html"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","agentServiceImage","enableAgent"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"teamcity"},appServiceImage:{type:"string",title:"App Service Image",default:"jetbrains/teamcity-server:2025.11.4"},agentServiceImage:{type:"string",title:"Agent Service Image",default:"jetbrains/teamcity-agent:2025.11.4"},enableAgent:{type:"boolean",title:"Enable TeamCity Agent",default:!1,description:"Set to true to deploy a TeamCity agent alongside the server"}}},benefits:[{title:"Powerful CI/CD",description:"TeamCity provides a robust platform for continuous integration and deployment with support for various build tools and version control systems."},{title:"User-Friendly Interface",description:"Intuitive web interface makes it easy to configure and monitor your builds and deployments."},{title:"Scalable Architecture",description:"Built to scale with support for multiple build agents and distributed builds."}],features:[{title:"Build Management",description:"Comprehensive build management with support for various build tools and frameworks."},{title:"Version Control Integration",description:"Seamless integration with popular version control systems like Git, SVN, and Mercurial."},{title:"Build Agents",description:"Support for multiple build agents to distribute and parallelize builds."},{title:"Build History",description:"Detailed build history and statistics for better project insights."},{title:"Customizable Workflows",description:"Flexible build configurations and customizable build workflows."},{title:"Containerized",description:"Easy to deploy and manage in containerized environments."}],tags:["CI/CD","Build Server","Continuous Integration","Deployment","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-server"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8111}],mounts:[{type:"volume",name:"data",mountPath:"/data/teamcity_server/datadir"},{type:"volume",name:"logs",mountPath:"/opt/teamcity/logs"}]}}),e.enableAgent&&t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-agent"),env:"SERVER_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-server"),source:{type:"image",image:e.agentServiceImage},mounts:[{type:"volume",name:"agent-conf",mountPath:"/data/teamcity_agent/conf"},{type:"volume",name:"agent-work",mountPath:"/opt/buildagent/work"},{type:"volume",name:"agent-temp",mountPath:"/opt/buildagent/temp"},{type:"volume",name:"agent-tools",mountPath:"/opt/buildagent/tools"},{type:"volume",name:"agent-plugins",mountPath:"/opt/buildagent/plugins"},{type:"volume",name:"agent-system",mountPath:"/opt/buildagent/system"}]}}),{services:t}}},{slug:"teammapper",meta:{name:"TeamMapper",description:"TeamMapper is a powerful team mapping and visualization tool designed to help organizations understand team structures, relationships, and collaboration patterns. It provides an intuitive interface for creating interactive team maps that visualize team members, their roles, departments, and connections. TeamMapper enables teams to better understand their organizational structure, identify collaboration opportunities, and optimize team dynamics. The platform supports real-time updates, customizable visualizations, and comprehensive team analytics to help organizations make data-driven decisions about team composition and workflow optimization.",instructions:"Deploy the stack and open your assigned domain to complete TeamMapper setup. The application connects automatically to the internal PostgreSQL service created by this template. On first startup, create your initial account in the web interface and then configure your organization and team structure. Data is persisted in /app/data and in PostgreSQL volumes, so updates and restarts keep existing content. DELETE_AFTER_DAYS is set to 30 by default in this template. Change it after deploy if your retention requirements differ.",changeLog:[{date:"2025-10-07",description:"First Release"},{date:"2026-03-26",description:"Added setup instructions and corrected registry link label"},{date:"2026-05-07",description:"Version bumped to v0.2.6-1"}],links:[{label:"Website",url:"https://teammapper.io"},{label:"GitHub",url:"https://github.com/b310-digital/teammapper"},{label:"Container registry",url:"https://github.com/b310-digital/teammapper/pkgs/container/teammapper"}
1],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"teammapper"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/b310-digital/teammapper:v0.2.6-1"}}},benefits:[{title:"Team Structure Visualization",description:"Create clear, interactive visualizations of your team structure that help everyone understand roles, responsibilities, and reporting relationships at a glance."},{title:"Collaboration Insights",description:"Identify collaboration patterns and opportunities within your organization to optimize team dynamics and improve cross-functional communication."},{title:"Organizational Clarity",description:"Provide transparency into team composition and structure, helping new team members understand the organization and existing members stay aligned."},{title:"Data-Driven Team Decisions",description:"Use comprehensive team analytics and insights to make informed decisions about team composition, resource allocation, and workflow optimization."}],features:[{title:"Interactive Team Maps",description:"Create dynamic, interactive team maps with drag-and-drop functionality, customizable layouts, and real-time updates to reflect organizational changes."},{title:"Role and Department Mapping",description:"Map team members to their roles, departments, and reporting structures with visual indicators and customizable categorization options."},{title:"Real-Time Updates",description:"Keep team maps current with real-time updates that automatically reflect organizational changes, new hires, role changes, and department restructuring."},{title:"Customizable Visualizations",description:"Customize the appearance of team maps with different layouts, color schemes, and visual elements to match your organization's branding and preferences."},{title:"Team Analytics",description:"Access comprehensive analytics about team composition, collaboration patterns, and organizational metrics to support data-driven decision making."},{title:"Export and Sharing",description:"Export team maps in various formats and share them with stakeholders, making it easy to communicate organizational structure across teams."},{title:"Secure Data Management",description:"Built-in data retention policies and secure database storage ensure sensitive organizational information is protected and managed according to your policies."},{title:"Multi-User Support",description:"Support for multiple users with role-based access control, allowing different team members to view and edit team maps based on their permissions."}],tags:["Team Management","Visualization","Organization","Collaboration","Analytics","Web App","Self-hosted","PostgreSQL"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["MODE=PROD","BINDING=0.0.0.0","POSTGRES_DATABASE=$(PROJECT_NAME)","POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"POSTGRES_PASSWORD=".concat(a),"POSTGRES_PORT=5432","POSTGRES_SSL=false","POSTGRES_SSL_REJECT_UNAUTHORIZED=false","POSTGRES_USER=postgres","POSTGRES_QUERY_TIMEOUT=100000","POSTGRES_STATEMENT_TIMEOUT=100000","DELETE_AFTER_DAYS=30"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"teamspeak",meta:{name:"Teamspeak",description:"TeamSpeak is a powerful and flexible VoIP (Voice over Internet Protocol) application designed for online gaming, business communication, and remote collaboration. It provides crystal-clear voice communication with minimal latency, making it ideal for teams that require real-time coordination. TeamSpeak offers a secure and scalable environment, allowing users to create and manage their own servers with customizable permissions and roles. The application supports a wide range of integrations and plugins, providing extended functionality. TeamSpeak is widely used in gaming communities, corporate environments, and educational institutions for efficient communication.",instructions:null,changeLog:[{date:"2025-01-29",description:"First release"}],links:[{label:"Website",url:"https://www.teamspeak.com/"},{label:"Github",url:"https://github.com/TeamSpeak-Systems"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","queryServerPort","virtualBaseServerPort","fileManagerPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"teamspeak"},appServiceImage:{type:"string",title:"App Service Image",default:"teamspeak:3.13.7"},queryServerPort:{type:"string",title:"Query Server",default:"10011"},virtualBaseServerPort:{type:"string",title:"Virtual Base Server",default:"9987"},fileManagerPort:{type:"string",title:"File Manager Server",default:"30033"}}},benefits:[{title:"High-Quality Voice Communication",description:"TeamSpeak provides superior voice quality with low latency, ensuring seamless real-time communication."},{title:"Self-Hosted & Secure",description:"Users can host their own servers, ensuring privacy, security, and full control over their communication environment."},{title:"Customizable Permissions",description:"TeamSpeak offers a robust permission system, allowing administrators to configure user roles and access levels."},{title:"Scalable & Efficient",description:"Designed to handle small groups to large communities with thousands of participants."}],features:[{title:"Voice Communication",description:"High-quality, low-latency voice chat for seamless communication."},{title:"Server Hosting",description:"Host your own server with full administrative control."},{title:"Permissions System",description:"Manage user roles and permissions with a granular system."},{title:"File Transfers",description:"Securely transfer files directly within TeamSpeak."},{title:"Cross-Platform Support",description:"Available on Windows, macOS, Linux, iOS, and Android."},{title:"Plugins & Add-ons",description:"Extend functionality with community-built plugins and integrations."},{title:"Encryption & Security",description:"End-to-end encryption ensures safe and secure conversations."},{title:"Low Resource Usage",description:"Optimized for minimal CPU and bandwidth consumption."},{title:"Multi-Server Connectivity",description:"Connect to multiple servers simultaneously."},{title:"3D Sound Positioning",description:"Provides a spatial audio experience for immersive communication."}],tags:["VoIP","Communication","Gaming","Business","Secure"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TS3SERVER_DB_PLUGIN=ts3db_mariadb","TS3SERVER_DB_SQLCREATEPATH=create_mariadb","TS3SERVER_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"TS3SERVER_DB_USER=mariadb","TS3SERVER_DB_PASSWORD=".concat(a),"TS3SERVER_DB_NAME=$(PROJECT_NAME)","TS3SERVER_DB_WAITUNTILREADY=30","TS3SERVER_LICENSE=accept"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:9987}],ports:[{published:Number(e.queryServerPort),target:10011,protocol:"tcp"},{published:Number(e.virtualBaseServerPort),target:9987,protocol:"udp"},{published:Number(e.fileManagerPort),target:30033,protocol:"tcp"}]}}),t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"temporal",meta:{name:"Temporal",description:"Temporal is an open-source, self-hosted workflow orchestration engine designed to simplify and enhance the development of scalable, fault-tolerant, and long-running workflows. It empowers developers to build reliable distributed systems by providing built-in state management, automatic retries, and advanced task scheduling. Temporal offers a user-friendly developer experience, powerful SDKs, and seamless integration with various languages, making it ideal for automating complex business processes and microservice orchestration. By providing a self-hosted solution, Temporal ensures data privacy, high availability, and complete control over your workflows and infrastructure.",instructions:null,changeLog:[{date:"2025-01-03",description:"Template Release"},{date:"2025-03-03",description:"Version bumped to 2.36.0 for UI, 1.27.1.0 for server, 1.27 for admin tools."},{date:"2025-10-14",description:"Updated to match docker-compose configuration with correct versions and PostgreSQL credentials. Removed unnecessary domain configurations for internal services."}],links:[{label:"Documentation",url:"https://docs.temporal.io/"}
1,{label:"Github",url:"https://github.com/temporalio/temporal"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","elasticsearchImage","temporalUiImage","temporalAdminImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"temporal"},appServiceImage:{type:"string",title:"App Service Image",default:"temporalio/auto-setup:1.29.0"},elasticsearchImage:{type:"string",title:"Elasticsearch Service Image",default:"elasticsearch:9.1.0"},temporalUiImage:{type:"string",title:"Temporal UI Service Image",default:"temporalio/ui:2.34.0"},temporalAdminImage:{type:"string",title:"Temporal Admin Service Image",default:"temporalio/admin-tools:1.29"}}},benefits:[{title:"Streamlined Workflow Orchestration",description:"Temporal simplifies building and managing distributed workflows, providing an intuitive way to orchestrate complex business processes and long-running tasks."},{title:"Self-Hosted Flexibility",description:"Maintain full control over your workflows and data with a self-hosted setup that ensures privacy, compliance, and high availability."},{title:"Fault-Tolerant and Scalable",description:"Temporal offers built-in fault tolerance, automatic retries, and scalable task execution, ensuring reliability even in highly distributed environments."}],features:[{title:"Powerful SDK Support",description:"Seamlessly integrate Temporal into your applications with robust SDKs for Go, Java, TypeScript, and Python, allowing easy development and deployment of workflows."},{title:"Workflow State Persistence",description:"Automatically persist workflow state and execution history to resume operations from the exact point of failure or interruption."},{title:"Advanced Task Scheduling",description:"Schedule and manage tasks with fine-grained control, enabling time-based or event-driven workflows with ease."},{title:"Built-In Observability",description:"Gain real-time insights into workflow performance, task execution, and bottlenecks with Temporal\u2019s built-in observability tools."}],tags:["Workflow Orchestration","Self-Hosted","Fault-Tolerant","Distributed Systems","Observability"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-web"),env:["TEMPORAL_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-server:7233"),"TEMPORAL_CORS_ORIGINS=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.temporalUiImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:8080}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-server"),env:["DB=postgres12","DB_PORT=5432","POSTGRES_USER=postgres","POSTGRES_PWD=".concat(a),"POSTGRES_SEEDS=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development-sql.yaml","ENABLE_ES=true","ES_SEEDS=$(PROJECT_NAME)_".concat(e.appServiceName,"-elasticsearch"),"ES_VERSION=v7"].join("\n"),source:{type:"image",image:e.appServiceImage},mounts:[{type:"file",content:"limit.maxIDLength:\n  - value: 255\n    constraints: {}\nsystem.forceSearchAttributesCacheRefreshOnRead:\n  - value: true # Dev setup only. Please don't turn this on in production.\n    constraints: {}",mountPath:"/etc/temporal/config/dynamicconfig/development-sql.yaml"},{type:"file",content:"system.forceSearchAttributesCacheRefreshOnRead:\n  - value: true # Dev setup only. Please don't turn this on in production.\n    constraints: {}",mountPath:"/etc/temporal/config/dynamicconfig/development-cass.yaml"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-admin-tools"),env:["TEMPORAL_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-server:7233"),"TEMPORAL_CLI_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-server:7233")].join("\n"),source:{type:"image",image:e.temporalAdminImage}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-elasticsearch"),env:["cluster.routing.allocation.disk.threshold_enabled=true","cluster.routing.allocation.disk.watermark.low=512mb","cluster.routing.allocation.disk.watermark.high=256mb","cluster.routing.allocation.disk.watermark.flood_stage=128mb","discovery.type=single-node","ES_JAVA_OPTS=-Xms256m -Xmx256m","xpack.security.enabled=false"].join("\n"),source:{type:"image",image:e.elasticsearchImage},mounts:[{type:"volume",name:"elasticsearch-data",mountPath:"/var/lib/elasticsearch/data"}]}}),{services:t}}},{slug:"termix",meta:{name:"Termix",description:"Termix is a lightweight, web-based terminal emulator and SSH client that allows you to access and manage remote servers directly from your browser. It provides a modern, intuitive interface for executing commands, managing files, and administering systems without needing a traditional terminal application. Termix features session persistence, multiple connection management, customizable themes, and secure SSH connections. The web interface is responsive and works seamlessly across desktop and mobile devices, making it perfect for system administrators who need remote access on the go. All connection data is stored locally, ensuring your credentials and sessions remain private and secure.",instructions:null,changeLog:[{date:"2025-11-13",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to release-1.11.1"}],links:[{label:"Github",url:"https://github.com/lukegus/termix"},{label:"Documentation",url:"https://docs.termix.site"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"termix"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/lukegus/termix:release-1.11.1"}}},benefits:[{title:"Browser-Based Access",description:"Access your terminal and SSH connections from any device with a web browser. No need to install traditional terminal applications or SSH clients."},{title:"Secure & Private",description:"All connection data and credentials are stored locally in your self-hosted instance. Your sensitive information never leaves your infrastructure."},{title:"Mobile-Friendly",description:"Responsive design allows you to manage servers and execute commands from your smartphone or tablet when you're away from your desk."}],features:[{title:"Web Terminal",description:"Full-featured web-based terminal emulator accessible from any modern browser with support for colors, formatting, and keyboard shortcuts."},{title:"SSH Client",description:"Connect to remote servers via SSH directly from the web interface. Manage multiple connections and switch between them seamlessly."},{title:"Session Persistence",description:"Save your SSH sessions and connection details for quick access. Resume your work exactly where you left off."},{title:"Connection Management",description:"Organize and manage multiple server connections with saved credentials, custom names, and connection profiles."},{title:"Customizable Interface",description:"Choose from various themes and customize the terminal appearance to match your preferences and improve readability."},{title:"Cross-Platform",description:"Works on any device with a modern web browser including Windows, macOS, Linux, iOS, and Android."}],tags:["Terminal","SSH","Remote Access","Web Terminal","System Admin"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PORT=8080"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"thelounge",meta:{name:"The Lounge",description:"Welcome to The Lounge, your self-hosted web IRC client for the 21st century. With modern features such as push notifications, link previews, and file uploads, The Lounge brings IRC into the modern era. Stay connected to IRC servers even when you're offline and resume where you left off on any device, thanks to its responsive interface that works smoothly on every desktop, smartphone, and tablet. The Lounge supports multiple user accounts, allowing you to share your server with friends. It's a free and open-source app, licensed under the MIT license, and works on any OS where Node.js runs. The Lounge offers two modes: private and public. In private mode, it acts like a bouncer and a client combined, offering an experience similar to other modern chat applications. In public mode, it acts as an open chat available to anyone without registration. Enjoy the convenience of a modern, responsive, cross-platform, self-hosted web IRC client with The Lounge.",instructions:"To create a user, type thelounge add <name> in the console.",changeLog:[{date:"2023-07-09",description:"First Release"}],links:[{label:"Website",url:"https://thelounge.chat/"},{label:"Docs",url:"https://thelounge.chat/docs"},{label:"GitHub",url:"https://github.com/thelounge"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"thelounge"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/thelounge/thelounge:4.4.3"}}},benefits:[{title:"Always Connected",description:"With The Lounge, you can remain connected to IRC servers even when you're offline. You can resume where you left off on any device, ensuring you never miss out on any conversation."},{title:"Cross-Platform Compatibility",description:"The Lounge is designed to work smoothly on every desktop, smartphone, and tablet. It doesn't matter what operating system you use, as long as Node.js runs on it, The Lounge will work."},{title:"Multi-User Support",description:"The Lounge supports multiple user accounts. This means you can share your server with your friends and enjoy a seamless chat experience."}],features:[{title:"Modern Features",description:"The Lounge brings IRC to the 21st century with modern features like push notifications, link previews, and file uploads."},{title:"Responsive Interface",description:"The Lounge boasts a responsive interface that works smoothly on every device, be it a desktop, smartphone, or tablet."},{title:"Free and Open-Source",description:"The Lounge is a free and open-source web IRC client, licensed under the MIT license. This means you can use it without any cost and even contribute to its development."},{title:"Private and Public Modes",description:"The Lounge offers both private and public modes. In private mode, it acts like a bouncer and a client combined, offering an experience similar to other modern chat applications. In public mode, it acts as an open chat available to anyone without registration."}],tags:["Chat"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9e3}],mounts:[{type:"volume",name:"data",mountPath:"/var/opt/thelounge"}]}}),{services:t}}},{slug:"thingsboard",meta:{name:"Thingsboard",description:"ThingsBoard is an open-source IoT platform designed to simplify the process of collecting, processing, and visualizing data from IoT devices. It provides features like real-time device management, telemetry data visualization, and rule engine workflows to automate tasks and actions.",instructions:"Copy the email and passwords. [email protected] / sysadmin, [email protected] / tenant, [email protected] / customer. Expose the ports mentioned inside the documentation based on your requirements.",changeLog:[{date:"2025-01-21",description:"Template Release"},{date:"2025-03-03",description:"Version bumped to 3.9.1"},{date:"2025-12-29",description:"Version bumped to 4.2.1"},{date:"2026-05-07",description:"Version bumped to 4.2.1.1"}],links:[{label:"Documentation",url:"https://thingsboard.io/docs/"},{label:"Docker Guide",url:"https://thingsboard.io/docs/user-guide/install/docker/"},{label:"Github",url:"https://github.com/thingsboard/thingsboard"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"thingsboard"},appServiceImage:{type:"string",title:"App Service Image",default:"thingsboard/tb-postgres:4.2.1.1"}}},benefits:[{title:"Real-Time Device Management",description:"ThingsBoard provides an intuitive interface for managing devices and monitoring their status in real time."},{title:"Data Visualization",description:"Visualize telemetry data through customizable dashboards, charts, and widgets for actionable insights."},{title:"Protocol Support",description:"ThingsBoard supports multiple protocols like MQTT, HTTP, and CoAP, ensuring compatibility with various IoT devices."},{title:"Rule Engine Automation",description:"Automate workflows and actions using ThingsBoard's powerful rule engine, reducing manual intervention."},{title:"Multi-Tenancy Support",description:"Manage multiple tenants, customers, and devices from a single platform with granular access control."}],features:[{title:"Telemetry Data Collection",description:"Collect telemetry data from connected IoT devices and store it for analysis and visualization."},{title:"Custom Dashboards",description:"Build dynamic dashboards to visualize data and monitor device performance in real time."},{title:"Device Management",description:"Manage devices and assets with features like provisioning, monitoring, and control."},{title:"Integration with Third-Party Services",description:"Integrate ThingsBoard with external services to extend functionality and enable seamless IoT solutions."},{title:"Alerts and Notifications",description:"Set up alerts and notifications for specific events or conditions to stay informed about critical activities."}],tags:["IoT","Device Management","Data Visualization","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TB_QUEUE_TYPE=in-memory"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9090}],mounts:[{type:"volume",name:"thingsboard",mountPath:"/var/log/thingsboard"},{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"thrifty",meta:{name:"Thrifty",description:"Thrifty is a simple self-hosted budgeting and expense tracker for households. Track spending across multiple users without accounts or passwords \u2014 the app itself has no login system of any kind, so this template puts a Caddy proxy in front of the UI and API and protects it with HTTP Basic Auth instead.",instructions:"Open the app URL and sign in with the HTTP Basic Auth prompt using username admin and the auto-generated password shown as the proxy service's basic auth entry in 
1Easypanel. A Caddy proxy sits in front of the UI and API and is the only service with a public domain, so the API is never reachable without those credentials.",changeLog:[{date:"2026-07-21",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/tiehfood/thrifty"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","uiServiceImage","apiServiceImage","currencyCode"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"thrifty"},uiServiceImage:{type:"string",title:"UI Service Image",default:"tiehfood/thrifty-ui:1.12.1"},apiServiceImage:{type:"string",title:"API Service Image",default:"tiehfood/thrifty-api:1.12.1"},currencyCode:{type:"string",title:"Currency",oneOf:[{enum:["EUR"],title:"Euro"},{enum:["USD"],title:"US Dollar"},{enum:["GBP"],title:"British Pound"},{enum:["CAD"],title:"Canadian Dollar"},{enum:["AUD"],title:"Australian Dollar"}],default:"EUR"}}},benefits:[{title:"No Accounts, No Passwords",description:"Add household members as simple named users with no login of their own, so tracking shared spending doesn't mean managing credentials for everyone."},{title:"Lightweight, No External Database",description:"Runs on SQLite with nothing else to provision, so it stays cheap to host for a household budget tracker."},{title:"Multi-User Household Tracking",description:"See who spent what across the household in one shared view instead of juggling separate spreadsheets."}],features:[{title:"Multi-User Support",description:"Track expenses per household member while keeping everything in one shared budget."},{title:"Configurable Currency",description:"Display amounts in your household's own currency."},{title:"Swagger API Docs",description:"The API ships with interactive Swagger documentation at /swagger/index.html for anyone who wants to script against it."}],tags:["Budgeting","Personal Finance","Self-Hosted","Household"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(20),i="".concat(e.appServiceName,"-api"),o="".concat(e.appServiceName,"-proxy"),n=":80 {\n  handle /api* {\n    reverse_proxy $(PROJECT_NAME)_".concat(i,":8080\n  }\n\n  handle /swagger* {\n    reverse_proxy $(PROJECT_NAME)_").concat(i,":8080\n  }\n\n  handle {\n    reverse_proxy $(PROJECT_NAME)_").concat(e.appServiceName,":8080\n  }\n}\n");return t.push({type:"app",data:{serviceName:i,source:{type:"image",image:e.apiServiceImage},env:["SQLITE_DB_PATH=/data/thrifty.sqlite","PORT=8080"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.uiServiceImage},env:["CURRENCY_ISO=".concat(e.currencyCode)].join("\n")}}),t.push({type:"app",data:{serviceName:o,source:{type:"image",image:"caddy:2.10.2-alpine"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],basicAuth:[{username:"admin",password:a}],mounts:[{type:"file",content:n,mountPath:"/etc/caddy/Caddyfile"}]}}),{services:t}}},{slug:"thumbor",meta:{name:"Thumbor",description:"Thumbor is an intelligent imaging service designed to streamline and enhance your image processing tasks. It offers on-demand cropping, resizing, and flipping of images, ensuring the most important parts of your pictures are always preserved. Leveraging advanced face and feature detection algorithms, Thumbor smartly identifies key points in an image for optimal cropping and resizing. It also supports a variety of image filters for post-processing, which can be applied in a sequence for desired effects. Filters include brightness, contrast, grayscale, red-eye, and blur, among others. Thumbor also supports the WebP format, a superior image format that compresses better than jpeg and png, improving your website's performance. With Thumbor, you can store and load images from any location, and it's easy to implement a new loader or storage. It's a complete solution for your imaging needs, from uploading images to rendering them with smart face-recognition cropping.",instructions:null,changeLog:[{date:"2023-07-10",description:"First Release"}],links:[{label:"Website",url:"https://www.thumbor.org"},{label:"Documentation",url:"https://thumbor.readthedocs.io"},{label:"Github",url:"https://github.com/thumbor/thumbor"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"thumbor"},appServiceImage:{type:"string",title:"App Service Image",default:"thumbororg/thumbor:latest"}}},benefits:[{title:"Smart Image Cropping",description:"Thumbor uses advanced face detection technology to crop images around detected faces, ensuring the most important parts of the picture are preserved."},{title:"Flexible Image Loading and Storage",description:"Thumbor allows users to store and load images from anywhere, with support for various loaders and storages. Users can also implement their own loaders or storages."},{title:"Image Filtering",description:"Thumbor supports image filters that can be applied to images for post-processing. Users can chain and apply filters in order to enhance their images."},{title:"WebP Support",description:"Thumbor supports the WebP image format, which compresses images better than JPEG and PNG. This can significantly improve website performance."}],features:[{title:"Easy Integration",description:"Thumbor provides comprehensive libraries and plugins in multiple languages, making it easy for developers to integrate and use the service."},{title:"Decoupled Imaging",description:"Thumbor decouples imaging from storage and loading, allowing users to tailor the service to their own infrastructure requirements."},{title:"Efficient Image Management",description:"Thumbor simplifies image management tasks, such as resizing and cropping, saving time and effort for designers and project managers."}],tags:["Image Processing","Open Source","Smart Imaging"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8888}]}}),{services:t}}},{slug:"tianji",meta:{name:"Tianji",description:"All-in-One Insight Hub. Insight into everything, Website Analytics + Uptime Monitor + Server Status. not only another GA alternatives",instructions:'Default login is "admin" / "admin".',changeLog:[{date:"2024-03-26",description:"Template Added"},{date:"2025-03-03",description:"Version bumped to 1.18.11"},{date:"2025-07-25",description:"Version bumped to 1.24.6"},{date:"2025-12-29",description:"Version bumped to 1.31.1"},{date:"2026-02-24",description:"Version bumped to 1.31.13"},{date:"2026-05-07",description:"Version bumped to 1.31.24"}],links:[{label:"Website",url:"https://tianji.msgbyte.com/"},{label:"Documentation",url:"https://tianji.msgbyte.com/docs/intro"},{label:"Github",url:"https://github.com/msgbyte/tianji"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tianji"},appServiceImage:{type:"string",title:"App Service Image",default:"moonrailgun/tianji:1.31.24"}}},tags:["Website Monitor","Analytics","Server Monitor"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"JWT_SECRET=".concat(i),'ALLOW_REGISTER="false"','ALLOW_OPENAPI="true"'].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:12345}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),image:"postgres:16",password:a}}),{services:t}}},{slug:"tiddlywiki",meta:{name:"Tiddlywiki",description:"Tiddlywiki is a unique open-source, single-file wiki designed to help you organize, capture, and share information effectively. It is a versatile personal notebook that allows you to create, organize, and navigate your notes in a self-contained HTML file. Tiddlywiki is highly customizable, enabling users to tweak layouts, styles, and functionality through plugins and scripts. It works offline and can be hosted online for collaboration or personal use. Whether you're creating a personal knowledge base, journaling, or managing projects, Tiddlywiki provides a flexible platform to meet your needs.",instructions:null,changeLog:[{date:"2025-01-21",description:"First Release"}],links:[{label:"Website",url:"https://tiddlywiki.com"},{label:"Docs",url:"https://tiddlywiki.com/#Documentation"},{label:"Github",url:"https://github.com/Jermolene/TiddlyWiki5"}],contributors:[{name:"Ahson-Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tiddlywiki"},appServiceImage:{type:"string",title:"App Service Image",default:"nicolaw/tiddlywiki:5.3.6"}}},benefits:[{title:"Portable and Self-Contained",description:"Tiddlywiki is a single-file wiki that can be easily carried around, shared, or hosted online, offering unmatched portability and simplicity."},{title:"Works Offline",description:"Tiddlywiki operates entirely offline, making it perfect for personal use, note-taking, and managing data without needing an internet connection."},{title:"Customizable",description:"With plugins, themes, and custom scripting options, you can fully tailor Tiddlywiki to your specific needs and preferences."},{title:"Flexible Use Cases",description:"Tiddlywiki supports a wide range of applications, from personal knowledge management to project tracking, journaling, and task organization."},{title:"Free and Open Source",description:"Tiddlywiki is free to use and open source, encouraging contributions and community-driven development."}],features:[{title:"Single-File Wiki",description:"A self-contained HTML file that includes your data, layout, and functionality in one place."},{title:"Fully Customizable",description:"Customize your Tiddlywiki using plugins, themes, and JavaScript to create the perfect tool for your needs."},{title:"Works Offline",description:"Save your Tiddlywiki locally and use it without an internet connection."},{title:"Open Source Community",description:"Leverage a rich ecosystem of plugins and themes developed by the community."},{title:"Easy Sharing",description:"Share your Tiddlywiki as a single HTML file or host it online for others to access."}],tags:["Wiki","Personal Knowledge Management","Note-Taking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"tiddlywiki",mountPath:"/var/lib/tiddlywiki"}]}}),{services:t}}},{slug:"timescaledb",meta:{name:"TimescaleDB",description:"TimescaleDB is an open-source time-series database optimized for fast ingest and complex queries. It is built on top of PostgreSQL and provides automatic partitioning across time and space, making it ideal for IoT, monitoring, analytics, and other time-series data applications. It offers native time-series functionality while maintaining the reliability and flexibility of PostgreSQL.",instructions:'After deployment, connect to TimescaleDB using your app domain on port 5432 with username `postgres`, password set in Database Password, and database `postgres`; for example, `psql "postgresql://postgres:<YOUR_PASSWORD>@<YOUR_DOMAIN>:5432/postgres"`; TimescaleDB is PostgreSQL-compatible, so any PostgreSQL client or ORM can use the same connection details.',changeLog:[{date:"2025-03-26",description:"Initial template release"}],links:[{label:"Website",url:"https://www.timescale.com/"},{label:"Documentation",url:"https://docs.timescale.com/"},{label:"Docker Hub",url:"https://hub.docker.com/r/timescale/timescaledb-ha"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dbPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"timescaledb"},appServiceImage:{type:"string",title:"TimescaleDB Image",default:"timescale/timescaledb-ha:pg17"},dbPassword:{type:"string",title:"Database Password",default:"postgres"}}},benefits:[{title:"Time-Series Optimization",description:"Optimized for handling time-series data efficiently."},{title:"PostgreSQL Compatibility",description:"Full compatibility with PostgreSQL ecosystem."},{title:"High Availability",description:"Built-in high availability features."},{title:"Scalability",description:"Automatic partitioning for better performance."}],features:[{title:"Time-Series Functions",description:"Native time-series functions and operators."},{title:"Automatic Partitioning",description:"Automatic partitioning across time and space."},{title:"Continuous Aggregates",description:"Efficient aggregation of time-series data."},{title:"Compression",description:"Built-in data compression capabilities."}],tags:["Database","Time-Series","PostgreSQL","Analytics","IoT"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["POSTGRES_PASSWORD=".concat(e.dbPassword)].join("\n"),mounts:[{type:"volume",name:"timescaledb_data",mountPath:"/home/postgres/pgdata/data"}],domains:[{host:"$(EASY_DOMAIN)",port:5432}]}}),{services:t}}},{slug:"tinymediamanager",meta:{name:"TinyMediaManager",description:"TinyMediaManager is a media management tool designed to organize and manage your movie and TV show collections. It automatically fetches metadata from various sources, downloads artwork, and helps keep your media library well-organized with proper naming conventions and metadata files for media servers like Plex, Emby, and Jellyfin.",instructions:null,changeLog:[{date:"2025-04-25",description:"Initial release"},{date:"2026-05-07",description:"Version bumped to 5.2.11"}],links:[{label:"Website",url:"https://www.tinymediamanager.org/"},{label:"Documentation",url:"https://www.tinymediamanager.org/docs/"},{label:"GitHub",url:"https://github.com/tinyMediaManager/tinyMediaManager"},{label:"Docker Hub",url:"https://hub.docker.com/r/tinymediamanager/tinymediamanager"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tinymediamanager"},appServiceImage:{type:"string",title:"App Service Image",default:"tinymediamanager/tinymediamanager:5.2.11"},password:{type:"string",title:"VNC Password",default:"password",description:"Password for accessing the VNC interface"}}},benefits:[{title:"Automated Metadata Retrieval",description:"Automatically fetch movie and TV show metadata from online sources like TMDB, TVDB, and IMDB"},{title:"Artwork Management",description:"Download and manage posters, fanart, banners, and other artwork for your media"},{title:"Media Organization",description:"Rename and organize files based on customizable templates"},{title:"NFO File Generation",description:"Create NFO files for optimal compatibility with media servers"}],features:[{title:"Batch Processing",description:"Process multiple movies or TV shows at once"},{title:"Multi-language Support",description:"Support for multiple languages for both the UI and metadata"},{title:"Image Management",description:"Advanced image manipulation including poster selection and artwork downloading"},{title:"Flexible Scraping Options",description:"Configure how metadata is fetched and which sources to prioritize"},{title:"Remote Access",description:"Access through web interface or VNC from any device"},{title:"Persistent Storage",description:"Maintains configuration and data between restarts"}],tags:["Media Manager","Movies","TV Shows","Metadata","Plex","Emby","Jellyfin"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["USER_ID=1000","GROUP_ID=1000","ALLOW_DIRECT_VNC=true","LC_ALL=en_US.UTF-8","LANG=en_US.UTF-8","PASSWORD=".concat(e.password)].join("\n"),mounts:[{type:"volume",name:"tinymediamanager-data",mountPath:"/data"},{type:"volume",name:"tinymediamanager-movies",mountPath:"/media/movies"},{type:"volume",name:"tinymediamanager-tvshows",mountPath:"/media/tv_shows"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:4e3}]}}),{services:t}}},{slug:"tolgee",meta:{name:"Tolgee",description:"Tolgee is a revolutionary localization platform designed to simplify and speed up the translation process of your application. With Tolgee, you can translate your app into any language without modifying your code. It offers a range of features including in-context translating, translation memory, machine translations, auto translation, and activity log. The in-context translating feature allows you to translate strings directly in the app you develop, even in production. Translation memory ensures you don't translate the same string twice by reusing strings you've already translated. Machine translations let you leverage the power of DeepL, Google Translate, and AWS translate. Auto translation delivers your translations instantly right after you add them. The activity log feature helps you monitor the translation activities. Tolgee also allows users to add screenshots with a single click, providing context for translations. It is designed to be developer-friendly with easy integration with all major JS frameworks. Tolgee is not only easy to use for developers but also for translators, making the localization process seamless and efficient.",instructions:null,changeLog:[{date:"2023-3-28",description:"first release"},{date:"2025-03-03",description:"Version bumped to v3.107.0"},{date:"2025-12-29",description:"Version bumped to v3.145.2"},{date:"2026-02-24",description:"Version bumped to v3.163.2"},{date:"2026-05-07",description:"Version bumped to v3.184.2"}],links:[{label:"Website",url:"https://tolgee.io"},{label:"Documentation",url:"https://tolgee.io/platform"},{label:"Github",url:"https://github.com/tolgee/tolgee-platform"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","userUsername","userPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tolgee"},appServiceImage:{type:"string",title:"App Service Image",default:"tolgee/tolgee:v3.184.2"},databaseServiceName:{type:"string",title:"Database Service Name",default:"tolgee-db"},userUsername:{type:"string",title:"Username"},userPassword:{type:"string",title:"Password"}}},benefits:[{title:"Smart platform",description:"Tolgee is a smart platform that allows you to easily translate your application into any language without modifying your code."},{title:"Fast integration",description:"Tolgee is designed to be easy to integrate with your application, with integrations available for all major JavaScript frameworks."},{title:"Painless localization",description:"With Tolgee, localization becomes painless as you can easily involve your translators in the process and make translations directly in the app."}],features:[{title:"In-context translating",description:"Translate the strings directly in the app you develop, even in production."},{title:"Translation memory",description:"Reuse strings you've already translated to save time and effort."},{title:"Machine translations",description:"Let the machines work for you with support for DeepL, Google Translate, and AWS translate."},{title:"Auto translation",description:"Automatically translate texts right after you add them for faster delivery."},{title:"Activity Log",description:"Track and monitor your colleagues' translation activity with the Activity Log feature."},{title:"One-click screenshots",description:"Allow users to add screenshots with a single click for better context in translations."}],tags:["Developer Tools","Localization","Translation"],logo:"logo.svg",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png","screenshot4.png","screenshot5.png","screenshot6.png","screenshot7.png","screenshot8.png"]},generate:function(e){var t=[],a=y(256),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["spring_datasource_url=jdbc:postgresql://$(PROJECT_NAME)_".concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"spring_datasource_username=postgres","spring_datasource_password=".concat(i),"tolgee_rate-limits=false","tolgee_authentication_initial-username=".concat(e.userUsername),"tolgee_authentication_initial-password=".concat(e.userPassword),"tolgee_postgres-autostart_enabled=false","tolgee_authentication_enabled=true","tolgee_registrations_allowed=false","tolgee_max-translation-text-length=10000","tolgee_max-upload-file-size=2048","tolgee_max-screenshots-per-key=20","tolgee_authentication_needs-email-verification=false","tolgee_authentication_jwt-secret=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"tooljet",meta:{name:"Tooljet",description:"Tooljet is an open-source low-code platform for building internal tools and business applications. It provides a visual interface builder, database connectors, API integrations, and workflow automation capabilities. With Tooljet, teams can quickly build custom dashboards, admin panels, CRUD applications, and complex business tools without extensive coding. The platform supports multiple data sources, real-time collaboration, and enterprise-grade security features.",instructions:'Please run migrations inside the tooljet container if required, it will take 2-3 minutes to complete. "npm run db:migrate:prod"',changeLog:[{date:"2025-09-09",description:"Initial Template Release (v3.15.1)"},{date:"2026-05-07",description:"Version bumped to v3.15.1"}],links:[{label:"GitHub",url:"https://github.com/ToolJet/ToolJet"},{label:"Documentation",url:"https://docs.tooljet.com/"},{label:"Docker Hub",url:"https://hub.docker.com/r/tooljet/tooljet"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tooljet"},appServiceImage:{type:"string",title:"App Service Image",default:"tooljet/tooljet-ce:v3.20.154-lts",description:"Tooljet Docker image"},temporalImage:{type:"string",title:"Temporal Image",default:"temporalio/auto-setup:1.29.6.1",description:"Temporal server Docker image"}}},benefits:[{title:"Low-Code Development",description:"Build complex business applications and internal tools using a visual interface builder without extensive coding knowledge or development resources."},{title:"Rapid Prototyping",description:"Quickly prototype and iterate on business ideas with drag-and-drop components, pre-built integrations, and real-time collaboration features."},{title:"Data Source Integration",description:"Connect to multiple data sources including databases, APIs, cloud services, and third-party tools through pre-built connectors and custom integrations."},{title:"Enterprise Security",description:"Built-in security features including authentication, authorization, audit logs, and compliance tools for enterprise-grade applications."}],features:[{title:"Visual Interface Builder",description:"Drag-and-drop interface builder with pre-built components for forms, tables, charts, and custom widgets for creating rich user interfaces."},{title:"Database Connectors",description:"Support for multiple database types including PostgreSQL, MySQL, MongoDB, and cloud databases with real-time data synchronization."},{title:"API Integration",description:"Built-in API client with support for REST, GraphQL, and webhook integrations for connecting to external services and data sources."},{title:"Workflow Automation",description:"Visual workflow builder powered by Temporal for creating complex business processes and automated workflows."},{title:"Real-Time Collaboration",description:"Multi-user collaboration features with real-time updates, comments, and version control for team-based development."},{title:"Custom Components",description:"Extend functionality with custom components, plugins, and integrations using JavaScript and React for advanced use cases."}],tags:["Low-Code","Internal Tools","Business Applications","Dashboard","Database","API","Workflow","Automation","Visual Builder","Enterprise"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v(),n=y(64),r=y(64),s=y(64);return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:a}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-temporal-postgres"),password:i}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-temporal"),source:{type:"image",image:e.temporalImage||"temporalio/auto-setup:1.25.1"},env:["DB=postgres12","DB_PORT=5432","POSTGRES_USER=temporal","POSTGRES_PWD=".concat(i),"POSTGRES_SEEDS=$(PROJECT_NAME)_".concat(e.appServiceName,"-temporal-postgres")].join("\n"),deploy:{command:"temporal server start-dev"}}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["NODE_ENV=production","SERVE_CLIENT=true","PORT=80","TOOLJET_HOST=https://$(EASYPANEL_DOMAIN)","LOCKBOX_MASTER_KEY=".concat(s),"SECRET_KEY_BASE=".concat(n),"ORM_LOGGING=all","PG_DB=$(PROJECT_NAME)","PG_USER=postgres","PG_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-postgres"),"PG_PASS=".concat(a),"TOOLJET_DB=tooljet-db","TOOLJET_DB_USER=postgres","TOOLJET_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-postgres"),"TOOLJET_DB_PASS=".concat(a),"PGRST_DB_URI=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-postgres/$(PROJECT_NAME)"),"PGRST_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-postgres:5432"),"PGRST_JWT_SECRET=".concat(r),"PGRST_SERVER_PORT=3002","REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_USER=default","REDIS_PASSWORD=".concat(o),"CHECK_FOR_UPDATES=true","ENABLE_MULTIPLAYER_EDITING=true","ENABLE_MARKETPLACE_FEATURE=true","USER_SESSION_EXPIRY=2880","DEPLOYMENT_PLATFORM=docker","ENABLE_WORKFLOW_SCHEDULING=true","TEMPORAL_SERVER_ADDRESS=$(PROJECT_NAME)_".concat(e.appServiceName,"-temporal:7233"),"TEMPORAL_TASK_QUEUE_NAME_FOR_WORKFLOWS=tooljet-workflows","TOOLJET_WORKFLOWS_TEMPORAL_NAMESPACE=default","DISABLE_TOOLJET_TELEMETRY=false","[email protected]"].join("\n"),deploy:{command:"npm run db:setup:prod && npm run start:prod"}}}),{services:t}}},{slug:"tracardi",meta:{name:"Tracardi",description:"Tracardi is an open-source customer data platform (CDP) designed for real-time data processing, customer segmentation, and workflow automation. It enables businesses to collect, process, and analyze customer data while offering actionable insights. Tracardi provides a powerful visual interface, robust API support, and scalable deployment options.",instructions:"Configure the API Domain in the GUI.",changeLog:[{date:"2024-12-13",description:"Template Release"},{date:"2025-12-29",description:"Version bumped to 1.1.17"}],links:[{label:"Documentation",url:"https://docs.tracardi.com"},{label:"GitHub",url:"https://github.com/Tracardi/tracardi"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","guiServiceImage","apiServiceImage","apmServiceImage","workerServiceImage","elasticsearchServiceImage","enableDemoData","enableProductionSetup"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tracardi"},guiServiceImage:{type:"string",title:"GUI Service Image",default:"tracardi/tracardi-gui:1.1.17"},apiServiceImage:{type:"string",title:"API Service Image",default:"tracardi/tracardi-api:1.1.17"},apmServiceImage:{type:"string",title:"APM Service Image",default:"tracardi/apm:1.1.17"},workerServiceImage:{type:"string",title:"Worker Service Image",default:"tracardi/update-worker:1.1.17"},elasticsearchServiceImage:{type:"string",title:"Elasticsearch Service Image",default:"docker.elastic.co/elasticsearch/elasticsearch:7.13.2"},enableDemoData:{type:"boolean",title:"Enable Demo Data"},enableProductionSetup:{type:"boolean",title:"Enable Production Setup",description:"Prevents adding demo data."}}},benefits:[{title:"Real-Time Customer Data Processing",description:"Tracardi processes and analyzes customer data in real time, enabling you to make quick, data-driven decisions."},{title:"Open-Source and Flexible",description:"Tracardi is fully open-source, offering flexibility to customize and extend its capabilities based on your needs."},{title:"Workflow Automation",description:"Automate customer interactions with powerful visual workflows and event-driven triggers."}],features:[{title:"Real-Time Event Processing",description:"Process events in real time to capture and act on customer interactions as they happen."},{title:"Customer Segmentation",description:"Segment customers into groups based on behavior, demographics, or custom attributes."},{title:"Visual Workflow Builder",description:"Build automated workflows easily with a drag-and-drop interface."},{title:"Scalable and Multi-Platform Support",description:"Deploy Tracardi in scalable environments with Docker and multi-platform compatibility."}],tags:["Customer Data Platform","Real-Time Analytics","Workflow Automation","Open-Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=e.enableDemoData?"yes":"no",n=e.enableProductionSetup?"yes":"no";return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-gui"),source:{type:"image",image:e.guiServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-api"),env:["ELASTIC_HOST=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-elasticsearch:9200"),"REDIS_HOST=redis://$(PROJECT_NAME)_".concat(e.appServiceName,"-redis:6379"),"REDIS_PASSWORD=".concat(i),"MYSQL_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"MYSQL_USERNAME=root","MYSQL_PASSWORD=".concat(a),"MYSQL_DATABASE=$(PROJECT_NAME)","LOGGING_LEVEL=info","DEMO=".concat(o),"PRODUCTION=".concat(n),"SAVE_LOGS=yes"].join("\n"),source:{type:"image",image:e.apiServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-apm"),env:["ELASTIC_HOST=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-elasticsearch:9200"),"REDIS_HOST=redis://$(PROJECT_NAME)_".concat(e.appServiceName,"-redis:6379"),"REDIS_PASSWORD=".concat(i),"MYSQL_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"MYSQL_USERNAME=root","MYSQL_PASSWORD=".concat(a),"MYSQL_DATABASE=$(PROJECT_NAME)","MODE=worker","PAUSE=15"].join("\n"),source:{type:"image",image:e.apmServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:["ELASTIC_HOST=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-elasticsearch:9200"),"REDIS_HOST=redis://$(PROJECT_NAME)_".concat(e.appServiceName,"-redis:6379"),"REDIS_PASSWORD=".concat(i),"MYSQL_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-mysql"),"MYSQL_USERNAME=root","MYSQL_PASSWORD=".concat(a),"MYSQL_DATABASE=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.workerServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-elasticsearch"),env:["bootstrap.memory_lock=true","ES_JAVA_OPTS=-Xms512m -Xmx512m","discovery.type=single-node","xpack.security.enabled=false","cluster.name=ElasticSearchCluster"].join("\n"),source:{type:"image",image:e.elasticsearchServiceImage},mounts:[{type:"volume",name:"elasticsearch-data",mountPath:"/usr/share/elasticsearch/data"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),rootPassword:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"traccar",meta:{name:"Traccar",description:"Traccar is an open-source GPS tracking system designed for real-time tracking of vehicles, assets, and individuals. It supports a wide range of GPS devices and mobile apps, providing a secure, reliable, and highly customizable platform for tracking and managing your data. Traccar is ideal for fleet management, personal tracking, and asset monitoring.",instructions:null,changeLog:[{date:"2024-11-30",description:"Template Release"},{date:"2025-07-25",description:"Version bumped to 6.8"},{date:"2025-12-29",description:"Version bumped to 6.11"},{date:"2026-02-25",description:"Version bumped to 6.12"},{date:"2026-05-07",description:"Version bumped to 6.13.3"}],links:[{label:"Website",url:"https://www.traccar.org/"},{label:"Github",url:"https://github.com/traccar/traccar"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"traccar"},appServiceImage:{type:"string",title:"App Service Image",default:"traccar/traccar:6.13.3"}}},benefits:[{title:"Real-Time GPS Tracking",description:"Monitor the location of vehicles, assets, or individuals in real time with detailed data."},{title:"Device Compatibility",description:"Supports over 2,000 GPS devices and mobile apps for seamless integration."},{title:"Self-Hosted Solution",description:"Maintain full control of your data with a secure and self-hosted platform."}],features:[{title:"Geofencing",description:"Create virtual boundaries and receive alerts when devices enter or exit predefined areas."},{title:"Event Notifications",description:"Configurable notifications for events like speeding, SOS signals, or geofence breaches."},{title:"Multi-Device Support",description:"Manage and monitor multiple devices from a single interface."},{title:"Customizable Dashboards",description:"Personalize dashboards with the data and views most relevant to your needs."}],tags:["GPS Tracking","Fleet Management","Real-Time Tracking","Self-Hosted","Asset Monitoring"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:[].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:8082}],mounts:[{type:"volume",name:"logs",mountPath:"/opt/traccar/logs"},{type:"file",content:"\n  <!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>\n  <properties>\n\n  \x3c!-- Documentation: https://www.traccar.org/configuration-file/ --\x3e\n\n  <entry key='database.driver'>org.h2.Driver</entry>\n  <entry key='database.url'>jdbc:h2:./data/database</entry>\n  <entry key='database.user'>sa</entry>\n  <entry key='database.password'></entry>\n\n  </properties>\n  ",mountPath:"/opt/traccar/conf/traccar.xml"}],ports:[{protocol:"tcp",published:5e3,target:5e3},{protocol:"tcp",published:5150,target:5150}]}}),{services:t}}},{slug:"traduora",meta:{name:"Traduora",description:"Traduora is a modern, self-hosted translation management platform designed for teams and developers. It provides a clean and intuitive interface for managing translation projects across multiple languages. With Traduora, you can easily import and export translations in various formats, collaborate with translators, and integrate translations into your applications via API. The platform supports real-time updates, version control of translations, and role-based access control to manage translator permissions. Traduora helps streamline the localization workflow by providing a centralized place to manage all your translation needs while maintaining full control over your translation data and processes.",instructions:null,changeLog:[{date:"2025-03-19",description:"Template Release"},{date:"2025-07-25",description:"Version bumped to v0.21.0"}],links:[{label:"Documentation",url:"https://docs.traduora.co/docs/getting-started"},{label:"Github",url:"https://github.com/traduora/traduora"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"traduora"},appServiceImage:{type:"string",title:"App Service Image",default:"everco/ever-traduora:v0.21.0"}}},benefits:[{title:"Centralized Translation Management",description:"Traduora provides a centralized platform to manage all your translation projects and content in one place."},{title:"Self-Hosted Solution",description:"Maintain full control over your translation data with a secure, self-hosted platform."},{title:"Team Collaboration",description:"Enable efficient collaboration between developers, translators and project managers with role-based access."}],features:[{title:"API Integration",description:"Seamlessly integrate translations into your applications using the comprehensive REST API."},{title:"Multiple Format Support",description:"Import and export translations in various formats including JSON, YAML, and CSV."},{title:"Version Control",description:"Track changes and maintain version history of all translations."},{title:"Real-time Updates",description:"See translation changes instantly with real-time synchronization across the platform."}],tags:["Translation Management","Self-Hosted","Localization"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TR_DB_TYPE=mysql","TR_DB_USER=mysql","TR_DB_PASSWORD=".concat(a),"TR_DB_DATABASE=$(PROJECT_NAME)","TR_DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"TR_DB_PORT=3306","NODE_ENV=development"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"traffic-source",meta:{name:"Traffic Source",description:"Traffic Source is an open-source, self-hosted web analytics platform for tracking pageviews, referrers, UTM attribution, visitor journeys, and conversions. It is cookie-free by default, supports multi-site tracking, and stores data locally in SQLite so you keep full ownership. It also includes affiliate tracking and Stripe conversion syncing.",instructions:"After deploy, open the app and create the first user (registration is only\navailable for the first account). Then create a site and add the tracking\nscript snippet from your instance to your website. For geo data, place the\napp behind Cloudflare proxy as documented upstream.\n",changeLog:[{date:"2026-03-24",description:"First Release"}],links:[{label:"Website",url:"https://trafficsource.app"},{label:"GitHub",url:"https://github.com/mddanishyusuf/traffic-source"},{label:"Documentation",url:"https://github.com/mddanishyusuf/traffic-source#readme"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"traffic-source"},jwtExpiry:{type:"string",title:"JWT Expiry",default:"7d"}}},benefits:[{title:"Privacy-first analytics",description:"Cookie-free tracking and fully self-hosted storage so your traffic data stays on your infrastructure."},{title:"Conversion attribution",description:"Link visits to conversions with built-in Stripe sync and referral attribution support."},{title:"Multi-site dashboard",description:"Track multiple websites from one dashboard with source and campaign breakdowns."},{title:"Simple operations",description:"SQLite-backed deployment with a single app service and persistent volume."}],features:[{title:"Real-time analytics",description:"Live pageviews, sessions, bounce rate, session duration, and traffic source insights."},{title:"UTM and referrer tracking",description:"Capture source, medium, campaign, term, and content attribution data."},{title:"Visitor journeys",description:"Inspect session paths to understand how visitors move before converting."},{title:"Affiliate system",description:"Manage affiliate links, commissions, and public affiliate dashboards."},{title:"Lightweight tracking script",description:"Small script with SPA navigation support to capture pageviews accurately."}],tags:["Analytics","Web Analytics","Privacy","Self-Hosted","Marketing","Attribution"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(64),i=y(32),o='\nFROM node:20-alpine AS builder\nWORKDIR /app\nRUN apk add --no-cache git\nRUN git clone --filter=blob:none https://github.com/mddanishyusuf/traffic-source.git /app   && cd /app   && git checkout 57046909855c3dec7ef9a077ea03e64d681ae92d\nRUN npm install\nRUN npm run build\n\nFROM node:20-alpine AS runner\nWORKDIR /app\nENV NODE_ENV=production\nCOPY --from=builder /app/package*.json ./\nCOPY --from=builder /app/node_modules ./node_modules\nCOPY --from=builder /app/.next ./.next\nCOPY --from=builder /app/public ./public\nCOPY --from=builder /app/src ./src\nCOPY --from=builder /app/instrumentation.js ./instrumentation.js\nCOPY --from=builder /app/next.config.mjs ./next.config.mjs\nCOPY --from=builder /app/jsconfig.json ./jsconfig.json\nEXPOSE 3000\nCMD ["npm", "start"]\n'.trim();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"dockerfile",dockerfile:o},env:["JWT_SECRET=".concat(a),"JWT_EXPIRY=".concat(e.jwtExpiry||"7d"),"NEXT_PUBLIC_APP_URL=https://$(PRIMARY_DOMAIN)","DATABASE_PATH=/app/data/analytics.db","CRON_SECRET=".concat(i)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"traggo",meta:{name:"Traggo",description:"Traggo is a powerful, self-hosted time tracking and project management tool designed to help teams and individuals organize their workflows and track t
1ime efficiently. It features an intuitive interface, flexible reporting, and customizable dashboards. With Traggo, you can maintain complete control over your data, ensuring privacy and productivity.",instructions:null,changeLog:[{date:"2024-11-27",description:"Template Release"},{date:"2025-03-03",description:"Version bumped to 0.6.1"},{date:"2025-07-25",description:"Version bumped to 0.7.1"},{date:"2026-02-24",description:"Version bumped to 0.8.2"},{date:"2026-05-07",description:"Version bumped to 0.8.3"}],links:[{label:"Website",url:"https://traggo.net/"},{label:"Github",url:"https://github.com/traggo/server"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","traggoUsername","traggoPassword"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"traggo"},appServiceImage:{type:"string",title:"App Service Image",default:"traggo/server:0.8.3"},traggoUsername:{type:"string",title:"Traggo Username",default:"admin"},traggoPassword:{type:"string",title:"Traggo Password"}}},benefits:[{title:"Efficient Time Tracking",description:"Traggo provides intuitive tools for logging time and managing projects effectively."},{title:"Self-Hosted Solution",description:"Take full control of your data and privacy with this self-hosted platform."},{title:"Flexible Reporting",description:"Generate detailed reports to track progress and measure team productivity."}],features:[{title:"Time Logging",description:"Easily track and log time for various tasks and projects."},{title:"Custom Dashboards",description:"Personalize your dashboards to suit your workflow and preferences."},{title:"Team Collaboration",description:"Enable seamless collaboration with role-based permissions and shared views."},{title:"Export Options",description:"Export reports and logs in multiple formats for external use."}],tags:["Time Tracking","Self-Hosted","Productivity","Project Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TRAGGO_DEFAULT_USER_NAME=".concat(e.traggoUsername),"TRAGGO_DEFAULT_USER_PASS=".concat(e.traggoPassword)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:3030}],mounts:[{type:"volume",name:"traggodata",mountPath:"/opt/traggo/data"}]}}),{services:t}}},{slug:"trailarr",meta:{name:"Trailarr",description:"Trailarr is a self-hosted application to automatically download and manage trailers for your media libraries. It integrates with Radarr and Sonarr to discover your movie and TV collections, detects existing trailers to skip duplicates, and saves new trailers next to your media using Plex-compatible naming conventions that also work with Emby and Jellyfin. Custom profiles let you control trailer quality, format, and processing options, while a built-in web UI lets you browse your library and manage trailers directly. Trailarr supports multiple Radarr, Sonarr, and Plex instances and handles video processing via yt-dlp and FFmpeg.",instructions:'After deployment, open the web UI and log in with the default credentials \u2014 username "admin" and password "trailarr". Change the password immediately after the first login. Then navigate to Settings and add your Radarr and/or Sonarr connection details. Map the media paths so Trailarr can locate and write trailer files next to your media.',changeLog:[{date:"2026-06-29",description:"first release"}],links:[{label:"Website",url:"https://nandyalu.github.io/trailarr/"},{label:"Github",url:"https://github.com/nandyalu/trailarr"},{label:"Documentation",url:"https://nandyalu.github.io/trailarr/getting-started/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/MuhammadAhsanDonuts"}],schema:{type:"object",required:["appServiceName","appServiceImage","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"trailarr"},appServiceImage:{type:"string",title:"App Service Image",default:"nandyalu/trailarr:0.9.8"},timezone:{type:"string",title:"Timezone",default:"America/New_York"}}},benefits:[{title:"Automatic Trailer Downloads",description:"Trailarr connects to your Radarr and Sonarr instances and automatically downloads trailers for every movie and series in your collection, keeping your media library enriched without manual effort."},{title:"Duplicate Detection",description:"Before downloading, Trailarr checks whether a trailer already exists and skips it, saving bandwidth and avoiding cluttered media folders."},{title:"Plex, Emby, and Jellyfin Compatible",description:"Trailers are saved using Plex naming conventions and are automatically recognized by Emby and Jellyfin, so they appear in the right place in your media server without any extra configuration."}],features:[{title:"Multi-Instance Support",description:"Connect multiple Radarr, Sonarr, and Plex instances to manage trailers across separate servers or libraries from a single Trailarr deployment."},{title:"Custom Quality Profiles",description:"Create profiles to control trailer resolution, format, codec, and other processing options so every trailer meets your storage and quality requirements."},{title:"Web UI Library Browser",description:"Browse your entire movie and series library through a responsive web interface, view trailer status for each item, and trigger downloads or manage trailers manually."},{title:"yt-dlp and FFmpeg Integration",description:"Trailarr uses yt-dlp to download trailers from video hosting sites and FFmpeg for post-processing, giving you broad source support and flexible output options."}],tags:["Media","Automation","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TZ=".concat(e.timezone)].join("\n"),mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"media",mountPath:"/media"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:7889}]}}),{services:t}}},{slug:"transmission",meta:{name:"Transmission",description:"Transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client, encryption, a web interface, peer exchange, magnet links, DHT, \xb5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more.",instructions:null,changeLog:[{date:"2024-03-18",description:"Template added"},{date:"2025-03-03",description:"Version bumped to 4.0.6"},{date:"2026-02-24",description:"Version bumped to 4.1.0"},{date:"2026-05-07",description:"Version bumped to 4.1.1"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-transmission/"},{label:"Github",url:"https://github.com/linuxserver/docker-transmission"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"transmission"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/transmission:4.1.1"}}},benefits:[{title:"Simple and Efficient Torrenting",description:"Transmission offers a user-friendly interface and consumes minimal system resources, making it an efficient choice for all users, from beginners to advanced."},{title:"Advanced Security Features",description:"With built-in encryption and support for secure torrenting protocols, Transmission ensures your torrenting activity is private and secure."},{title:"Remote Access",description:"Manage your torrents from anywhere using Transmission's web interface. Add, pause, or remove torrents remotely for complete control over your downloads."}],features:[{title:"Minimalist Interface",description:"Enjoy a clean, uncluttered interface that makes downloading torrents straightforward and hassle-free."},{title:"Comprehensive Protocol Support",description:"Transmission supports all the modern BitTorrent protocol extensions, ensuring fast and efficient torrent downloading."},{title:"Cross-Platform Compatibility",description:"Available on multiple operating systems and platforms, Transmission offers a seamless torrenting experience across devices."},{title:"DHT, PEX, and Magnet Link Support",description:"Find peers without central trackers using DHT, exchange peers with others using PEX, and start downloads immediately with magnet links."},{title:"Web Interface and Remote Management",description:"Transmission's web interface allows you to manage your torrent downloads from any device, providing flexibility and convenience."}],tags:["Torrent","BitTorrent Client"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:9091}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"trigger",meta:{name:"Trigger",description:"Trigger.dev is a free and open-source platform that simplifies building workflows and automations directly within your codebase. It provides a powerful way to connect your application to APIs, schedule tasks, and manage real-time and delayed workflows with ease. By integrating seamlessly into your development process, Trigger.dev allows developers to focus on delivering high-value features instead of managing complex infrastructure. Its scalability and ease of use make it a great fit for modern web applications and cloud-based systems.",instructions:"You should connect your application to Trigger.dev using the provided SDKs and API endpoints for effortless workflow automation.",changeLog:[{date:"2024-11-16",description:"First Release"},{date:"2025-07-25",description:"Version bumped to v3.3.18"}],links:[{label:"Website",url:"https://trigger.dev/"},{label:"Documentation",url:"https://docs.trigger.dev/"},{label:"Github",url:"https://github.com/triggerdotdev/trigger.dev"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"trigger"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/triggerdotdev/trigger.dev:v3.3.18"},databaseServiceName:{type:"string",title:"Database Service Name",default:"trigger-db"}}},benefits:[{title:"Code-First Workflow Automation",description:"Build workflows directly in your codebase for seamless integration with your application and development process."},{title:"API Integrations",description:"Easily connect to external APIs and manage complex integrations with minimal effort."},{title:"Real-Time and Delayed Workflows",description:"Manage real-time triggers and delayed workflows for advanced automation scenarios."}],features:[{title:"Workflow Management",description:"Trigger.dev allows you to build, test, and deploy workflows directly from your development environment."},{title:"API Integration",description:"Simplify API connections and data transfers with built-in support for multiple APIs and webhooks."},{title:"Real-Time and Scheduled Events",description:"Handle real-time events and schedule tasks with precision and reliability."},{title:"Open Source",description:"Fully open source and community-driven, making it easy to adapt and enhance for your needs."},{title:"Extensible",description:"Extend Trigger.dev\u2019s capabilities through custom modules and plugins."}],tags:["Workflow Automation","API Integration","Real-Time","Open Source","Cloud-Based"],logo:null,screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3030}],env:["LOGIN_ORIGIN=https://$(PRIMARY_DOMAIN)","APP_ORIGIN=https://$(PRIMARY_DOMAIN)","PORT=3030","REMIX_APP_PORT=3030","MAGIC_LINK_SECRET=secret","SESSION_SECRET=secret","ENCRYPTION_KEY=ae13021afef0819c3a307ad487071c06","POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"POSTGRES_DB=$(PROJECT_NAME)","DATABASE_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"DIRECT_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)"),"NODE_ENV=development","RUNTIME_PLATFORM=docker-compose","AUTH_GITHUB_CLIENT_ID=","AUTH_GITHUB_CLIENT_SECRET=","FROM_EMAIL=","REPLY_TO_EMAIL=","RESEND_API_KEY="].join("\n")}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"trilium",meta:{name:"Trilium Notes",description:"Trilium is a hierarchical note-taking application designed for creating and managing large personal knowledge bases. With Trilium, you can arrange your notes into an arbitrarily deep tree structure, with the ability to place a single note in multiple locations. The app offers rich WYSIWYG note editing, including tables, images, and math, with markdown autoformat. It also supports editing notes with source code, complete with syntax highlighting. Trilium provides seamless note versioning and attributes for note organization, querying, and advanced scripting. The app also includes a synchronization feature with a self-hosted sync server. For enhanced security, Trilium offers strong note encryption with per-note granularity. Other features include sketching diagrams with built-in Excalidraw, visualizing notes and their relations with relation maps and link maps, and a REST API for automation. Trilium is optimized for both usability and performance, capable of handling upwards of 100,000 notes.",instructions:null,changeLog:[{date:"2023-3-22",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/zadam/trilium/wiki"},{label:"Github",url:"https://github.com/zadam/trilium"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"trilium"},appServiceImage:{type:"string",title:"App Service Image",default:"zadam/trilium:0.63.7"}}},benefits:[{title:"Hierarchical Note Taking",description:"Organize your notes into a hierarchical tree structure for easy navigation and organization."},{title:"Rich Editing",description:"Edit your notes with a rich WYSIWYG editor, including tables, images, and math equations."},{title:"Fast and Easy Navigation",description:"Quickly navigate between notes, perform full-text searches, and easily hoist notes for focus."},{title:"Synchronization",description:"Sync your notes with a self-hosted server for access from any device."},{title:"Note Versioning",description:"Keep track of note revisions and easily revert to previous versions."},{title:"Note Organization",description:"Use note attributes for organization, querying, and advanced scripting."},{title:"Sharing and Encryption",description:"Share notes publicly and encrypt them for privacy and security."},{title:"Visualizations and Scripting",description:"Create relation maps and link maps to visualize note relationships, and use scripting for automation."},{title:"Import and Export",description:"Import notes from Evernote and Markdown, and export notes for backup or migration."},{title:"Web Clipper",description:"Save web content easily with the built-in web clipper."}],features:[{title:"Hierarchical Note Organization",description:"Arrange notes into a tree structure for easy organization and navigation."},{title:"Rich WYSIWYG Editing",description:"Edit notes with a powerful WYSIWYG editor, including support for tables, images, and math equations."},{title:"Fast Navigation and Search",description:"Quickly navigate between notes, perform full-text searches, and hoist notes for focus."},{title:"Synchronization",description:"Sync notes with a self-hosted server for access from any device."},{title:"Note Versioning",description:"Keep track of note revisions and easily revert to previous versions."},{title:"Note Attributes",description:"Use note attributes for organization, querying, and advanced scripting."},{title:"Sharing and Encryption",description:"Share notes publicly and encrypt them for privacy and security."},{title:"Visualizations and Scripting",description:"Create relation maps and link maps to visualize note relationships, and use scripting for automation."},{title:"Import and Export",description:"Import notes from Evernote and Markdown, and export notes for backup or migration."},{title:"Web Clipper",description:"Save web content easily with the built-in web clipper."}],tags:["Notes"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TRILIUM_DATA_DIR=/home/node/trilium-data"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/home/node/trilium-data"}]}}),{services:t}}},{slug:"troddit",meta:{name:"Troddit",description:"Troddit is a web-based Reddit client that provides a clean, modern interface for browsing Reddit. It offers an alternative frontend experience with improved user interface design and functionality. Troddit allows users to browse subreddits, view posts, and navigate Reddit content through a streamlined web interface without requiring the official Reddit app or website.",instructions:null,changeLog:[{date:"2025-07-09",description:"Initial release"}],links:[{label:"GitHub",url:"https://github.com/burhan-syed/troddit"},{label:"Website",url:"https://www.troddit.com"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"troddit"},appServiceImage:{type:"string",title:"App Service Image",default:"bsyed/troddit:latest"}}},benefits:[{title:"Modern Reddit Interface",description:"Clean and modern web interface for browsing Reddit content with improved user experience compared to the official Reddit website."},{title:"Self-hosted Solution",description:"Host your own instance of Troddit for privacy and customization, giving you control over your Reddit browsing experience."},{title:"Lightweight Alternative",description:"A lightweight alternative to the official Reddit app and website, providing faster loading times and better performance."},{title:"Easy Deployment",description:"Simple Docker-based deployment that gets you up and running quickly with minimal configuration required."}],features:[{title:"Subreddit Browsing",description:"Browse any public subreddit with an intuitive interface"},{title:"Post Viewing",description:"View Reddit posts, comments, and media content seamlessly"},{title:"Clean Design",description:"Modern, clean interface that enhances the Reddit browsing experience"},{title:"Responsive Layout",description:"Works well on both desktop and mobile devices"},{title:"Fast Performance",description:"Optimized for speed and performance with efficient loading"},{title:"Privacy Focused",description:"Self-hosted solution that keeps your browsing data private"}],tags:["Reddit","Social Media","Web Client","Frontend","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"trudesk",meta:{name:"Trudesk",description:"Trudesk is a self-hosted, open-source help desk and ticketing system designed for businesses and teams to efficiently manage customer support inquiries. It provides a modern and user-friendly web interface for tracking, organizing, and resolving support tickets. Trudesk includes role-based user management, real-time notifications, reporting tools, and an API for integration with other services. It supports multiple authentication methods, including OAuth and LDAP, making it suitable for enterprise environments. Additionally, Trudesk offers email integration, enabling automatic ticket creation from emails. With its containerized deployment, it ensures scalability and ease of management.",instructions:null,changeLog:[{date:"2025-03-18",description:"Template Release"}],links:[{label:"Documentation",url:"https://docs.trudesk.io"},{label:"Github",url:"https://github.com/polonel/trudesk"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"trudesk"},appServiceImage:{type:"string",title:"App Service Image",default:"polonel/trudesk:1.2.11"}}},benefits:[{title:"Efficient Ticket Management",description:"Trudesk provides an intuitive help desk system that allows teams to track, assign, and resolve customer support tickets in an organized manner."},{title:"Self-Hosted Support Solution",description:"Businesses can maintain full control over their support system, ensuring security, privacy, and customization without relying on third-party services."},{title:"Automation & Integrations",description:"Trudesk supports automation workflows, APIs, and third-party integrations to streamline customer service processes."}],features:[{title:"Role-Based Access Control",description:"Trudesk provides multi-user role management, allowing teams to define access levels and permissions for agents, managers, and administrators."},{title:"Real-Time Notifications",description:"Get instant alerts for new tickets, updates, and responses through in-app, email, or push notifications."},{title:"API & Third-Party Integrations",description:"Trudesk provides a RESTful API for integrating with CRM, monitoring tools, and other business applications."},{title:"Email-to-Ticket System",description:"Automatically convert incoming emails into support tickets to streamline customer inquiries."},{title:"Reporting & Analytics",description:"Track agent performance, ticket resolution times, and other key support metrics through built-in reports and analytics."}],tags:["Help Desk","Customer Support","Ticketing System","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NODE_ENV=production","TRUDESK_DOCKER=true","TD_MONGODB_URI=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:27017/?tls=false"),"USE_XFORWARDIP=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8118}]}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"trufflehog",meta:{name:"TruffleHog",description:"TruffleHog is a security tool that finds secrets in your code, repositories, and files. It uses pattern matching, entropy analysis, and other methods to detect potential secrets and credentials.",instructions:"After installation, TruffleHog will scan the specified directory for secrets. Configure the scan path and command options in the settings.",changeLog:[{date:"2025-05-05",description:"Initial release"},{date:"2026-02-24",description:"Version bumped to 3.93.4"}],links:[{label:"Website",url:"https://trufflesecurity.com"},{label:"GitHub",url:"https://github.com/trufflesecurity/trufflehog"},{label:"Documentation",url:"https://trufflesecurity.com/docs/trufflehog"},{label:"Docker Hub",url:"https://hub.docker.com/r/trufflesecurity/trufflehog"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","scanPath","scanCommand"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"trufflehog"},appServiceImage:{type:"string",title:"App Service Image",default:"trufflesecurity/trufflehog:3.93.4"},scanPath:{type:"string",title:"Scan Path",description:"Host path to scan for secrets",default:"/path/to/scan"},scanCommand:{type:"string",title:"Scan Command",description:"Command to run for scanning (e.g., 'trufflehog filesystem /workdir')",default:"trufflehog filesystem /workdir"}}},benefits:[{title:"Security Scanning",description:"Find secrets and credentials in your code and repositories"},{title:"Multiple Detection Methods",description:"Uses pattern matching, entropy analysis, and other methods"},{title:"Customizable",description:"Configurable scanning options and paths"},{title:"Open Source",description:"Free and open-source security tool"}],features:[{title:"Secret Detection",description:"Find API keys, passwords, tokens, and other secrets"},{title:"Pattern Matching",description:"Detect secrets using regex patterns and entropy analysis"},{title:"Custom Commands",description:"Configure custom scanning commands and options"},{title:"Volume Mounting",description:"Scan any directory by mounting it to the container"},{title:"Continuous Scanning",description:"Run scans on a schedule or as part of CI/CD"}],tags:["Security","Code Analysis","Secret Detection","Self-hosted","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"bind",hostPath:e.scanPath,mountPath:"/workdir"}],deploy:{command:e.scanCommand}}}),{services:t}}},{slug:"tubearchivist",meta:{name:"TubeArchivist",description:"TubeArchivist is a self-hosted YouTube archiving tool that allows you to manage and organize your YouTube content locally. It downloads videos, indexes metadata, and provides a web-based interface for searching, organizing, and playing content. Designed for personal use, TubeArchivist integrates with Elasticsearch for advanced search capabilities and Redis for optimized caching and task management. It also supports custom playlists, video tagging, and offline playback, providing complete control over your video collection.",instructions:null,changeLog:[{date:"2025-02-13",description:"First Release"},{date:"2025-07-25",description:"Version bumped to v0.5.4"},{date:"2025-12-29",description:"Version bumped to v0.5.8, 8.18.2"},{date:"2026-05-07",description:"Version bumped to v0.5.10, 8.19.0"}],links:[{label:"Documentation",url:"https://github.com/tubearchivist/tubearchivist/wiki"},{label:"Dockerhub",url:"https://hub.docker.com/r/bbilly1/tubearchivist"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","elasticsearchServiceImage","redisServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tubearchivist"},appServiceImage:{type:"string",title:"App Service Image",default:"bbilly1/tubearchivist:v0.5.10"},elasticsearchServiceImage:{type:"string",title:"Elasticsearch Service Image",default:"bbilly1/tubearchivist-es:8.19.0"},redisServiceImage:{type:"string",title:"Redis Service Image",default:"redis/redis-stack-server:7.4.0-v8"},username:{type:"string",title:"Username",default:"admin"},password:{type:"string",title:"Password",default:"changeme"}}},benefits:[{title:"Personal YouTube Archive",description:"TubeArchivist allows you to create your own YouTube archive. You can download and organize videos locally, giving you full control over your collection and ensuring access even if the original content is removed."},{title:"Advanced Search and Metadata Indexing",description:"With Elasticsearch integration, TubeArchivist offers powerful search capabilities. You can search by video title, description, tags, and more, making it easy to find the content you want."},{title:"Offline Playback and Organization",description:"TubeArchivist supports offline playback of downloaded videos. Organize content into custom playlists, apply tags, and manage your collection efficiently."}],features:[{title:"Elasticsearch Integration",description:"TubeArchivist uses Elasticsearch for advanced search and metadata indexing, providing fast and accurate search results across your video archive."},{title:"Redis Caching",description:"Redis is used for caching and task management, improving the performance and responsiveness of the TubeArchivist interface."},{title:"Custom Playlists and Tagging",description:"Create custom playlists and apply tags to organize your content. This helps you manage your collection and find videos easily."},{title:"Scheduled Downloads",description:"TubeArchivist supports scheduled downloads, allowing you to automate the archiving process for your favorite YouTube channels and playlists."},{title:"Web-Based Interface",description:"The intuitive web-based interface makes it easy to manage your video archive, search content, and control playback from any device."}],tags:["Video Management","YouTube Archiving","Offline Playback","Personal Media Server"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["ES_URL=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-es:9200"),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"HOST_UID=1000","HOST_GID=1000","TA_HOST=https://$(PRIMARY_DOMAIN)","TA_USERNAME=".concat(e.username),"TA_PASSWORD=".concat(e.password),"ELASTIC_PASSWORD=".concat(a),"TZ=America/New_York"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"data",mountPath:"/youtube"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-es"),source:{type:"image",image:e.elasticsearchServiceImage},env:["ELASTIC_PASSWORD=".concat(a),"ES_JAVA_OPTS=-Xms1g -Xmx1g","xpack.security.enabled=true","discovery.type=single-node","path.repo=/usr/share/elasticsearch/data/snapshot"].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/usr/share/elasticsearch/data"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-redis"),source:{type:"image",image:e.redisServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"tubesync",meta:{name:"TubeSync",description:"TubeSync is a powerful self-hosted application designed to automatically sync and download YouTube videos from subscriptions or playlists. It provides an intuitive web interface to manage downloads, supports filtering by keywords, and integrates with various media management systems. TubeSync allows users to schedule automatic downloads, ensuring they never miss new content from their favorite channels. It is built for efficiency, offering high-speed downloads and optimized storage handling. The application runs as a lightweight container, making it easy to deploy and manage.",instructions:null,changeLog:[{date:"2025-02-25",description:"first release"},{date:"2025-07-25",description:"Version bumped to v0.15.7"},{date:"2025-12-29",description:"Version bumped to v0.15.12"},{date:"2026-02-24",description:"Version bumped to v0.16.2"},{date:"2026-05-07",description:"Version bumped to v0.17.3"}],links:[{label:"Github",url:"https://github.com/meeb/tubesync"}],contributors:[{name:"Ahson-Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","username","password"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tubesync"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/meeb/tubesync:v0.17.3"},username:{type:"string",title:"Username",default:"admin"},password:{type:"string",title:"Password",default:"password"}}},benefits:[{title:"Automatic YouTube Video Sync",description:"TubeSync automatically downloads new videos from your favorite YouTube channels and playlists, ensuring you never miss an upload."},{title:"Smart Filtering",description:"With advanced keyword filtering, TubeSync allows you to choose specific videos to download based on titles, descriptions, or tags."},{title:"Easy Integration with Media Libraries",description:"TubeSync works seamlessly with popular media management tools like Plex and Jellyfin, making it easy to organize and stream downloaded content."}],features:[{title:"Subscription Management",description:"Users can subscribe to YouTube channels and playlists, and TubeSync will automatically download new videos as they are released."},{title:"Keyword-Based Filtering",description:"Define specific keywords to filter downloads, ensuring only relevant content is saved."},{title:"Scheduled Downloads",description:"Schedule automatic video downloads at set intervals to keep your media library updated without manual intervention."},{title:"Web-Based UI",description:"Manage subscriptions, view download history, and configure settings through an intuitive web-based interface."},{title:"Metadata and Thumbnail Handling",description:"TubeSync automatically fetches video metadata and thumbnails, making it easy to organize and categorize downloaded videos."}],tags:["YouTube","Video Management","Automation","Media"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TZ=Europe/London","PUID=1000","PGID=1000","HTTP_USER=".concat(e.username),"HTTP_PASS=".concat(e.password)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:4848}],mounts:[{type:"volume",name:"config",mountPath:"/config"},{type:"volume",name:"downloads",mountPath:"/downloads"}]}}),{services:t}}},{slug:"tugtainer",meta:{name:"Tugtainer",description:"Tugtainer is a self-hosted Docker container management application that provides a web-based interface for managing Docker containers and images. Built with modern architecture, Tugtainer offers comprehensive container management capabilities including container lifecycle management, image management, and network configuration. The system uses a secure socket proxy service to safely access the Docker socket, providing an additional layer of security. Perfect for developers and system administrators looking for a self-hosted alternative to manage Docker containers with a user-friendly interface.",instructions:null,changeLog:[{date:"2025-01-23",description:"Initial Template Release"},{date:"2026-02-24",description:"Version bumped to v1.23.1"},{date:"2026-05-07",description:"Version bumped to v1.29.1"}],links:[{label:"GitHub",url:"https://github.com/quenary/tugtainer"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","socketProxyImage","timezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tugtainer"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/quenary/tugtainer:v1.29.1"},socketProxyImage:{type:"string",title:"Socket Proxy Image",default:"ghcr.io/linuxserver/socket-proxy:3.2.17-r0-ls79"},timezone:{type:"string",title:"Timezone",default:"Asia/Karachi",description:"Timezone for the application (e.g., Asia/Karachi, America/New_York, Europe/London)"},socketProxyContainers:{type:"string",title:"Socket Proxy Containers",default:"1",description:"Enable container operations (0 or 1)"},socketProxyEvents:{type:"string",title:"Socket Proxy Events",default:"1",description:"Enable event streaming (0 or 1)"},socketProxyImages:{type:"string",title:"Socket Proxy Images",default:"1",description:"Enable image operations (0 or 1)"},socketProxyInfo:{type:"string",title:"Socket Proxy Info",default:"1",description:"Enable info endpoint (0 or 1)"},socketProxyLogLevel:{type:"string",title:"Socket Proxy Log Level",default:"warning",description:"Log level for socket proxy (debug, info, warning, error)"},socketProxyPing:{type:"string",title:"Socket Proxy Ping",default:"1",description:"Enable ping endpoint (0 or 1)"},socketProxyNetworks:{type:"string",title:"Socket Proxy Networks",default:"1",description:"Enable network operations (0 or 1)"},socketProxyPost:{type:"string",title:"Socket Proxy Post",default:"1",description:"Enable POST operations (0 or 1)"},socketProxyVersion:{type:"string",title:"Socket Proxy Version",default:"1",description:"Enable version endpoint (0 or 1)"}}},benefits:[{title:"Docker Container Management",description:"Manage Docker containers, images, and networks through a user-friendly web interface with comprehensive management capabilities."},{title:"Self-Hosted Solution",description:"Keep your container management private and under your control with a self-hosted deployment."},{title:"Secure Socket Proxy",description:"Uses a secure socket proxy service to safely access the Docker socket, providing an additional layer of security compared to direct socket mounting."},{title:"Persistent Storage",description:"All application data is stored in a persistent volume, ensuring your configurations and settings are preserved across container restarts."}],features:[{title:"Container Management",description:"Start, stop, restart, and manage Docker containers with an intuitive web interface."},{title:"Image Management",description:"View, pull, and manage Docker images with comprehensive image management tools."},{title:"Network Management",description:"Configure and manage Docker networks through the web interface."},{title:"Secure Socket Access",description:"Socket proxy service provides secure access to Docker socket with configurable permissions and access controls."},{title:"Web-Based Interface",description:"Access and manage your Docker environment through a modern web interface accessible on port 80."},{title:"Persistent Storage",description:"Application data is stored in a dedicated volume at /tugtainer for reliable data persistence."},{title:"Containerized Deployment",description:"Easily deploy Tugtainer in any environment that supports Docker with minimal configuration requirements."}],tags:["Docker","Container Management","Self-Hosted","Management","DevOps","Infrastructure"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["CONTAINERS=".concat(e.socketProxyContainers||"1"),"EVENTS=".concat(e.socketProxyEvents||"1"),"IMAGES=".concat(e.socketProxyImages||"1"),"INFO=".concat(e.socketProxyInfo||"1"),"LOG_LEVEL=".concat(e.socketProxyLogLevel||"warning"),"PING=".concat(e.socketProxyPing||"1"),"NETWORKS=".concat(e.socketProxyNetworks||"1"),"POST=".concat(e.socketProxyPost||"1"),"TZ=".concat(e.timezone),"VERSION=".concat(e.socketProxyVersion||"1")];return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-socket-proxy"),source:{type:"image",image:e.socketProxyImage},env:a.join("\n"),mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["DOCKER_HOST=tcp://$(PROJECT_NAME)_".concat(e.appServiceName,"-socket-proxy:2375")].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/tugtainer"}]}}),{services:t}}},{slug:"tunarr",meta:{name:"Tunarr",description:"Tunarr is a modern IPTV server that creates custom TV channels from your personal media library. It automatically generates continuous programming schedules using your movies, TV shows, and other content, creating an authentic TV viewing experience. Tunarr provides intelligent scheduling, program guide generation, and seamless integration with popular media libraries like Plex, Jellyfin, and Emby. Perfect for home entertainment setups, it transforms your digital media collection into personalized TV channels that can be watched on any IPTV-compatible device or application.",instructions:"After deployment, access Tunarr through your domain. The web interface will guide you through the initial setup process. You'll need to configure your media library connections (Plex, Jellyfin, Emby, or local files), set up TV channels and programming schedules, and configure your IPTV player to connect to the generated M3U playlist. Tunarr will automatically scan y
1our media library and create intelligent programming schedules for your custom TV channels.",changeLog:[{date:"2025-10-14",description:"Initial Template Release"}],links:[{label:"Website",url:"https://tunarr.com"},{label:"GitHub",url:"https://github.com/chrisbenincasa/tunarr"},{label:"Documentation",url:"https://tunarr.com/api-docs"},{label:"Docker Hub",url:"https://hub.docker.com/r/chrisbenincasa/tunarr"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"tunarr"},appServiceImage:{type:"string",title:"App Service Image",default:"chrisbenincasa/tunarr:0.22.6"},logLevel:{type:"string",title:"Log Level",default:"INFO",enum:["DEBUG","INFO","WARN","ERROR"],description:"Application logging level"},timezone:{type:"string",title:"Timezone",default:"Etc/UTC",description:"Timezone for accurate guide data and scheduling"},databasePath:{type:"string",title:"Database Path (Optional)",default:"",description:"Custom path for Tunarr database storage"}}},benefits:[{title:"Intelligent Scheduling",description:"Automatically creates realistic TV programming schedules from your media library with smart content selection and timing."},{title:"Media Library Integration",description:"Seamlessly integrates with Plex, Jellyfin, Emby, and local file systems for comprehensive media library support."},{title:"Program Guide Generation",description:"Generates detailed EPG (Electronic Program Guide) data with accurate scheduling and program information for your channels."},{title:"Modern Web Interface",description:"Clean, intuitive web interface for easy channel configuration, media management, and real-time monitoring of your TV streams."}],features:[{title:"Multi-Source Support",description:"Connect multiple media libraries and sources to create diverse TV channels with content from different platforms."},{title:"Advanced Channel Configuration",description:"Fine-tune channel settings, programming rules, and content filters to create exactly the TV experience you want."},{title:"Commercial Management",description:"Insert commercials, bumpers, and station identification between programs to create authentic TV channel experience."},{title:"IPTV Standard Compliance",description:"Generates standard M3U playlists and EPG data compatible with any IPTV player or device for universal compatibility."}],tags:["IPTV","Media Server","TV Channels","Streaming","Home Entertainment","Plex Integration","Jellyfin Integration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["LOG_LEVEL=".concat(e.logLevel),"TZ=".concat(e.timezone)];return e.databasePath&&a.push("TUNARR_DATABASE_PATH=".concat(e.databasePath)),t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"config",mountPath:"/config/tunarr"}]}}),{services:t}}},{slug:"twenty",meta:{name:"Twenty CRM",description:"Twenty is a modern, open-source CRM platform designed to help businesses manage their customer relationships efficiently.  It offers a user-friendly interface for tracking contacts, organizations, and opportunities while providing powerful customization options.",instructions:"Twenty CRM is deployed with a server and a background worker service. The SERVER_URL is automatically set to the Easypanel-generated domain. If you configure a custom domain for the Twenty service, also update the SERVER_URL environment variable in the worker service to match.",changeLog:[{date:"2025-05-22",description:"First release"},{date:"2025-08-19",description:"Update to v1.3.0"},{date:"2026-05-18",description:"Major Update to v2.5.3 with new features and improvements"},{date:"2025-06-19",description:"Update to v2.14.3 fixing invalid v2.5.3"}],links:[{label:"Website",url:"https://twenty.com/"},{label:"Documentation",url:"https://docs.twenty.com/"},{label:"Github",url:"https://github.com/twentyhq/twenty"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"twenty"},appServiceImage:{type:"string",title:"App Service Image",default:"twentycrm/twenty:v2.14.3"}}},benefits:[{title:"Modern User Interface",description:"Twenty CRM offers a clean, intuitive user interface that makes managing customer relationships simple and efficient."},{title:"Open Source",description:"As an open-source platform, Twenty CRM provides full transparency, customizability, and no vendor lock-in."},{title:"Customizable",description:"Easily adapt the CRM to your specific business needs with extensive customization options."},{title:"Scalable",description:"Built with modern technologies, Twenty CRM scales with your business from startups to enterprises."}],features:[{title:"Contact Management",description:"Easily manage and organize your contacts with comprehensive profiles and interaction history."},{title:"Organization Tracking",description:"Keep track of companies, their contacts, and business opportunities in one place."},{title:"Task Management",description:"Create, assign, and track tasks to ensure nothing falls through the cracks."},{title:"Customizable Workflows",description:"Adapt the CRM's workflows to match your specific business processes."},{title:"Data Import/Export",description:"Easily import existing contact data or export data for use in other systems."}],tags:["CRM","Business Apps","Productivity","Collaboration"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32),n=["NODE_PORT=3000","PG_DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)?sslmode=disable"),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"STORAGE_TYPE=local","APP_SECRET=".concat(o),"SERVER_URL=".concat("https://$(PRIMARY_DOMAIN)")].join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:n,mounts:[{type:"volume",name:"server-local-data",mountPath:"/app/packages/twenty-server/.local-storage"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:[n,"DISABLE_DB_MIGRATIONS=true","DISABLE_CRON_JOBS_REGISTRATION=true"].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{command:"yarn worker:prod"},mounts:[{type:"bind",hostPath:"/etc/easypanel/projects/$(PROJECT_NAME)/".concat(e.appServiceName,"/volumes/server-local-data"),mountPath:"/app/packages/twenty-server/.local-storage"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"twingate",meta:{name:"Twingate",description:"Twingate Connector securely bridges your private network resources to the Twingate Zero Trust platform without exposing inbound ports. Deploy a lightweight connector container and authenticate it with your tenant network and connector tokens.",instructions:"Before deploying, create a Connector in your Twingate Admin Console and copy the generated tokens. Set `Twingate Network` to your tenant name (the subdomain part of your Twingate URL), then paste the connector `Access Token` and `Refresh Token` into the template fields. Deploy at least one connector; for production, run two connectors on separate hosts for high availability.",changeLog:[{date:"2026-03-27",description:"Initial template release"},{date:"2026-03-27",description:"Version bumped to 1.88.0"}],links:[{label:"Website",url:"https://www.twingate.com"},{label:"GitHub",url:"https://github.com/Twingate/docker"},{label:"Docker Hub",url:"https://hub.docker.com/r/twingate/connector"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","twingateNetwork","twingateAccessToken","twingateRefreshToken","twingateLogAnalytics","twingateLogLevel"],properties:{appServiceName:{type:"string",title:"Connector Name",default:"twingate-connector"},appServiceImage:{type:"string",title:"Connector Image",default:"twingate/connector:1.88.0"},twingateNetwork:{type:"string",title:"Twingate Network (Tenant Name)",default:""},twingateAccessToken:{type:"string",title:"Twingate Access Token",default:""},twingateRefreshToken:{type:"string",title:"Twingate Refresh Token",default:""},twingateLogAnalytics:{type:"string",title:"Log Analytics Version",default:"v2",oneOf:[{enum:["v1"],title:"v1"},{enum:["v2"],title:"v2"}]},twingateLogLevel:{type:"string",title:"Log Level",default:"3",oneOf:[{enum:["0"],title:"0"},{enum:["1"],title:"1"},{enum:["2"],title:"2"},{enum:["3"],title:"3"},{enum:["4"],title:"4"},{enum:["5"],title:"5"}]}}},benefits:[{title:"Zero Trust Private Access",description:"Publish internal resources through Twingate without opening inbound firewall ports or exposing services directly to the internet."},{title:"Lightweight Deployment",description:"Run the connector as a single container with minimal configuration and straightforward token-based authentication."},{title:"Better Access Control",description:"Centralize remote access policies in Twingate while keeping workloads in your own infrastru
1cture."}],features:[{title:"Token-Based Connector Authentication",description:"Configure tenant, access token, and refresh token values directly through template inputs."},{title:"Built-in Logging Controls",description:"Tune connector observability with configurable analytics version and log level settings."},{title:"Compose-Compatible Environment",description:"Mirrors the standard Docker Compose connector environment variable setup for easy migration."}],tags:["Security","Zero Trust","Networking","Remote Access"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[],a=["TWINGATE_NETWORK=".concat(e.twingateNetwork),"TWINGATE_ACCESS_TOKEN=".concat(e.twingateAccessToken),"TWINGATE_REFRESH_TOKEN=".concat(e.twingateRefreshToken),"TWINGATE_LOG_ANALYTICS=".concat(e.twingateLogAnalytics),"TWINGATE_LOG_LEVEL=".concat(e.twingateLogLevel)];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:a.join("\n")}}),{services:t}}},{slug:"tyk-gateway",meta:{name:"Tyk Gateway",description:"Tyk Gateway is an open-source API gateway for securing, scaling, and observing APIs. It sits in front of your upstream services and handles rate limiting, authentication, analytics, and transformations. This template runs the gateway in standalone mode with Redis for storage.",instructions:"After deployment, access Tyk Gateway on the main domain (port 8080). Add API\ndefinitions by placing JSON files in the apps volume (mounted at\n/opt/tyk-gateway/apps). Configure policies in the policies volume and\nmiddleware in the middleware volume. TYK_GW_SECRET is auto-generated; use it\nwhen calling the Gateway API or with the Dashboard.\n",changeLog:[{date:"2026-03-11",description:"First Release"}],links:[{label:"Website",url:"https://tyk.io/"},{label:"Documentation",url:"https://tyk.io/docs/"},{label:"GitHub",url:"https://github.com/TykTechnologies/tyk"},{label:"Docker examples",url:"https://github.com/TykTechnologies/tyk-gateway-docker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","gatewayImage","redisImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"tyk-gateway"},gatewayImage:{type:"string",title:"Gateway Image",default:"docker.tyk.io/tyk-gateway/tyk-gateway:v5.11.0"},redisImage:{type:"string",title:"Redis Image",default:"redis:6.2.20-alpine"}}},benefits:[{title:"API Security",description:"Protect and authenticate APIs with keys, JWT, and policies"},{title:"Rate Limiting",description:"Built-in rate limiting and quotas per API and key"},{title:"Self-Hosted",description:"Full control over your API traffic and data"},{title:"Extensible",description:"Middleware, plugins, and file-based API definitions"}],features:[{title:"Standalone Mode",description:"Runs with Redis; no Dashboard or Pump required"},{title:"File-Based Config",description:"APIs and policies loaded from mounted volumes"},{title:"Redis Storage",description:"Session and rate-limit state in Redis"},{title:"WebSocket & REST",description:"Proxy HTTP, HTTPS, and WebSocket upstreams"}],tags:["API Gateway","API","Redis","Open Source","Self-hosted"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[],a=y(32),i=v(),o="$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),n=JSON.stringify({log_level:"info",listen_port:8080,secret:a,template_path:"/opt/tyk-gateway/templates",tyk_js_path:"/opt/tyk-gateway/js/tyk.js",middleware_path:"/opt/tyk-gateway/middleware",use_db_app_configs:!1,app_path:"/opt/tyk-gateway/apps/",storage:{type:"redis",host:o,port:6379,username:"default",password:i,database:0,optimisation_max_idle:2e3,optimisation_max_active:4e3},enable_analytics:!1,analytics_config:{type:"",ignored_ips:[]},health_check:{enable_health_checks:!1,health_check_value_timeouts:60},enable_non_transactional_rate_limiter:!0,enable_sentinel_rate_limiter:!1,enable_redis_rolling_limiter:!1,allow_master_keys:!1,policies:{policy_source:"file",policy_path:"/opt/tyk-gateway/policies"},hash_keys:!0,close_connections:!1,http_server_options:{enable_websockets:!0},allow_insecure_configs:!0,coprocess_options:{enable_coprocess:!0,coprocess_grpc_server:""},enable_bundle_downloader:!0,bundle_base_url:"",global_session_lifetime:100,force_global_session_lifetime:!1,max_idle_connections_per_host:500,enable_jsvm:!0},null,2);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.gatewayImage},env:"TYK_GW_SECRET=".concat(a),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"file",content:n,mountPath:"/opt/tyk-gateway/tyk.conf"},{type:"volume",name:"apps",mountPath:"/opt/tyk-gateway/apps"},{type:"volume",name:"middleware",mountPath:"/opt/tyk-gateway/middleware"},{type:"volume",name:"certs",mountPath:"/opt/tyk-gateway/certs"},{type:"volume",name:"policies",mountPath:"/opt/tyk-gateway/policies"}]}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i,image:e.redisImage}}),{services:t}}},{slug:"typebot",meta:{name:"Typebot",description:"Typebot is an innovative app designed to revolutionize the way you collect information. It allows you to build advanced chatbots visually, using powerful blocks to create unique chat experiences. You can embed these chatbots anywhere on your web or mobile apps and start collecting results instantly. Typebot is designed to replace your old school forms with chatbots, leading to an increase in customer satisfaction, retention, and a threefold increase in your conversion rate compared to traditional forms. With Typebot, you can easily drag and drop blocks to create your app, and even add custom code for your specific needs. It also offers native integration blocks and instructions on how to embed the chatbot on various platforms. One of the main advantages of Typebot is its real-time data collection feature, ensuring that you won't lose any valuable data. It also offers many more powerful features such as hidden fields, team collaboration, linking to sub chatbots, custom code, custom domains, and folder management. Typebot is loved by teams and creators from all around the world for its intelligent features and drag-and-drop simplicity.",instructions:"Please configure at least one OAuth provider for authentication.",changeLog:[{date:"2023-02-27",description:"first release"},{date:"2023-03-13",description:"Update to v2.11.4"},{date:"2023-03-22",description:"Update to v2.11.6"},{date:"2023-07-16",description:"Update to V2"},{date:"2025-01-17",description:"Updated to use Redis instead of MinIO, simplified configuration"},{date:"2025-07-28",description:"Updated the template."},{date:"2025-12-29",description:"Version bumped to 3.14.2"},{date:"2026-02-24",description:"Version bumped to 3.15.2"}],links:[{label:"Website",url:"https://typebot.io"},{label:"Documentation",url:"https://docs.typebot.io/"},{label:"Github",url:"https://github.com/baptisteArno/typebot.io/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Alan Frigo",url:"https://github.com/alanfrigo"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","builderServiceImage","viewerServiceImage","adminEmail"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"typebot"},builderServiceImage:{type:"string",title:"Builder Service Image",default:"baptistearno/typebot-builder:3.15.2"},viewerServiceImage:{type:"string",title:"Viewer Service Image",default:"baptistearno/typebot-viewer:3.15.2"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]",description:"Email address for the administrator account"},githubClientId:{type:"string",title:"GitHub Client ID (Optional)",default:"",description:"GitHub OAuth App Client ID for authentication"},githubClientSecret:{type:"string",title:"GitHub Client Secret (Optional)",default:"",description:"GitHub OAuth App Client Secret for authentication"},googleAuthClientId:{type:"string",title:"Google OAuth Client ID (Optional)",default:"",description:"Google OAuth Client ID for authentication"},googleAuthClientSecret:{type:"string",title:"Google OAuth Client Secret (Optional)",default:"",description:"Google OAuth Client Secret for authentication"}}},benefits:[{title:"Build advanced chatbots visually",description:"Typebot gives you powerful blocks to create unique chat experiences. Embed them anywhere on your web/mobile apps and start collecting results like magic."},{title:"Replace your old school forms with chatbots",description:"Typebot is a better way to ask for information. It leads to an increase in customer satisfaction and retention and multiply by 3 your conversion rate compared to classical forms."}],features:[{title:"Easy building experience",description:"All you have to do is drag and drop blocks to create your app. Even if you have custom needs, you can always add custom code."},{title:"Embed it in a click",description:"Embedding your typebot in your applications is a walk in the park. Typebot gives you several step-by-step platform-specific instructions. Your typebot will always feel 'native'."},{title:"Integrate with any platform",description:"Typebot offers several native integrations blocks as well as instructions on how to embed typebot on particular platforms."},{title:"Collect results in real-time",description:"One of the main advantages of a chat application is that you collect the user's responses on each question. You won't lose any valuable data."},{title:"And many more features",description:"Typebot makes form building easy and comes with powerful features like hidden fields, team collaboration, link to sub typebots, custom code, custom domain, and folder management."},{title:"OAuth Authentication",description:"Support for multiple OAuth providers including GitHub and Google for secure user authentication and easy login management."}],tags:["Chat","Forms","Customer Support"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=v(),o=v(),n=["ENCRYPTION_SECRET=".concat(a),"DATABASE_URL=postgresql://postgres:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"NODE_OPTIONS=--no-node-snapshot","NEXTAUTH_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-builder.$(EASYPANEL_HOST)"),"NEXT_PUBLIC_VIEWER_URL=https://$(PROJECT_NAME)-".concat(e.appServiceName,"-viewer.$(EASYPANEL_HOST)"),"ADMIN_EMAIL=".concat(e.adminEmail),"REDIS_URL=redis://default:".concat(o,"@$(PROJECT_NAME)-").concat(e.appServiceName,"-redis:6379")];return e.githubClientId&&e.githubClientSecret&&""!==e.githubClientId.trim()&&""!==e.githubClientSecret.trim()&&n.push("GITHUB_CLIENT_ID=".concat(e.githubClientId),"GITHUB_CLIENT_SECRET=".concat(e.githubClientSecret)),e.googleAuthClientId&&e.googleAuthClientSecret&&""!==e.googleAuthClientId.trim()&&""!==e.googleAuthClientSecret.trim()&&n.push("GOOGLE_AUTH_CLIENT_ID=".concat(e.googleAuthClientId),"GOOGLE_AUTH_CLIENT_SECRET=".concat(e.googleAuthClientSecret)),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:i}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-builder"),source:{type:"image",image:e.builderServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:et(n).join("\n")}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-viewer"),source:{type:"image",image:e.viewerServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:et(n).join("\n")}}),{services:t}}},{slug:"typesense",meta:{name:"Typesense",description:"Typesense is a powerful, fast, and typo-tolerant search engine designed to provide delightful search experiences. It is an open-source alternative to Algolia and a more user-friendly alternative to ElasticSearch. Typesense is capable of handling typographical errors gracefully, right out of the box. It is meticulously architected for low-latency, instant searches, offering a response time of less than 50ms. The app allows easy tailoring of search results, sorting of results based on a particular field at query time, and refining of results through faceting and filtering. It also supports grouping of similar results, federated search across multiple collections, geographic location-based search and s
1orting, and vector searching. Typesense also allows the generation of API keys for access to specific records, making it suitable for multi-tenant applications. It is designed to be simple to set up, integrate with, operate, and scale, making it a perfect choice for building delightful search experiences.",instructions:"Find your API key in the environment tab",changeLog:[{date:"2023-1-25",description:"first release"},{date:"2025-03-03",description:"Version bumped to 29.0.rc4"},{date:"2025-07-25",description:"Version bumped to 30.0.rc5"},{date:"2025-12-29",description:"Version bumped to 30.0.rca36"},{date:"2026-02-24",description:"Version bumped to 30.2.rc4"}],links:[{label:"Documentation",url:"https://typesense.org/docs/"},{label:"Github",url:"https://github.com/typesense/typesense"},{label:"Website",url:"https://typesense.org/"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"typesense"},appServiceImage:{type:"string",title:"App Service Image",default:"typesense/typesense:30.2.rc4"}}},tags:["Documentation","Developer Tools","Data Science","Search"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["TYPESENSE_API_KEY=".concat(a),"TYPESENSE_DATA_DIR=/data","TYPESENSE_API_ADDRESS=0.0.0.0"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8108}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"ubooquity",meta:{name:"Ubooquity",description:"Ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. It provides a clean web interface to browse, read, and organize your digital library from any device. Ubooquity supports various formats including CBZ, CBR, CB7, PDF, EPUB, and many more. It features user management, reading progress tracking, and can serve your media collection to multiple users simultaneously. The server includes both a library interface for browsing and an admin interface for configuration, making it perfect for managing your digital book and comic collection at home.",instructions:null,changeLog:[{date:"2025-07-14",description:"Initial template release"},{date:"2026-04-19",description:"Added GitHub link (official documentation repository)"}],links:[{label:"Website",url:"https://vaemendis.net/ubooquity/"},{label:"Documentation",url:"https://vaemendis.github.io/ubooquity-doc/pages/installation-guide.html"},{label:"GitHub",url:"https://github.com/vaemendis/ubooquity-doc"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","appServicePort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ubooquity"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/ubooquity:2.1.5"},appServicePort:{type:"string",title:"App Service Port",default:"2202"}}},benefits:[{title:"Easy Digital Library Management",description:"Organize and browse your comics and ebooks through a clean web interface accessible from any device."},{title:"Multiple Format Support",description:"Supports CBZ, CBR, CB7, PDF, EPUB, and many other digital book and comic formats."},{title:"User Management",description:"Create multiple user accounts with different access levels for family members or friends."},{title:"Reading Progress Tracking",description:"Keep track of your reading progress across devices and resume where you left off."},{title:"Lightweight and Fast",description:"Minimal resource usage with fast browsing and reading experience for large libraries."}],features:[{title:"Media Server",description:"Serves your digital book and comic collection through a centralized web-based platform accessible from any device"},{title:"Ebook Reader",description:"Built-in web reader supporting EPUB, PDF, MOBI, and other popular ebook formats with customizable reading experience"},{title:"Comic Reader",description:"Dedicated comic reader with page-by-page navigation supporting CBZ, CBR, CB7, and PDF comic formats"},{title:"Library Management",description:"Organize and categorize your digital collection with automatic metadata extraction and custom folder structures"},{title:"Web Interface",description:"Clean, responsive web interface that works seamlessly across desktop, tablet, and mobile devices"},{title:"User Management",description:"Create multiple user accounts with different access levels and reading permissions for family or shared use"},{title:"Reading Progress",description:"Automatic bookmark system that tracks reading progress across devices and allows resuming from where you left off"},{title:"Multi-Format Support",description:"Comprehensive support for various digital book and comic formats including CBZ, CBR, CB7, PDF, EPUB, MOBI, and more"},{title:"Digital Library",description:"Transform your local book and comic collection into a professionally organized digital library with search capabilities"},{title:"Home Server",description:"Self-hosted solution that keeps your digital media collection private and accessible only to authorized users"}],tags:["Books","Comics","Digital Library","Media Server","Reading","Home Server","Web Interface","Library Management","PDF Reader","Comic Reader"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:2203,path:"/ubooquity/admin"}],ports:[{published:Number(e.appServicePort),target:2202,protocol:"tcp"}],env:["PUID=1000","PGID=1000","TZ=UTC","MAXMEM=1024"].join("\n"),mounts:[{type:"volume",name:"ubooquity-config",mountPath:"/config"},{type:"volume",name:"ubooquity-books",mountPath:"/books"},{type:"volume",name:"ubooquity-comics",mountPath:"/comics"},{type:"volume",name:"ubooquity-files",mountPath:"/files"}]}}),{services:t}}},{slug:"ulogger",meta:{name:"uLogger",description:"uLogger is a lightweight, self-hosted GPS tracking platform that allows you to track and visualize your location data. It's perfect for personal use, fleet management, or tracking outdoor activities.",instructions:null,changeLog:[{date:"2025-04-30",description:"Initial release"}],links:[{label:"GitHub",url:"https://github.com/bfabiszewski/ulogger-server"},{label:"Docker Hub",url:"https://hub.docker.com/r/bfabiszewski/ulogger"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ulogger"},appServiceImage:{type:"string",title:"App Service Image",default:"bfabiszewski/ulogger:v1.0"}}},benefits:[{title:"Self-hosted GPS Tracking",description:"Keep your location data private by hosting your own GPS tracking platform"},{title:"Lightweight Solution",description:"Minimal resource requirements make it perfect for small deployments"},{title:"Multi-language Support",description:"Available in multiple languages for global accessibility"},{title:"Open Source",description:"Free and open-source platform with active community support"}],features:[{title:"GPS Tracking",description:"Track and record location data with high precision"},{title:"Web Interface",description:"User-friendly web interface for viewing and managing tracks"},{title:"Mobile Support",description:"Compatible with various GPS tracking apps for mobile devices"},{title:"Track Management",description:"Organize and manage multiple tracks with ease"},{title:"Data Export",description:"Export your tracking data in various formats"},{title:"Customizable",description:"Configure language and other settings to suit your needs"}],tags:["GPS Tracking","Location","Self-hosted","Open Source","Mobile"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["ULOGGER_LANG=pl"].join("\n")}}),{services:t}}},{slug:"umami",meta:{name:"Umami",description:"Umami is a privacy-focused, open-source alternative to Google Analytics. It is designed to respect user privacy by not collecting any personal information, using cookies, or tracking users across websites. It is GDPR compliant and ensures that all data collected is anonymized, making it impossible to identify any individual user. Umami is simple and easy to use, collecting only the metrics you care about and presenting them on a single page. It is a reliable and transparent product with over 4 million downloads. With Umami, you can own your data and stay compliant with ever-changing data privacy laws.",instructions:'You can login with username "admin" and password "umami".',changeLog:[{date:"2022-09-27",description:"first release"},{date:"2025-07-25",description:"Version bumped to v2.18.1"},{date:"2025-12-29",description:"Version bumped to v2.20.2"}],links:[{label:"Website",url:"https://umami.is/"},{label:"Github",url:"https://github.com/umami-software/umami"},{label:"Documentation",url:"https://umami.is/docs"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"umami"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/umami-software/umami:postgresql-v2.20.2"},databaseServiceName:{type:"string",title:"Database Service Name",default:"umami-db"}}},benefits:[{title:"Privacy-focused analytics",description:"Umami respects the privacy of your users by not collecting any personal information, using cookies, or tracking users across websites. It is GDPR compliant and does not require a cookie notice."},{title:"Data ownership",description:"With Umami, you own your website analytics data. All data collected is anonymized, making it impossible to identify individual users. Rest assured knowing that your data is securely in your hands."},{title:"Simple and easy to use",description:"Umami provides simple and easy-to-understand analytics without the need for complicated reports. It collects only the metrics you care about and presents them on a single page."}],features:[{title:"Privacy-focused alternative to Google Analytics",description:"Umami is an open-source, privacy-focused alternative to Google Analytics. It allows you to gather the data you need while respecting the privacy of your users."},{title:"Open source and transparent",description:"Umami is an open-source project, fully transparent, battle-tested, and community-supported. Place your confidence in a product that is dedicated to open source development."}],tags:["Analytics","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y();return t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"DATABASE_TYPE=postgresql","HASH_SALT=".concat(i)].join("\n")}}),{services:t}}},{slug:"universalmediaserver",meta:{name:"Universal Media Server",description:"Universal Media Server (UMS) is a DLNA-compliant media server that can share videos, audio, and images to any DLNA-capable device, including smart TVs, game c
1onsoles, mobile devices, and other computers. It supports a wide range of formats and offers extensive customization options for transcoding and streaming.",instructions:"Mount your media library to the `ums-media` volume at `/root/media`, then open Universal Media Server from your Easypanel domain and complete the initial library scan and device discovery setup.",changeLog:[{date:"2025-04-25",description:"Initial release"}],links:[{label:"Website",url:"https://www.universalmediaserver.com/"},{label:"GitHub",url:"https://github.com/UniversalMediaServer/UniversalMediaServer"},{label:"Docker Hub",url:"https://hub.docker.com/r/universalmediaserver/ums"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"universalmediaserver"},appServiceImage:{type:"string",title:"App Service Image",default:"universalmediaserver/ums:14.12.0"}}},benefits:[{title:"Universal Compatibility",description:"Stream to virtually any device including smart TVs, game c
1onsoles, and mobile devices"},{title:"Format Support",description:"Support for an extensive range of audio and video formats with on-the-fly transcoding"},{title:"No Client Required",description:"Works with native DLNA clients already built into many devices"},{title:"Lightweight & Efficient",description:"Designed to run efficiently even on modest hardware"}],features:[{title:"DLNA/UPnP Compliance",description:"Fully compatible with DLNA and UPnP standards for seamless streaming"},{title:"Automatic Transcoding",description:"Automatically converts media to formats supported by the target device"},{title:"Subtitle Support",description:"Handles external and embedded subtitles in various formats"},{title:"Web Interface",description:"User-friendly web interface for configuration and media management"},{title:"Thumbnail Generation",description:"Automatically generates thumbnails and previews for media"},{title:"Media Library Organization",description:"Sorts and categorizes media for easy browsing"}],tags:["Media Server","DLNA","Streaming","Transcoding","Home Media"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"ums-media",mountPath:"/root/media"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:9001}]}}),{services:t}}},{slug:"unleash",meta:{name:"Unleash",description:"Unleash is an open-source feature management software designed to cater to the needs of large enterprises. It provides a private, secure, and scalable platform that is ready to handle complex setups right out of the box. Unleash allows you to code freely, release confidently, and then scale your software. It offers a 'buy, then build' solution that is flexible, multilingual, and scales along with your business processes. This results in reduced costs, efficient hours, and less technical debt. Unleash also allows for progressive, targeted feature rollouts, enabling you to release features to selected users the moment you're ready. It supports change requests and approvals, and provides resilience during service outages. With Unleash, you can easily customize the software to your specific use cases, build multiple environments on separate instances, and keep your user data safe through privacy by design, data residency, and flexible hosting options.",instructions:"Login with admin:unleash4all",changeLog:[{date:"2023-04-12",description:"first release"},{date:"2025-03-03",description:"Version bumped to 6.7"},{date:"2025-07-25",description:"Version bumped to 7.0"},{date:"2025-12-29",description:"Version bumped to 7.4"},{date:"2026-05-07",description:"Version bumped to 7.6.3"}],links:[{label:"Website",url:"https://getunleash.io"},{label:"Documentation",url:"https://docs.getunleash.io"},{label:"Github",url:"https://github.com/Unleash/unleash"},{label:"Demo",url:"https://www.getunleash.io/interactive-demo"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"unleash"},appServiceImage:{type:"string",title:"App Service Image",default:"unleashorg/unleash-server:7.6.3"},databaseServiceName:{type:"string",title:"Database Service Name",default:"unleash-db"}}},benefits:[{title:"Flexible and scalable feature management",description:"Unleash allows you to easily manage and control feature flags across all your environments, applications, and services. It scales along with your business needs and processes, providing flexibility and adaptability."},{title:"Safe and frequent deployments",description:"With Unleash, you can move from all-or-nothing releases to safe and frequent deployments. You can release features to specific users or groups, gather iterative feedback, and conduct A/B testing to ensure a smooth and successful rollout."},{title:"Cost-effective and efficient software delivery",description:"By using Unleash, you can reduce costs, save time, and improve efficiency in your software delivery workflow. It helps you cut down on technical debt, streamline development processes, and enable faster release cycles."},{title:"Privacy and data security",description:"Unleash prioritizes privacy by design and ensures the security of user data. It offers data residency, private instances, and flexible hosting options to keep your user data safe and compliant with regulations like GDPR and Schrems II."}],features:[{title:"Simple and intuitive feature management",description:"Unleash provides a user-friendly interface and intuitive tools to manage and organize your feature flags. It makes feature management easy and accessible for developers, allowing them to toggle features on/off with ease."},{title:"Fast and easy setup",description:"Getting started with Unleash is quick and hassle-free. It only takes two steps to set up the software and start improving your software delivery workflow. You can be up and running in minutes."},{title:"Powerful customization options",description:"Unleash offers powerful customization capabilities, allowing you to tailor the software to your specific use cases. It has a clean and powerful UI with an API-first design, enabling you to build on top of it and create what you need."},{title:"Transparent and open-source",description:"Unleash is an open-source feature management software, providing transparency and full insight into its development process. It has been built, reviewed, and trusted by millions of users worldwide."}],tags:["Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["UNLEASH_URL=https://$(PRIMARY_DOMAIN)","DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"DATABASE_SSL=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4242}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"unsend",meta:{name:"Unsend",description:"Unsend is a self-hosted, alternative email-sending platform that provides a reliable and cost-effective way to send emails using Amazon SES. With a powerful dashboard, Unsend allows users to manage contacts, send bulk emails (such as newsletters and product updates), and handle subscriptions seamlessly. Future updates aim to support additional communication channels, including SMS, push notifications, and WhatsApp.",instructions:"You can use Minio for S3 Compatibility and provide AWS like credentials for it.",changeLog:[{date:"2025-03-17",description:"First Release (v1.4.0)"},{date:"2025-07-25",description:"Version bumped to v1.5.4"},{date:"2025-12-29",description:"Version bumped to v1.5.5"}],links:[{label:"Documentation",url:"https://unsend.dev/"},{label:"Github",url:"https://github.com/unsend-dev/unsend/tree/main"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","awsAccessKey","secretKey","defaultRegion","githubId","githubSecret","minioRootUsername","minioRootPassword","minioImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"unsend"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/unsend-dev/unsend:v1.5.5"},awsAccessKey:{type:"string",title:"AWS Access Key",description:"This is the AWS Access Key associated with your AWS account."},secretKey:{type:"string",title:"AWS Secret Key",description:"This is the AWS Secret Key associated with your AWS account."},defaultRegion:{type:"string",title:"Default Region",default:"us-east-1"},githubId:{type:"string",title:"Github ID",description:"This is the GitHub ID associated with your GitHub account."},githubSecret:{type:"string",title:"Github Secret",description:"This is the GitHub Secret associated with your GitHub account."},minioImage:{type:"string",title:"Minio Image",default:"minio/minio:RELEASE.2025-02-28T09-55-16Z",description:"This is the Minio image to be used for storing email attachments and"},minioRootUsername:{type:"string",title:"Minio Root Username",default:"admin",description:"This is the Minio root username for accessing the Minio storage."},minioRootPassword:{type:"string",title:"Minio Root Password",default:"admin",description:"This is the Minio root password for accessing the Minio storage."}}},benefits:[{title:"Reliable and Cost-Effective Email Sending",description:"Unsend leverages Amazon SES to provide a scalable and affordable alternative to traditional email providers."},{title:"Self-Hosted for Full Control",description:"Unlike SaaS email platforms, Unsend allows you to host your own instance, ensuring full control over email deliverability and data security."},{title:"Bulk Email Management",description:"Unsend makes it easy to manage contacts and send bulk emails, such as newsletters, transactional emails, and product updates."},{title:"Subscription Handling",description:"Unsend automatically manages email subscriptions and opt-outs, ensuring compliance with user preferences."},{title:"Future Multi-Channel Support",description:"Future updates aim to expand Unsend to support SMS, push notifications, and WhatsApp messaging."}],features:[{title:"Amazon SES Integration",description:"Unsend seamlessly integrates with Amazon SES for reliable email delivery."},{title:"Contact Management",description:"Users can manage and organize email contacts through a user-friendly dashboard."},{title:"Bulk Email Sending",description:"Unsend supports sending mass emails with customizable templates."},{title:"Subscription & Unsubscription Management",description:"Automatically handles email subscriptions and opt-outs for compliance and better user engagement."},{title:"OAuth Integration",description:"Supports GitHub OAuth authentication for secure and seamless login."}],tags:["Email","Self-Hosted","Amazon SES","Bulk Email","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PORT=3000","DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_SECRET=".concat(o),"AWS_ACCESS_KEY=".concat(e.awsAccessKey),"AWS_SECRET_KEY=".concat(e.secretKey),"AWS_DEFAULT_REGION=".concat(e.defaultRegion),"GITHUB_ID=".concat(e.githubId),"GITHUB_SECRET=".concat(e.githubSecret),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"NEXT_PUBLIC_IS_CLOUD=false","API_RATE_LIMIT=1"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-minio"),env:["MINIO_SERVER_URL=https://$(EASYPANEL_DOMAIN)","MINIO_ROOT_USER=".concat(e.minioRootUsername),"MINIO_ROOT_PASSWORD=".concat(e.minioRootPassword)].join("\n"),source:{type:"image",image:e.minioImage},mounts:[{type:"volume",name:"data",mountPath:"/data"}],domains:[{host:"console-$(EASYPANEL_DOMAIN)",port:9001},{host:"$(EASYPANEL_DOMAIN)",port:9e3}],deploy:{command:'minio server /data --console-address ":9001"'}}}),{services:t}}},{slug:"upsnap",meta:{name:"UpSnap",description:"UpSnap is a self-hosted wake-on-lan (WOL) server with a modern web interface. It allows you to remotely power on computers on your local network from anywhere through an intuitive dashboard. UpSnap features device management with customizable names and MAC addresses, wake history tracking, and user authentication. Perfect for home networks, small office
1s, or lab environments where you need to remotely manage the power state of multiple machines.",instructions:"Open UpSnap from your domain, create an admin account, then add your devices with their MAC addresses and host details. Ensure Wake-on-LAN is enabled in each target machine BIOS/UEFI and network adapter settings.",changeLog:[{date:"2025-04-24",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/seriousm4x/upsnap"},{label:"Container",url:"https://github.com/seriousm4x/upsnap/pkgs/container/upsnap"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"upsnap"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/seriousm4x/upsnap:4"}}},benefits:[{title:"Remote Power Management",description:"Conveniently power on your network devices from anywhere using Wake-on-LAN technology, eliminating the need for physical access."},{title:"Centralized Dashboard",description:"Manage all your network devices from a single, user-friendly interface that provides quick access to power controls and device status."},{title:"Enhanced Network Control",description:"Gain better control over your network by being able to power on devices when needed, saving energy when machines are not in use."}],features:[{title:"Modern Web Interface",description:"UpSnap provides a clean, responsive web interface that works across devices and screen sizes for easy device management."},{title:"Device Management",description:"Add, edit, and organize multiple devices with custom names, descriptions, and MAC addresses for easy identification."},{title:"Wake History",description:"Keep track of when devices were powered on with a detailed history log, providing visibility into your network activity."},{title:"User Authentication",description:"Secure your Wake-on-LAN controls with user authentication to prevent unauthorized access and power management."},{title:"Persistent Storage",description:"Store your device configurations and user data securely with persistent storage that survives container restarts and updates."}],tags:["Wake-on-LAN","Network Management","Remote Access","System Administration","Power Management"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8090}],mounts:[{type:"volume",name:"data",mountPath:"/app/pb_data"}]}}),{services:t}}},{slug:"uptimekuma",meta:{name:"UptimeKuma",description:"Uptime Kuma is a self-hosted monitoring tool designed to keep track of your website's uptime. It provides a comprehensive monitoring solution for HTTP(s), TCP, HTTP(s) Keyword, HTTP(s) Json Query, Ping, DNS Record, Push, Steam Game Server, and Docker Containers. The tool features a user-friendly, reactive, and fast UI/UX. It offers notifications via various platforms including Telegram, Discord, Gotify, Slack, Pushover, and Email (SMTP), among others. Uptime Kuma supports multi-language interfaces and multiple status pages, allowing users to map status pages to specific domains. It also provides ping charts, certificate info, proxy support, and 2FA support for enhanced security. This tool is perfect for those who want to ensure their website is always up and running.",instructions:null,changeLog:[{date:"2022-08-02",description:"first release"},{date:"2025-03-03",description:"Version bumped to 2.0.0-beta.1"},{date:"2025-07-25",description:"Version bumped to 2.0.0-beta.3"},{date:"2025-12-29",description:"Version bumped to 2.1.0-beta.0"},{date:"2026-02-24",description:"Version bumped to 2.1.3"},{date:"2026-05-07",description:"Version bumped to 2.3.2"}],links:[{label:"Website",url:"https://uptime.kuma.pet"},{label:"Documentation",url:"https://github.com/louislam/uptime-kuma/wiki"},{label:"Github",url:"https://github.com/louislam/uptime-kuma"}],contributors:[{name:"Ivan Ryan",url:"https://github.com/ivanonpc-22"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"uptimekuma"},appServiceImage:{type:"string",title:"App Service Image",default:"louislam/uptime-kuma:2.3.2"}}},benefits:[{title:"Easy-to-use monitoring tool",description:"Uptime Kuma is a self-hosted monitoring tool that is designed to be user-friendly and easy to set up and use."},{title:"Monitoring for various types of services",description:"Uptime Kuma can monitor uptime for HTTP(s), TCP, HTTP(s) Keyword, HTTP(s) Json Query, Ping, DNS Record, Push, Steam Game Server, and Docker Containers."},{title:"Fancy and reactive UI/UX",description:"Uptime Kuma provides a visually appealing and responsive user interface that enhances the monitoring experience."},{title:"Notifications via multiple channels",description:"Uptime Kuma supports notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and over 90 other notification services."},{title:"Real-time monitoring with 20-second intervals",description:"Uptime Kuma provides real-time monitoring with 20-second intervals, allowing you to quickly detect and respond to any issues or downtime."}],features:[{title:"Easy installation with Docker",description:"Uptime Kuma can be easily installed using Docker, making it convenient to set up and run on your preferred platform."},{title:"Support for non-Docker installations",description:"Uptime Kuma also supports non-Docker installations on major Linux distributions and Windows platforms."},{title:"Monitoring of Docker containers",description:"Uptime Kuma can monitor the uptime of Docker containers, providing insights into the availability and performance of your containerized applications."},{title:"Multi-language support",description:"Uptime Kuma supports multiple languages, allowing users from different regions to use the app in their preferred language."},{title:"Status pages and domain mapping",description:"Uptime Kuma allows you to create status pages and map them to specific domains, providing a centralized view of the status of your services."}],tags:["Monitoring","Self-hosted","Uptime"],logo:"logo.svg",screenshots:["screenshot.jpg"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),{services:t}}},{slug:"uptrace",meta:{name:"Uptrace",description:"Uptrace is an open-source APM platform for traces, metrics, and logs using OpenTelemetry, with ClickHouse storage and PostgreSQL metadata. This template follows the official example/docker compose stack (Uptrace, ClickHouse, Postgres, Redis, OTel Collector, Vector, Grafana, Prometheus, Alertmanager, Mailpit). The Vector image uses timberio/vector:0.28.X-alpine to match that upstream example (legacy Docker Hub namespace); migrate to distroless/vector only when you intentionally diverge from upstream.",instructions:"Login; Use the admin name/email/password from the template form (password is random if left blank). The project DSN token is generated once per deploy and embedded in `/etc/uptrace/config.yml`, OTel Collector, Grafana datasource, Prometheus remote_write, and Vector\u2014keep file mounts stable or regenerate configs together. Ingestion; Published host ports match the upstream example\u201414317\u21924317 (Uptrace gRPC, referenced in `site.ingest_url`), 4317/4318 (OTLP on the collector). On shared hosts these can conflict; change published ports in Easypanel and update `ingest_url` / client endpoints accordingly. Grafana & Mailpit use separate app domains on ports 3000 and 8025; assign subdomains or paths in Easypanel as needed. TLS; Upstream compose mounts TLS certs; this template omits them for HTTPS termination at the proxy\u2014see Uptrace docs if you need in-container TLS.",changeLog:[{date:"2026-03-23",description:"Fix ClickHouse password in config.yml to match CLICKHOUSE_PASSWORD (was hardcoded uptrace). Pin Mailpit to axllent/mailpit:v1.29.4."},{date:"2026-02-27",description:"First Release"},{date:"2026-03-20",description:"Square logo, image pin 2.1.0-beta.4, random project token, richer instructions, vector/timberio parity note. Vector pin 0.28.1-alpine, Grafana admin password randomized."},{date:"2026-05-07",description:"Version bumped to 2.1.0-beta.5"}],links:[{label:"Website",url:"https://uptrace.dev"},{label:"GitHub",url:"https://github.com/uptrace/uptrace"},{label:"Documentation",url:"https://uptrace.dev/get"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"uptrace"},appServiceImage:{type:"string",title:"Uptrace Image",default:"uptrace/uptrace:2.1.0-beta.5",description:"Pinned to the tag used in github.com/uptrace/uptrace example/docker docker-compose.yml; bump only with a tested exact tag."},adminName:{type:"string",title:"Admin Name",default:"Admin"},adminEmail:{type:"string",title:"Admin Email",default:"[email protected]"},adminPassword:{type:"string",title:"Admin Password",default:"",description:"Generated randomly if not provided."},grafanaAdminPassword:{type:"string",title:"Grafana admin password",default:"",description:"Grafana login user is admin. Leave empty for a random password (written to grafana.ini), or set explicitly."},orgName:{type:"string",title:"Organization Name",default:"Org1"},projectName:{type:"string",title:"Project Name",default:"Project1"}}},benefits:[{title:"All-in-One Observability",description:"Single UI for distributed traces, metrics, and logs with 50+ pre-built dashboards that auto-create when metrics start flowing."},{title:"Cost-Effective at Scale",description:"Process billions of spans on a single server using ClickHouse's efficient columnar storage with ZSTD compression (1KB span compresses to ~40 bytes)."},{title:"OpenTelemetry Native",description:"Built on the OpenTelemetry standard with support for OTLP, Prometheus, Vector, FluentBit, and CloudWatch ingestion."},{title:"Self-Hosted & Open Source",description:"Full control over your observability data with no vendor lock-in. Deploy on your own infrastructure with complete data sovereignty."}],features:[{title:"Distributed Tracing",description:"Visualize request flows across services with service graphs, faceted filters, and SQL-like query language for span analysis."},{title:"Metrics & Dashboards",description:"PromQL-like language for metrics aggregation with 50+ auto-created dashboards and chart annotations."},{title:"Alerting & Notifications",description:"Monitor spans, logs, and metrics with alerts via Email, Slack, Telegram, WebHook, and AlertManager integration."},{title:"Grafana Compatible",description:"Use Uptrace as a Tempo and Prometheus datasource in Grafana for seamless integration with existing dashboards."},{title:"Multi-Tenant Support",description:"Manage multiple organizations and projects with SSO support via OpenID Connect (Keycloak, Google, Cloudflare)."},{title:"High Performance",description:"More than 10K spans/second on a single core with excellent on-disk compression for cost-effective long-term retention."}],tags:["Monitoring","APM","OpenTelemetry","Observability","Tracing"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a="".concat(e.adminPassword||v()),i=e.adminEmail||"[email protected]",o=e.adminName||"Admin",n=v(),r=v(),s=v(),c=y(32),l="".concat(e.grafanaAdminPassword||v()),p="$(PROJECT_NAME)_".concat(e.appServiceName),d="$(PROJECT_NAME)_".concat(e.appServiceName,"-clickhouse"),u="$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),m="$(PROJECT_NAME)_".concat(e.appServiceName,"-redis");return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"file",content:tt(d,s,u,n,m,r,p,o,i,a,e.orgName||"Org1",e.projectName||"Project1",c),mountPath:"/etc/uptrace/config.yml"}],ports:[{published:14317,target:4317}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-clickhouse"),source:{type:"image",image:"clickhouse/clickhouse-server:25.8.15.35"},env:["CLICKHOUSE_DB=uptrace","CLICKHOUSE_USER=uptrace","CLICKHOUSE_PASSWORD=".concat(s),"SHARD=shard1","REPLICA=replica1","KEEPER_ID=1"].join("\n"),mounts:[{type:"volume",name:"ch-data",mountPath:"/var/lib/clickhouse"},{type:"file",content:'\n<clickhouse>\n    <listen_host>0.0.0.0</listen_host>\n    <keeper_server>\n        <tcp_port>9181</tcp_port>\n        <server_id from_env="KEEPER_ID" />\n        <log_storage_path>/var/lib/clickhouse/coordination/log</log_storage_path>\n        <snapshot_storage_path>
1/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>\n        <coordination_settings>\n            <operation_timeout_ms>10000</operation_timeout_ms>\n            <session_timeout_ms>30000</session_timeout_ms>\n            <raft_logs_level>warning</raft_logs_level>\n        </coordination_settings>\n        <raft_configuration>\n            <server>\n                <id from_env="KEEPER_ID" />\n                <hostname>localhost</hostname>\n                <port>9234</port>\n            </server>\n        </raft_configuration>\n    </keeper_server>\n    <remote_servers>\n        <uptrace1>\n            <shard>\n                <internal_replication>true</internal_replication>\n                <replica>\n                    <host>localhost</host>\n                    <port>9000</port>\n                </replica>\n            </shard>\n        </uptrace1>\n    </remote_servers>\n    <macros>\n        <cluster>uptrace1</cluster>\n        <shard from_env="SHARD" />\n        <replica from_env="REPLICA" />\n    </macros>\n</clickhouse>\n',mountPath:"/etc/clickhouse-server/config.d/config.xml"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:n}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:r}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-otelcol"),source:{type:"image",image:"otel/opentelemetry-collector-contrib:0.123.0"},mounts:[{type:"file",content:at(p,c),mountPath:"/etc/otelcol-contrib/config.yaml"}],ports:[{published:4317,target:4317},{published:4318,target:4318}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-alertmanager"),source:{type:"image",image:"prom/alertmanager:v0.24.0"},deploy:{command:"alertmanager --config.file=/etc/alertmanager/config.yml --storage.path=/alertmanager"},mounts:[{type:"file",content:"\nroute:\n  receiver: 'default'\n  group_wait: 30s\n  group_interval: 5m\n  repeat_interval: 1h\n\nreceivers:\n  - name: 'default'\n",mountPath:"/etc/alertmanager/config.yml"},{type:"volume",name:"alertmanager-data",mountPath:"/alertmanager"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-vector"),source:{type:"image",image:"timberio/vector:0.28.1-alpine"},mounts:[{type:"file",content:it(p,c),mountPath:"/etc/vector/vector.toml"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-grafana"),source:{type:"image",image:"grafana/grafana:12.0.0"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["GF_SECURITY_ADMIN_USER=admin","GF_SECURITY_ADMIN_PASSWORD=".concat(l)].join("\n"),mounts:[{type:"file",content:ot(p,c),mountPath:"/etc/grafana/provisioning/datasources/datasource.yml"},{type:"file",content:"\n[users]\ndefault_theme = dark\n",mountPath:"/etc/grafana/grafana.ini"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-prometheus"),source:{type:"image",image:"prom/prometheus:v2.36.2"},deploy:{command:["/bin/prometheus --config.file=/etc/prometheus/prometheus.yml","--storage.tsdb.path=/prometheus","--web.console.libraries=/usr/share/prometheus/console_libraries","--web.console.templates=/usr/share/prometheus/consoles"].join(" ")},mounts:[{type:"file",content:nt(p,c),mountPath:"/etc/prometheus/prometheus.yml"},{type:"volume",name:"prometheus-data",mountPath:"/prometheus"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-mailpit"),source:{type:"image",image:"axllent/mailpit:v1.29.4"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8025}],env:["MP_MAX_MESSAGES=5000","MP_DATA_FILE=/data/mailpit.db","MP_SMTP_AUTH_ACCEPT_ANY=1","MP_SMTP_AUTH_ALLOW_INSECURE=1"].join("\n"),mounts:[{type:"volume",name:"mailpit-data",mountPath:"/data"}]}}),{services:t}}},{slug:"upvote-rss",meta:{name:"Upvote RSS",description:"Upvote RSS is a self-hosted RSS feed generator for popular posts from social aggregation sites. It supports Reddit, Hacker News, Lemmy, Lobsters, PieFed, Mbin, and GitHub\u2014build rich RSS feeds with filtering (e.g. average posts per day), embedded media, optional AI summaries (Ollama, OpenAI, Gemini, Anthropic, and more), article content parsing, and top comments. Reddit OAuth env vars are optional and only needed for Reddit-specific feeds; other platforms are configured in the web UI. Cache data under /app/cache for performance across container updates.",instructions:null,changeLog:[{date:"2025-12-15",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/johnwarne/upvote-rss"},{label:"Website",url:"https://www.upvote-rss.com/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"upvote-rss"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/johnwarne/upvote-rss:v1.8.1"},redditUser:{type:"string",title:"Reddit Username",default:"",description:"Optional\u2014for Reddit feeds only (see upstream Reddit app setup)."},redditClientId:{type:"string",title:"Reddit Client ID",default:""},redditClientSecret:{type:"string",title:"Reddit Client Secret",default:""}}},benefits:[{title:"Multi-platform feeds",description:"One tool for Reddit, Hacker News, Lemmy, Lobsters, PieFed, Mbin, and GitHub\u2014tune volume with filters like average posts per day."},{title:"Rich feed output",description:"Media embeds, parsers for clean content, optional AI summaries, reading time, scores, permalinks, and top comments."},{title:"Self-hosted",description:"Run on your own infra; optional Redis and many AI/parser integrations via environment variables."},{title:"Works in any RSS reader",description:"Copy the generated feed URL into Reeder, NetNewsWire, or any RSS client."}],features:[{title:"Platform selection",description:"Choose Reddit, Hacker News, Lemmy, Lobsters, PieFed, Mbin, or GitHub with the right fields per platform (subreddit, community, HN lists, GitHub language/topic, etc.)."},{title:"Optional Reddit API",description:"Set Reddit OAuth env vars when you want authenticated Reddit feeds; other platforms do not require them."},{title:"Filtering & NSFW",description:"Score, threshold, or posts-per-day filters; NSFW options for Reddit feeds."},{title:"Caching",description:"Filesystem cache on /app/cache by default; Redis supported via env vars."},{title:"Feed preview UI",description:"Web UI to preview posts and copy the RSS URL\u2014light/dark preview themes."}],tags:["RSS","Reddit","Hacker News","Lemmy","Self-Hosted","Feed Generator","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t,a=[];return a.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:null!==(t=e.appServiceImage)&&void 0!==t?t:"ghcr.io/johnwarne/upvote-rss:v1.8.1"},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["REDDIT_USER=".concat(e.redditUser||""),"REDDIT_CLIENT_ID=".concat(e.redditClientId||""),"REDDIT_CLIENT_SECRET=".concat(e.redditClientSecret||"")].join("\n"),mounts:[{type:"volume",name:"cache",mountPath:"/app/cache"}]}}),{services:a}}},{slug:"urocissa",meta:{name:"Urocissa",description:"Urocissa is a self-hosted photo and video gallery designed to serve massive collections, capable of handling millions of images and videos. Built with Rust and Vue, it features blazing fast performance with an in-memory cached database that can instantly serve, search, and filter one million photos in under a second. It runs on as little as 4 GB of RAM even with a million photos, offers infinite scrolling without pagination using advanced virtual scrolling, and supports instant boolean search (and, or, not) across your entire library. Features include upload support, auto-sync from local folders, EXIF data extraction, user-defined tags, duplicate handling, shareable albums, and read-only mode.",instructions:"Default password is generated automatically.",changeLog:[{date:"2026-03-02",description:"First Release (v2.0.12)"},{date:"2026-05-07",description:"Version bumped to v2.0.14"}],links:[{label:"Website",url:"https://hsa00000.github.io/urocissa/"},{label:"GitHub",url:"https://github.com/hsa00000/Urocissa"},{label:"Documentation",url:"https://github.com/hsa00000/Urocissa/blob/main/docs/CONFIG.md"},{label:"Demo",url:"https://demo.photoserver.tw"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"urocissa"},appServiceImage:{type:"string",title:"App Service Image",default:"hsa00000/urocissa:2.0.14"},password:{type:"string",title:"Password",default:""}}},benefits:[{title:"Blazing Fast Performance",description:"Built with Rust for the backend. Instantly serve, search, and filter one million photos in under a second using an in-memory cached database."},{title:"Extremely Memory Efficient",description:"Runs seamlessly on a 4 GB RAM server even with one million photos. Linear memory scaling (~1.2 GiB per million photos) ensures stability."},{title:"Infinite Photo Stream",description:"Experience endless scrolling without pagination. Advanced virtual scrolling overcomes browser DOM height limits for millions of items."},{title:"Self-Hosted & Private",description:"You own your data with no external cloud dependencies. MIT-licensed, privacy-focused, and secure with optional password protection."}],features:[{title:"Instant Boolean Search",description:"Use and, or, and not operators to search your data instantly. Find exactly what you need in milliseconds across your entire library."},{title:"Upload & Auto-Sync",description:"Upload photos and videos directly or configure sync paths to automatically watch local directories for new content."},{title:"EXIF Data & Tags",description:"Automatically extracts EXIF metadata from images. Add user-defined tags for custom organization and powerful filtering."},{title:"Shareable Albums",description:"Create and share albums with others. Supports read-only mode for public-facing galleries or demo instances."},{title:"Duplicate Handling",description:"Intelligent duplicate detection prevents redundant storage and keeps your library clean and organized."},{title:"Video Support",description:"Full support for video files alongside photos with integrated playback powered by FFmpeg."}],tags:["Photos","Gallery","Self-Hosted","Media","Images"],logo:"logo.png",screenshots:["screenshot.jpg"]},generate:function(e){var t=[],a=y(64),i="/data/urocissa",o=e.password||v(),n=JSON.stringify({public:{address:"0.0.0.0",port:5673,limits:{file:"10GiB",json:"10MiB","data-form":"10GiB"},syncPaths:[],discordHookUrl:null,readOnlyMode:!1,disableImg:!1},private:{password:o,authKey:a}},null,2);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5673}],env:["UROCISSA_PATH=".concat(i)].join("\n"),mounts:[{type:"file",content:n,mountPath:"".concat(i,"/gallery-backend/config.json")},{type:"volume",name:"db",mountPath:"".concat(i,"/gallery-backend/db")},{type:"volume",name:"object",mountPath:"".concat(i,"/gallery-backend/object")},{type:"volume",name:"upload",mountPath:"".concat(i,"/gallery-backend/upload")}]}}),{services:t}}},{slug:"usermemos",meta:{name:"Usermemos",description:"Usermemos is a lightweight, self-hosted note-taking application designed for simplicity, accessibility, and efficiency. It provides an intuitive interface for capturing and organizing memos with support for markdown formatting, tagging, and searching. This app is a Docker containerized version of Usermemos, making it easy to deploy and manage in various environments. The app supports multiple architectures, including x86-64 and arm64, and can be accessed via HTTP or HTTPS. It offers additional environment variables and configurations to enable customization. Usermemos is designed for both personal and collaborative usage, ensuring that users can manage their notes effectively.",instructions:null,changeLog:[{date:"2025-02-17",description:"first release"},{date:"2025-07-25",description:"Version bumped to 0.25"},{date:"2026-02-24",description:"Version bumped to 0.26"},{date:"2026-05-07",description:"Version bumped to 0.28.0"}],links:[{label:"Documentation",url:"https://www.usememos.com/docs"},{label:"Github",url:"https://github.com/usememos/memos"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"usermemos"},appServiceImage:{type:"string",title:"App Service Image",default:"neosmemo/memos:0.28.0"}}},benefits:[{title:"Self-Hosted Note-Taking",description:"Usermemos is a self-hosted note-taking solution that ensures privacy and data ownership. Users have full control over their notes without relying on third-party cloud services."},{title:"Lightweight & Fast",description:"Designed with performance in mind, Usermemos runs efficiently with minimal system resources, making it ideal for both personal and business use."},{title:"Multi-Platform Support",description:"The app is compatible with multiple architectures, including x86-64 and arm64, ensuring broad deployment possibilities."},{title:"Customizable & Extensible",description:"Usermemos offers configuration options, allowing users to tailor the application to their specific needs, including theme customization and integration with external services."}],features:[{title:"Intuitive Interface",description:"Usermemos provides a clean and minimalistic interface, allowing users to focus on their notes without distractions."},{title:"Markdown Support",description:"The app supports markdown formatting, enabling users to structure their notes efficiently with headings, lists, links, and code snippets."},{title:"Tagging & Organization",description:"Users can categorize their notes using tags, making it easier to find and organize important memos."},{title:"Search Functionality",description:"A built-in search feature helps users quickly locate specific notes, improving efficiency and accessibility."},{title:"Secure Access",description:"The application supports authentication options to restrict access and enhance data security."},{title:"Easy Deployment with Docker",description:"Usermemos is containerized for quick and seamless deployment, simplifying the installation and management process."}],tags:["Productivity","Note-Taking","Self-Hosted","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"memos",mountPath:"/var/opt/memos"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:5230}]}}),{services:t}}},{slug:"usertour",meta:{name:"Usertour",description:"Usertour.io is an open-source user onboarding platform that helps developers create interactive product tours, feature introductions, and user guides without writing a single line of code. It allows you to design and deploy interactive walkthroughs, checklists, and tooltips to improve user activation and adoption. The platform provides a visual editor for creating tours, targeting specific user segments, and collecting analytics on user engagement. Usertour.io integrates seamlessly with your application, offering customization options to match your branding and design. With its developer-friendly approach, it enables teams to create, test, and deploy product tours quickly while maintaining a native look and feel.",instructions:"Login using the email; [email protected], password; secret42",changeLog:[{date:"2025-03-21",description:"Initial template release (1.0)"},{date:"2025-07-25",description:"Version bumped to 0.2.7"},{date:"2025-12-29",description:"Version bumped to 0.4.5"},{date:"2026-02-24",description:"Version bumped to 0.4.9"}],links:[{label:"Website",url:"https://www.usertour.io/"},{label:"Documentation",url:"https://docs.usertour.io/"},{label:"Github",url:"https://github.com/usertour/usertour"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"usertour"},appServiceImage:{type:"string",title:"App Service Image",default:"usertour/usertour:0.4.9"}}},benefits:[{title:"Code-Free Product Tours",description:"Build interactive product tours and onboarding experiences without writing code, saving development time and resources."},{title:"Improved User Adoption",description:"Guide users through your application's features, increasing feature discovery and improving overall user activation."},{title:"Customizable Experience",description:"Tailor the appearance and behavior of your tours to match your brand and application's look and feel."}],features:[{title:"Visual Tour Builder",description:"Design interactive product tours with an intuitive drag-and-drop interface that requires no coding experience."},{title:"User Segmentation",description:"Target specific user groups with tailored onboarding experiences based on user roles, behavior, or other criteria."},{title:"Multi-Format Guidance",description:"Create various types of user guidance including step-by-step tours, feature spotlights, tooltips, and checklists."},{title:"Analytics Dashboard",description:"Track user engagement with your tours and measure completion rates to optimize the onboarding experience."}],tags:["User Onboarding","Product Tours","User Experience","Developer Tools"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"NEST_SERVER_PORT=3000","EMAIL_HOST=","EMAIL_PORT=","EMAIL_USER=","EMAIL_PASS=","Redis_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"Redis_PORT=6379","Redis_PASS=".concat(i),"APP_HOMEPAGE_URL=https://$(PRIMARY_DOMAIN)","AWS_S3_REGION=","AWS_S3_ENDPOINT=","AWS_S3_ACCESS_KEY_ID=","AWS_S3_SECRET_ACCESS_KEY=","AWS_S3_BUCKET=","AWS_S3_DOMAIN=","JWT_SECRET=test","JWT_EXPIRATION_TIME=1h","JWT_REFRESH_EXPIRATION_TIME=7d","EMAIL_AUTH_ENABLED=true","EMAIL_SENDER=Usertour <[email protected]>","GITHUB_AUTH_ENABLED=false","GITHUB_CLIENT_ID=","GITHUB_CLIENT_SECRET=","GITHUB_CALLBACK_URL=https://$(PRIMARY_DOMAIN)/api/auth/github/callback","GOOGLE_AUTH_ENABLED=false","GOOGLE_CLIENT_ID=","GOOGLE_CLIENT_SECRET=","GOOGLE_CALLBACK_URL=https://$(PRIMARY_DOMAIN)/api/auth/google/callback","LOGIN_REDIRECT_URL=https://$(PRIMARY_DOMAIN)/env/1/flows","NODE_ENV=production","API_URL=","USERTOUR_TOKEN=","POSTHOG_KEY=","POSTHOG_HOST="].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"usesend",meta:{name:"Usesend",description:"Usesend is a self-hosted email marketing and transactional email platform that gives you complete control over your email infrastructure. It provides a modern, user-friendly interface for creating, sending, and tracking email campaigns, newsletters, and transactional emails. Usesend features advanced segmentation, email automation, template management, analytics, and subscriber management. Built with Next.js and powered by PostgreSQL, Redis, and MinIO for reliable storage, it offers enterprise-grade features without vendor lock-in or usage-based pricing. Usesend supports GitHub OAuth for authentication and includes API rate limiting and SMTP configuration for sending emails. Perfect for businesses and developers who want full ownership of their email marketing infrastructure.",instructions:"After deployment, configure your GitHub OAuth app credentials and AWS Access Key and Secret Key.",changeLog:[{date:"2025-11-13",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to 1.8.0"}],links:[{label:"Website",url:"https://usesend.com/"},{label:"Documentation",url:"https://docs.usesend.com/"},{label:"Github",url:"https://github.com/usesend/usesend"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","githubId","githubSecret","awsAccessKey","awsSecretKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"usesend"},appServiceImage:{type:"string",title:"App Service Image",default:"usesend/usesend:v1.8.0"},githubId:{type:"string",title:"GitHub OAuth App ID",default:""},githubSecret:{type:"string",title:"GitHub OAuth App Secret",default:""},awsAccessKey:{type:"string",title:"AWS Access Key",default:""},awsSecretKey:{type:"string",title:"AWS Secret Key",default:""},apiRateLimit:{type:"string",title:"API Rate Limit (requests per minute)",default:"60"}}},benefits:[{title:"Self-Hosted & Private",description:"Complete control over your email infrastructure and subscriber data. No vendor lock-in, no usage limits, and full data privacy."},{title:"Cost-Effective",description:"Eliminate expensive per-email or per-subscriber pricing. Pay only for your infrastructure, not for every email you send."},{title:"Enterprise Features",description:"Advanced segmentation, automation, analytics, and API access typically found in expensive SaaS platforms, available in your self-hosted instance."}],features:[{title:"Email Campaign Management",description:"Create and send beautiful email campaigns with a modern editor, template management, and scheduling capabilities."},{title:"Subscriber Management",description:"Organize subscribers with advanced segmentation, custom fields, tags, and list management for targeted campaigns."},{title:"Email Automation",description:"Set up automated email workflows triggered by subscriber actions, dates, or custom events."},{title:"Analytics & Tracking",description:"Comprehensive email analytics including open rates, click rates, bounces, and engagement metrics with detailed reporting."},{title:"API & Integrations",description:"RESTful API for integrating email sending into your applications with rate limiting and authentication."},{title:"Transactional Emails",description:"Send transactional emails like password resets, order confirmations, and notifications through the API."}],tags:["Email Marketing","Newsletter","Transactional Email","SMTP","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v(),n=y(32);return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-storage"),source:{type:"image",image:"minio/minio:latest"},env:["MINIO_ROOT_USER=unsend","MINIO_ROOT_PASSWORD=".concat(o)].join("\n"),deploy:{command:'sh -c \'mkdir -p /data/unsend && minio server /data --console-address ":9001" --address ":9002"\''},domains:[{host:"storage-$(EASYPANEL_DOMAIN)",port:9002},{host:"console-$(EASYPANEL_DOMAIN)",port:9001}],mounts:[{type:"volume",name:"storage",mountPath:"/data"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PORT=3000","DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:5432/$(PROJECT_NAME)"),"NEXTAUTH_URL=https://$(PRIMARY_DOMAIN)","NEXTAUTH_SECRET=".concat(n),"AWS_ACCESS_KEY=".concat(e.awsAccessKey),"AWS_SECRET_KEY=".concat(e.awsSecretKey),"AWS_DEFAULT_REGION=us-east-1","GITHUB_ID=".concat(e.githubId),"GITHUB_SECRET=".concat(e.githubSecret),"REDIS_URL=redis://:".concat(i,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"NEXT_PUBLIC_IS_CLOUD=false","API_RATE_LIMIT=".concat(e.apiRateLimit||"60")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"vane",meta:{name:"Vane",description:"Vane is a privacy focused AI answering engine that combines web search with local and cloud LLM providers. It supports cited answers, file uploads, search history, and configurable model backends while running on your own hardware.",instructions:"Deploy and open your domain to complete setup from the in-app onboarding screen. The default image includes bundled SearxNG, so no extra search service is required. To use your own SearxNG instance, set SearxNG API URL in the template form. Data persists in /home/vane/data through the mounted volume.",changeLog:[{date:"2025-04-06",description:"Initial Template release"}],links:[{label:"Documentation",url:"https://github.com/ItzCrazyKns/Vane/tree/master/docs"},{label:"GitHub",url:"https://github.com/ItzCrazyKns/Vane"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"vane"},appServiceImage:{type:"string",title:"App Service Image",default:"itzcrazykns1337/vane:latest",description:"Official Vane image pinned to a digest from Docker Hub"},searxngApiUrl:{type:"string",title:"SearxNG API URL (optional)",description:"Use only when running Vane slim or external SearxNG",default:""}}},benefits:[{title:"Privacy Focused Search",description:"Runs locally with search history and app data stored on your own infrastructure."},{title:"Flexible AI Providers",description:"Supports local models via Ollama and cloud providers including OpenAI, Claude, Gemini, and Groq."},{title:"Cited Answers and Research",description:"Delivers source cited responses with multiple search modes for speed, balance, or quality."}],features:[{title:"Bundled SearxNG",description:"Default image includes integrated SearxNG web search without extra service setup."},{title:"File Upload Q&A",description:"Upload documents and ask questions directly from the Vane interface."},{title:"Persistent Local Data",description:"Stores settings and history in /home/vane/data using the mounted volume."}],tags:["AI","Search Engine","LLM","RAG","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=[];return e.searxngApiUrl&&a.push("SEARXNG_API_URL=".concat(e.searxngApiUrl)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:a.join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/home/vane/data"}]}}),{services:t}}},{slug:"vaultwarden",meta:{name:"Vaultwarden",description:"Vaultwarden is an unofficial Bitwarden server implementation designed for self-hosted deployments. It is written in Rust and is compatible with the official Bitwarden clients. This application is ideal for individuals, families, and smaller organizations who find the official resource-heavy service undesirable. Vaultwarden supports a wide range of features including personal and organization vault support, password sharing and access control, file attachments, two-step login via email, Duo, YubiKey, and FIDO2 WebAuthn, and many more. It also supports live sync for desktop/browser clients/extensions and mobile clients (Android/iOS). However, it does not prioritize the development of features mainly useful to larger organizations such as single sign-on and directory syncing.",instructions:'To access the administration interface, please go to /admin on your installation url. The admin token is in your "Environment" tab.',changeLog:[{date:"2022-11-19",description:"first release"}],links:[{label:"Documentation",url:"https://github.com/dani-garcia/vaultwarden/wiki"},{label:"Github",url:"https://github.com/dani-garcia/vaultwarden"},{label:"Enviroment Variables",url:"https://github.com/dani-garcia/vaultwarden/blob/main/.env.template"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"vaultwarden"},appServiceImage:{type:"string",title:"App Service Image",default:"vaultwarden/server:latest"}}},benefits:[{title:"Self-hosted deployment",description:"Vaultwarden allows you to host your own Bitwarden server, giving you full control over your data and privacy."},{title:"Compatibility with official Bitwarden clients",description:"Vaultwarden is fully compatible with the official Bitwarden clients, ensuring a seamless user experience."},{title:"Ideal for individuals, families, and smaller organizations",description:"Vaultwarden is designed to meet the needs of individuals, families, and smaller organizations, providing a lightweight and efficient solution."}],features:[{title:"Web interface",description:"Access your vault and manage your passwords through a user-friendly web interface."},{title:"Password sharing and access control",description:"Share passwords securely with others and control their access to your shared items."},{title:"File attachments and website icons",description:"Attach files to your passwords and store website icons for easy identification."},{title:"Two-step login and authentication options",description:"Enhance the security of your vault with two-step login and authentication options, including email, Duo, YubiKey, and FIDO2 WebAuthn."},{title:"Emergency Access and Master password re-prompt",description:"Set up emergency access to your vault and enable master password re-prompt for added security."},{title:"Live sync for desktop/browser and mobile clients",description:"Keep your vault in sync across all your devices, including desktop/browser clients/extensions and mobile clients (Android/iOS)."}],tags:["Password Manager","Security","Self-hosted"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png","screenshot3.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATA_FOLDER=data","WEB_VAULT_FOLDER=web-vault/","WEB_VAULT_ENABLED=true","SENDS_ALLOWED=true","EMERGENCY_ACCESS_ALLOWED=true","DISABLE_2FA_REMEMBER=false","EMAIL_ATTEMPTS_LIMIT=3","SIGNUPS_ALLOWED=true","ADMIN_TOKEN=".concat(a),"DISABLE_ADMIN_TOKEN=false","SHOW_PASSWORD_HINT=false","PASSWORD_HINTS_ALLOWED=true","DOMAIN=https://$(PRIMARY_DOMAIN)","SMTP_DEBUG=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/data"},{type:"volume",name:"web-vault",mountPath:"/web-vault"}]}}),{services:t}}},{slug:"velix-api",meta:{name:"Velix API",description:"Velix is a self-hosted WhatsApp API built in Go. Connect multiple WhatsApp numbers, send and receive messages via REST, get real-time webhooks, and integrate with n8n and Chatwoot out of the box. It features a web-based admin panel for managing instances, QR code pairing, per-instance API keys, and automatic media download with local storage. Designed for agencies and developers who need reliable WhatsApp automation at scale.",instructions:"After deployment, open the admin panel at your domain to register your first\naccount. Then create a WhatsApp instance and scan the QR code to connect your\nphone number. Each instance gets its own API key for secure access.\n",changeLog:[{date:"2026-04-14",description:"first release"}],links:[{label:"Website",url:"https://velix.dev"},{label:"Documentation",url:"https://github.com/paulolinder/velix-api"},{label:"Github",url:"https://github.com/paulolinder/velix-api"}],contributors:[{name:"Paulo Linder",url:"https://github.com/paulolinder"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"velix-api"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/paulolinder/velix-api:0.1.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"velix-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"velix-redis"}}},benefits:[{title:"Multi-Instance WhatsApp",description:"Run up to 200 WhatsApp connections from a single server. Each instance is isolated with its own API key, webhook settings, and QR code pairing."},{title:"Full REST API",description:"Send text, images, audio, video, documents, locations, contacts, reactions, and polls through a clean REST API with OpenAPI documentation."},{title:"Real-Time Webhooks",description:"Receive events in real time with HMAC-SHA256 signing, automatic retry with exponential backoff, and per-instance event filtering."},{title:"n8n and Chatwoot Integration",description:"Community node for n8n workflow automation (including AI Agent tool) and built-in Chatwoot integration for customer support with history sync."}],features:[{title:"Admin Panel",description:"Web-based dashboard for managing instances, viewing connection status, configuring webhooks, and generating API keys."},{title:"Per-Instance API Keys",description:"Each WhatsApp instance gets its own scoped API key. Keys are generated from the admin panel and can be rotated at any time."},{title:"QR Code Pairing",description:"Connect WhatsApp via QR code or pair code directly from the admin panel with real-time SSE streaming."},{title:"Media Storage",description:"Automatic media download from WhatsApp CDN with local storage and REST endpoints for retrieval. Optional base64 encoding in webhook payloads."},{title:"Chatwoot Integration",description:"Route WhatsApp messages to Chatwoot inboxes with automatic contact creation, conversation management, and full history sync."},{title:"Human Pause",description:"When an agent replies manually, bot automation is paused for a configurable period so humans and bots can coexist seamlessly."}],tags:["WhatsApp","API","Messaging","Chatbot","Automation"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=y(64);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"REDIS_URL=redis://default:".concat(i,"@$(PROJECT_NAME)_").concat(e.redisServiceName,":6379"),"JWT_SECRET=".concat(o),"HTTP_PORT=8080","APP_ENV=production","LOG_LEVEL=info","MEDIA_STORAGE_PATH=/data/media","ENGINE_STORE_PATH=/data/instances","ENGINE_AUTO_RECONNECT=true","ENGINE_MAX_INSTANCES=200","REGISTRATION_ENABLED=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:i}}),{services:t}}},{slug:"verdaccio",meta:{name:"Verdaccio",description:"Verdaccio is a lightweight, private npm proxy registry built in Node.js, designed to simplify and enhance your development workflow. It provides a simple, zero-configuration-required local private NPM registry, eliminating the need for a full database to get started. Verdaccio comes equipped with its own compact database and the capability to proxy other registries, such as npmjs.org, while caching the downloaded modules for improved efficiency. It allows you to use all the benefits of the npm package system in your company without exposing all your code to the public. You can link multiple registries, fetch packages from multiple sources in a single project, and even publish locally modified versions of third-party packages. Verdaccio is compatible with popular npm clients like npm, yarn, and pnpm, and supports various plugins for extended storage capabilities.",instructions:null,changeLog:[{date:"2022-10-31",description:"first release"},{date:"2025-03-03",description:"Version bumped to 6.0.5"},{date:"2025-07-25",description:"Version bumped to 6.1.6"},{date:"2025-12-29",description:"Version bumped to 6.2.4"},{date:"2026-02-24",description:"Version bumped to 6.2.5"},{date:"2026-05-07",description:"Version bumped to 6.5.2"}],links:[{label:"Website",url:"https://verdaccio.org/"},{label:"Documentation",url:"https://verdaccio.org/docs/what-is-verdaccio"},{label:"Github",url:"https://github.com/verdaccio/verdaccio"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"verdaccio"},appServiceImage:{type:"string",title:"App Service Image",default:"verdaccio/verdaccio:6.5.2"}}},benefits:[{title:"Private Package Management",description:"Easily use private packages in your company without sending code to the public."},{title:"Multiple Registries",description:"Fetch packages from multiple sources in one project by chaining registries."},{title:"Caching and Failover",description:"Decrease latency and provide limited failover by caching the npmjs.org registry."},{title:"Override Public Packages",description:"Use modified versions of 3rd-party packages by publishing your own version locally."}],features:[{title:"Private NPM Registry",description:"A lightweight Node.js private proxy registry for managing npm packages."},{title:"Zero-Config Required",description:"No need for an entire database, comes with its own tiny database out of the box."},{title:"Proxy Other Registries",description:"Ability to proxy other registries like npmjs.org and cache downloaded modules."},{title:"Extendable Storage",description:"Supports community-made plugins to hook into services like Amazon's S3 or Google Cloud Storage."}],tags:["Developer Tools","Package Manager"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4873}],mounts:[{type:"volume",name:"data",mountPath:"/opt/verdaccio"}]}}),{services:t}}},{slug:"vexa-dashboard",meta:{name:"Vexa Dashboard",description:"Vexa Dashboard is a complete, all-in-one solution for self-hosted meeting transcription. This template deploys both the Vexa API (real-time meeting transcription engine) and its web dashboard in a single click.\n\nVexa captures audio from Google Meet and Microsoft Teams meetings, transcribes it in real-time using Whisper AI, and provides a beautiful web interface to manage everything. Own your data, self-host everything, no cloud dependencies.\n\nThis template includes:\n- Vexa API: The transcription engine with bot management\n- Vexa Dashboard: Web interface for managing meetings and transcripts\n- PostgreSQL: Database for storing all your data\n\nPerfect for teams who want enterprise-grade meeting transcription without sending data to third parties.\n",instructions:'After deployment, open the Vexa Dashboard URL in your browser. You can immediately start joining meetings and transcribing them.\n\nTo enable AI-powered transcript analysis, edit the vexa-dashboard service environment variables and uncomment the AI_MODEL and AI_API_KEY lines.\n\nFor better transcription quality (requires GPU), edit the vexa-api service and change WHISPER_MODEL_SIZE from "tiny" to "medium" or "large-v3", and set DEVICE to "gpu".\n',changeLog:[{date:"2025-01-01",description:"First release - All-in-one deployment with Vexa API and Dashboard"}],links:[{label:"Website",url:"https://vexa.ai"},{label:"Documentation",url:"https://github.com/Vexa-ai/vexa"},{label:"Dashboard GitHub",url:"https://github.com/Vexa-ai/vexa-dashboard"},{label:"API GitHub",url:"https://github.com/Vexa-ai/vexa"}],contributors:[{name:"Vexa Team",url:"https://github.com/Vexa-ai"},{name:"Loan Talvat",url:"https://github.com/loan-talvat"}],schema:{type:"object",required:["projectName","dashboardServiceName","dashboardServiceImage","apiServiceName","databaseServiceName"],properties:{projectName:{type:"string",title:"Project Name"},dashboardServiceName:{type:"string",title:"Dashboard Service Name",default:"vexa-dashboard"},dashboardServiceImage:{type:"string",title:"Dashboard Docker Image",default:"synapsr/vexa-dashboard:latest"},apiServiceName:{type:"string",title:"API Service Name",default:"vexa-api"},databaseServiceName:{type:"string",title:"Database Service Name",default:"vexa-database"},defaultBotName:{type:"string",title:"Default Bot Name (appears in meetings)",default:"Vexa Transcription Bot"}}},benefits:[{title:"All-in-One Deployment",description:"Deploy the complete Vexa stack (API + Dashboard + Database) with a single click. No complex configuration required."},{title:"100% Self-Hosted",description:"All your meeting data stays on your infrastru
1cture. No data sent to third-party services. Complete privacy and control."},{title:"Real-Time Transcription",description:"Get live transcriptions as meetings happen via WebSocket. Support for 100+ languages with Whisper AI."},{title:"AI-Powered Analysis",description:"Optional AI assistant to chat with your transcripts. Supports OpenAI, Anthropic, Groq, and local Ollama."}],features:[{title:"Multi-Platform Support",description:"Send transcription bots to Google Meet and Microsoft Teams meetings. Zoom support coming soon."},{title:"Live Transcription",description:"Watch transcriptions appear in real-time via WebSocket connection with sub-second latency."},{title:"Export Options",description:"Download transcripts in multiple formats including TXT, JSON, SRT subtitles, and VTT captions."},{title:"User Management",description:"Admin dashboard for managing users, API tokens, and monitoring active transcription bots."},{title:"Magic Link Auth",description:"Secure passwordless authentication via email. Just configure SMTP and users get sign-in links."},{title:"Dark Mode",description:"System-aware theme switching for comfortable viewing in any environment."}],tags:["Transcription","Meetings","AI","Productivity","Self-Hosted"],logo:null,screenshots:[]},generate:function(e){var t=[],a=v(),i=v(),o="postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),n="http://$(PROJECT_NAME)_".concat(e.apiServiceName,":8056"),r="http://$(PROJECT_NAME)_".concat(e.apiServiceName,":8057");return t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"app",data:{serviceName:e.apiServiceName,source:{type:"github",owner:"Vexa-ai",repo:"vexa",ref:"main",path:"/",autoDeploy:!1},build:{type:"dockerfile",file:"Dockerfile.monolithic"},env:["# ===========================================","# VEXA API CONFIGURATION","# ===========================================","","# Database connection (auto-configured)","DATABASE_URL=".concat(o),"","# Admin API token (auto-generated, use this in dashboard)","ADMIN_API_TOKEN=".concat(i),"","# ===========================================","# WHISPER TRANSCRIPTION SETTINGS","# ===========================================","# Default: CPU with tiny model for fast startup","# For better quality, increase model size (requires more RAM/VRAM)","","WHISPER_MODEL_SIZE=tiny","","# Available model sizes (quality vs speed tradeoff):","# - tiny    : Fastest, lowest quality (~1GB RAM)","# - base    : Fast, decent quality (~1GB RAM)","# - small   : Balanced (~2GB RAM)","# - medium  : Good quality (~5GB RAM)","# - large-v3: Best quality (~10GB RAM/VRAM)","","# ===========================================","# GPU ACCELERATION (Optional)","# ===========================================","# Uncomment and configure for GPU support:","","# DEVICE=gpu","# CUDA_VERSION=12.4","","# Note: GPU requires NVIDIA GPU with CUDA support","# and appropriate drivers on the host machine."].join("\n"),deploy:{replicas:1,zeroDowntime:!1}}}),t.push({type:"app",data:{serviceName:e.dashboardServiceName,source:{type:"image",image:e.dashboardServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["# ===========================================","# VEXA DASHBOARD CONFIGURATION","# ===========================================","","# Vexa API connection (auto-configured for internal communication)","VEXA_API_URL=".concat(n),"VEXA_ADMIN_API_URL=".concat(r),"VEXA_ADMIN_API_KEY=".concat(i),"","# Bot name displayed in meetings","DEFAULT_BOT_NAME=".concat(e.defaultBotName||"Vexa Transcription Bot"),"","# ===========================================","# AI ASSISTANT (Optional)","# ===========================================","# Uncomment and configure to enable AI-powered transcript analysis","","# AI_MODEL=openai/gpt-4o","# AI_API_KEY=sk-your-openai-api-key","","# Supported AI providers and models:","# - OpenAI:    openai/gpt-4o, openai/gpt-4o-mini","# - Anthropic: anthropic/claude-sonnet-4-20250514","# - Groq:      groq/llama-3.3-70b-versatile (fast & free tier)","# - Ollama:    ollama/llama3.2 (local, requires AI_BASE_URL)","","# For Ollama (local AI), also set:","# AI_BASE_URL=http://your-ollama-host:11434/v1","","# ===========================================","# EMAIL AUTHENTICATION (Optional)","# ===========================================","# Configure SMTP for Magic Link authentication","# Without SMTP, users login with email only (no verification)","","# SMTP_HOST=smtp.resend.com","# SMTP_PORT=587","# SMTP_USER=resend","# SMTP_PASS=your-smtp-password","# [email protected]","","# ===========================================","# ACCESS CONTROL (Optional)","# ===========================================","","# Allow new user registrations (default: true)","# ALLOW_REGISTRATIONS=true","","# Restrict signups to specific email domains (comma-separated)","# ALLOWED_EMAIL_DOMAINS=company.com,partner.org"].join("\n"),deploy:{replicas:1,zeroDowntime:!0}}}),{services:t}}},{slug:"vikunja",meta:{name:"Vikunja",description:"Vikunja is a self-hosted To-Do list application and task management tool. It provides a clean and intuitive interface for organizing tasks, projects, and team collaboration. With features like task lists, labels, assignees, due dates, and more, Vikunja helps individuals and team
1s stay organized and productive.",instructions:"Create a new user and login to the application.",changeLog:[{date:"2025-06-10",description:"Template Release"}],links:[{label:"Documentation",url:"https://vikunja.io/docs/"},{label:"Github",url:"https://github.com/go-vikunja/vikunja"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"vikunja"},appServiceImage:{type:"string",title:"App Service Image",default:"vikunja/vikunja:0.24.6"}}},benefits:[{title:"Self-Hosted Task Management",description:"Keep your tasks and projects private with complete control over your data."},{title:"Team Collaboration",description:"Share projects and collaborate with team members on tasks and goals."},{title:"Feature Rich",description:"Comprehensive task management with labels, due dates, assignees, and more."}],features:[{title:"Task Lists & Projects",description:"Organize tasks into lists and projects for better structure."},{title:"Labels & Categories",description:"Use labels and categories to classify and filter tasks efficiently."},{title:"Team Sharing",description:"Share projects with team members and assign tasks to specific users."},{title:"Due Dates & Reminders",description:"Set due dates and get reminders to stay on top of deadlines."}],tags:["Task Management","To-Do List","Project Management","Productivity","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"mariadb",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,env:["VIKUNJA_SERVICE_PUBLICURL=https://$(PRIMARY_DOMAIN)","VIKUNJA_DATABASE_HOST=$(PROJECT_NAME)-".concat(e.appServiceName,"-db"),"VIKUNJA_DATABASE_PASSWORD=".concat(a),"VIKUNJA_DATABASE_TYPE=mysql","VIKUNJA_DATABASE_USER=mariadb","VIKUNJA_DATABASE_DATABASE=$(PROJECT_NAME)","VIKUNJA_SERVICE_JWTSECRET=".concat(i)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3456}],mounts:[{type:"volume",name:"files",mountPath:"/app/vikunja/files"}]}}),{services:t}}},{slug:"viseron",meta:{name:"Viseron",description:"Viseron is a self-hosted, local network video recorder (NVR) and AI-powered video surveillance system designed for privacy-conscious users. It supports multiple camera streams with advanced features like object detection, motion detection, face recognition, and license plate recognition using machine learning models. Viseron can record continuous video, create event-based clips, generate timelapses, and send real-time notifications. It integrates seamlessly with Home Assistant and supports various camera protocols including RTSP, HTTP, and USB cameras. The system features a modern web interface for live viewing, playback, and configuration. All processing happens locally on your hardware, ensuring your video data never leaves your network. Perfect for home security, surveillance systems, and smart home automation.",instructions:null,changeLog:[{date:"2025-11-10",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to 3.4.1"},{date:"2026-05-07",description:"Version bumped to 3.5.3"}],links:[{label:"Website",url:"https://viseron.netlify.app/"},{label:"Documentation",url:"https://viseron.netlify.app/latest/"},{label:"Github",url:"https://github.com/roflcoopter/viseron"},{label:"Docker Hub",url:"https://hub.docker.com/r/roflcoopter/viseron"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"viseron"},appServiceImage:{type:"string",title:"App Service Image",default:"roflcoopter/viseron:3.5.3"}}},benefits:[{title:"Privacy-First Design",description:"All video processing and AI analysis happens locally on your hardware. Your video footage never leaves your network, ensuring complete privacy and security."},{title:"AI-Powered Detection",description:"Advanced object detection, motion detection, face recognition, and license plate recognition using state-of-the-art machine learning models."},{title:"Home Assistant Integration",description:"Native integration with Home Assistant for seamless smart home automation, allowing you to trigger actions based on detected events."}],features:[{title:"Multi-Camera Support",description:"Monitor multiple camera streams simultaneously with support for RTSP, HTTP, and USB cameras. Configure each camera independently."},{title:"Object & Motion Detection",description:"Intelligent object detection with customizable zones and filters. Detect people, vehicles, animals, and more with high accuracy."},{title:"Event Recording & Clips",description:"Automatically record event-based clips when motion or objects are detected. Configure pre and post-recording buffers for complete context."},{title:"Timelapse & Continuous Recording",description:"Create beautiful timelapses and maintain continuous recording segments for comprehensive surveillance coverage."},{title:"Real-Time Notifications",description:"Receive instant notifications with snapshots and thumbnails when events are detected via multiple notification channels."},{title:"Web Interface",description:"Modern, responsive web interface for live viewing, playback, event browsing, and system configuration accessible from any device."}],tags:["NVR","Video Surveillance","AI","Security Camera","Home Assistant","Object Detection"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8888}],mounts:[{type:"volume",name:"segments",mountPath:"/segments"},{type:"volume",name:"snapshots",mountPath:"/snapshots"},{type:"volume",name:"thumbnails",mountPath:"/thumbnails"},{type:"volume",name:"event-clips",mountPath:"/event_clips"},{type:"volume",name:"timelapse",mountPath:"/timelapse"},{type:"volume",name:"config",mountPath:"/config"},{type:"bind",hostPath:"/etc/localtime",mountPath:"/etc/localtime"}]}}),{services:t}}},{slug:"vitess",meta:{name:"Vitess",description:"Vitess is a database clustering system for horizontal scaling of MySQL. It is designed to make it easier to scale and manage large deployments of MySQL databases. Vitess helps handle sharding, connection pooling, and query routing efficiently, making it a great choice for cloud-native applications and high-traffic websites. It is used by companies like YouTube and Slack to manage massive database workloads. Vitess provides built-in automation, strong consistency, and MySQL compatibility while being resilient to failures and easy to operate at scale.",instructions:null,changeLog:[{date:"2025-03-11",description:"First Release"},{date:"2025-12-29",description:"Version bumped to mysql84"}],links:[{label:"Documentation",url:"https://vitess.io/docs/"},{label:"Github",url:"https://github.com/vitessio/vitess"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","vitessPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"vitess"},appServiceImage:{type:"string",title:"App Service Image",default:"vitess/vttestserver:mysql84"},vitessPort:{type:"string",title:"Vitess Port",default:"33574"}}},benefits:[{title:"Horizontal Scalability",description:"Vitess enables seamless horizontal scaling for MySQL databases. It allows you to shard your database without application-level changes, making it easy to scale as your workload grows."},{title:"MySQL Compatibility",description:"Vitess retains full MySQL compatibility, ensuring that existing MySQL applications can migrate with minimal modifications while benefiting from advanced scalability features."},{title:"High Availability",description:"Vitess ensures high availability through automated failover and robust fault tolerance mechanisms. This makes it a reliable choice for mission-critical applications."}],features:[{title:"Sharding",description:"Vitess provides built-in support for database sharding, allowing you to split data across multiple nodes and maintain performance at scale."},{title:"Connection Pooling",description:"Efficient connection pooling optimizes database performance by managing and reusing database connections, reducing overhead and improving query efficiency."},{title:"Query Routing",description:"Vitess intelligently routes queries to the appropriate database shards, ensuring efficient query execution and minimal latency."},{title:"Failover and Recovery",description:"Automatic failover and self-healing capabilities keep the system running smoothly, even in the event of node failures."},{title:"Kubernetes Integration",description:"Vitess is cloud-native and integrates seamlessly with Kubernetes for automated deployment, scaling, and management."}],tags:["Database","Scalability","Cloud-Native","MySQL"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["NUM_SHARDS=2,1","KEYSPACES=test,unsharded ","MYSQL_MAX_CONNECTIONS=70000","MYSQL_BIND_HOST=0.0.0.0","VTCOMBO_BIND_HOST=0.0.0.0"].join("\n"),ports:[{protocol:"tcp",published:Number(e.vitessPort),target:33574}]}}),{services:t}}},{slug:"vscode-server",meta:{name:"Visual Studio Code Server",description:"The LinuxServer.io team presents the docker-code-server, a powerful tool that allows you to run VS Code on a remote server, accessible through your browser. This means you can code on your Chromebook, tablet, and laptop with a consistent development environment. If you're using a Windows or Mac workstation, you can more easily develop for Linux. The app also allows you to leverage large cloud servers to speed up tests, compilations, downloads, and more. It helps preserve battery life when you're on the go, as all intensive computation runs on your server, eliminating the need for running excess instances of Chrome.",instructions:null,changeLog:[{date:"2022-10-28",description:"first release"},{date:"2025-03-03",description:"Version bumped to 4.97.2"},{date:"2025-07-25",description:"Version bumped to 4.102.2"},{date:"2025-12-29",description:"Version bumped to 4.107.0"},{date:"2026-02-24",description:"Version bumped to 4.109.2"},{date:"2026-05-07",description:"Version bumped to 4.118.0"}],links:[{label:"Documentation",url:"https://github.com/linuxserver/docker-code-server/blob/master/README.md"},{label:"Github",url:"https://github.com/linuxserver/docker-code-server"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["password","appServiceName","appServiceImage"],properties:{password:{type:"string",title:"VS Code Server Password"}
1,appServiceName:{type:"string",title:"App Service Name",default:"vsc-server"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/code-server:4.118.0"}}},benefits:[{title:"Access VS Code from anywhere",description:"Code-server allows you to access Visual Studio Code from any device with a browser. Whether you're using a Chromebook, tablet, or laptop, you can have a consistent development environment."},{title:"Develop for Linux on Windows or Mac",description:"With code-server, you can easily develop applications for Linux even if you're using a Windows or Mac workstation. Take advantage of large cloud servers to speed up tests, compilations, downloads, and more."},{title:"Preserve battery life",description:"By running intensive computations on your server instead of your local device, code-server helps preserve battery life when you're on the go. You no longer need to run excess instances of Chrome."}],features:[{title:"Remote development",description:"Access Visual Studio Code remotely from any device with a browser."},{title:"Cross-platform development",description:"Develop applications for Linux on Windows or Mac workstations."},{title:"Server-side computation",description:"Offload intensive computations to your server to preserve battery life."}],tags:["Developer Tools","Code Hosting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PASSWORD=".concat(e.password)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"waha",meta:{name:"WAHA",description:"WAHA (WhatsApp HTTP API) is a self-hosted, privacy-focused WhatsApp API that you can run in a click! It provides a REST API to send and receive WhatsApp messages, manage groups, channels, and status updates. WAHA runs a real instance of WhatsApp Web to avoid getting blocked and supports automation through HTTP API. The core version is completely free with no limits on messages or time, making it perfect for WhatsApp automation, chatbots, and integrations.",instructions:'After deployment, access the WAHA dashboard at your service domain. The\ndefault username is "admin" and the password is auto-generated \u2014 check\nthe WAHA_DASHBOARD_PASSWORD environment variable in the service settings.\nThe same credentials are used for the Swagger API docs. The WAHA_API_KEY\nis also auto-generated and required for API authentication.\n',changeLog:[{date:"2025-06-04",description:"First Release"},{date:"2026-05-07",description:"Version bumped to latest-2026.4.3"}],links:[{label:"Website",url:"https://waha.devlike.pro/"},{label:"Github",url:"https://github.com/devlikeapro/waha"},{label:"Documentation",url:"https://waha.devlike.pro/docs"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","dashboardUsername","swaggerUsername"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"waha"},appServiceImage:{type:"string",title:"App Service Image",default:"devlikeapro/waha:latest-2026.4.3"},dashboardUsername:{type:"string",title:"Dashboard Username",default:"admin"},swaggerUsername:{type:"string",title:"Swagger Username",default:"admin"}}},benefits:[{title:"Self-hosted WhatsApp API",description:"Run your own WhatsApp API server without relying on third-party services. Complete control over your data and privacy with no suspicious SaaS solutions."},{title:"Free and unlimited",description:"WAHA Core version is completely free with no limits on messages or time. No license expiration or subscription fees required."},{title:"Easy to use REST API",description:"Simple HTTP/REST API that works with any programming language - Python, JavaScript, PHP, C#, Go, Java, and more. Well-documented with Swagger."},{title:"Real WhatsApp Web instance",description:"Uses a real instance of WhatsApp Web under the hood to avoid getting blocked, ensuring reliable message delivery."}],features:[{title:"Send and receive messages",description:"Send and receive text messages, images, videos, voice messages, and documents through simple HTTP API calls."},{title:"Groups and channels management",description:"Create and manage WhatsApp groups, channels, and status updates. Automate group operations and channel broadcasting."},{title:"Built-in dashboard",description:"Web interface to easily manage your WhatsApp sessions, scan QR codes, and monitor your API usage."},{title:"Webhook support",description:"Receive real-time notifications via webhooks when new messages arrive or other events occur."},{title:"Multiple sessions",description:"Support for multiple WhatsApp accounts (sessions) within a single instance, perfect for scaling your automation."},{title:"No blocking protection",description:"Designed to minimize the risk of WhatsApp blocking by using real WhatsApp Web instances and following best practices."}],tags:["WhatsApp","API","Messaging","Automation","Chatbot"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["WAHA_API_KEY=".concat(a),"WAHA_DASHBOARD_USERNAME=".concat(e.dashboardUsername),"WAHA_DASHBOARD_PASSWORD=".concat(i),"WHATSAPP_SWAGGER_USERNAME=".concat(e.swaggerUsername),"WHATSAPP_SWAGGER_PASSWORD=".concat(i)].join("\n"),mounts:[{type:"volume",name:"sessions",mountPath:"/app/.sessions"}]}}),{services:t}}},{slug:"wakatime",meta:{name:"Wakapi",description:"Wakapi is a powerful open-source tool designed to help you track and analyze your co
1ding time. It allows you to monitor the time you've spent coding on various projects, in different programming languages, and more. It's perfect for those who love statistics and want to gain insights into their coding habits. Wakapi provides fancy statistics and plots, public leaderboards, cool badges for readmes, and weekly email reports. It's built by developers for developers, ensuring it meets your needs perfectly. With Wakapi, you can easily keep track of your coding time and improve your productivity.",instructions:null,changeLog:[{date:"2023-01-24",description:"first release"},{date:"2023-03-22",description:"Update to v2.6.2"},{date:"2025-03-03",description:"Version bumped to 2.13.1"},{date:"2025-07-25",description:"Version bumped to 2.14.1"},{date:"2026-02-24",description:"Version bumped to 2.17.1"},{date:"2026-05-07",description:"Version bumped to 2.17.3"}],links:[{label:"Website",url:"https://wakapi.dev/"},{label:"Github",url:"https://github.com/muety/wakapi"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wakapi"},appServiceImage:{type:"string",title:"App Service Image",default:"n1try/wakapi:2.17.3"}}},tags:["Developer Tools","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["WAKAPI_PASSWORD_SALT=".concat(a)].join("\n")}}),{services:t}}},{slug:"wallabag",meta:{name:"Wallabag",description:"Wallabag is a self-hosted read-it-later application that allows you to save web articles and access them later in a clean, distraction-free format. Written in PHP, it enables you to store and organize articles, categorize them with tags, and sync across multiple devices. Wallabag is privacy-focused, supports importing from services like Pocket and Instapaper, and provides a RESTful API for integration with other tools. The app offers browser extensions, a mobile-friendly interface, and multiple export options, including PDF, ePub, and plain text.",instructions:null,changeLog:[{date:"2025-01-31",description:"First Release"},{date:"2026-02-24",description:"Version bumped to 2.6.14"}],links:[{label:"Documentation",url:"https://doc.wallabag.org"},{label:"Github",url:"https://github.com/wallabag/wallabag"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wallabag"},appServiceImage:{type:"string",title:"App Service Image",default:"wallabag/wallabag:2.6.14"}}},benefits:[{title:"Save Articles for Later",description:"Wallabag allows you to save web articles and read them later in a clean and ad-free format. This ensures distraction-free reading and improved focus on content."},{title:"Multi-Device Synchronization",description:"Your saved articles sync across multiple devices, allowing seamless reading on desktop, tablet, or smartphone. You can access your articles anywhere."},{title:"Open-Source and Self-Hosted",description:"Wallabag is fully open-source and can be self-hosted, ensuring complete control over your data while maintaining privacy and security."}],features:[{title:"Browser Extensions",description:"Wallabag offers browser extensions for Chrome, Firefox, and other browsers, making it easy to save articles with a single click."},{title:"Full-Text Search",description:"The built-in full-text search feature helps you find saved articles quickly by searching within the content."},{title:"Tag Organization",description:"Articles can be categorized with tags, making it easier to find relevant content and organize saved items efficiently."},{title:"Multiple Export Formats",description:"Wallabag allows you to export your saved articles in various formats, including PDF, ePub, and plain text, for offline access or backup."},{title:"Import from Other Services",description:"You can import your saved articles from Pocket, Instapaper, and other read-it-later services, making the transition seamless."}],tags:["Productivity","Reading","Bookmarking"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["SYMFONY__ENV__DOMAIN_NAME=https://$(PRIMARY_DOMAIN)"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"images",mountPath:"/var/www/wallabag/web/assets/images"},{type:"volume",name:"data",mountPath:"/var/www/wallabag/data"}]}}),{services:t}}},{slug:"wallos",meta:{name:"Wallos",description:"Wallos is an open-source, self-hosted network monitoring and management platform that provides comprehensive network visibility, device discovery, and network analytics. It helps network administrators monitor network health, track bandwidth usage, and manage network devices efficiently.",instructions:null,changeLog:[{date:"2025-08-26",description:"First release"},{date:"2026-05-07",description:"Version bumped to 4.8.4"}],links:[{label:"Website",url:"https://wallos.app/"},{label:"Documentation",url:"https://docs.wallos.app/"},{label:"Github",url:"https://github.com/ellite/Wallos"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wallos"},appServiceImage:{type:"string",title:"App Service Image",default:"bellamy/wallos:4.8.4"}}},benefits:[{title:"Network Visibility",description:"Gain complete visibility into your network infrastructure with real-time monitoring and detailed analytics."},{title:"Device Discovery",description:"Automatically discover and inventory all devices on your network for comprehensive asset management."},{title:"Bandwidth Monitoring",description:"Track bandwidth usage patterns and identify potential bottlenecks or unusual network activity."},{title:"Self-Hosted",description:"Keep your network data secure and private by hosting the monitoring platform on your own infrastructure."},{title:"Open Source",description:"Full transparency and customization capabilities with an active open-source community and regular updates."}],features:[{title:"Network Monitoring",description:"Real-time monitoring of network devices, services, and infrastructure with customizable alerts and notifications."},{title:"Device Management",description:"Comprehensive device inventory with detailed information about hardware, software, and network configuration."},{title:"Performance Analytics",description:"Advanced analytics and reporting tools to track network performance trends and identify optimization opportunities."},{title:"Custom Dashboards",description:"Create personalized dashboards to monitor specific aspects of your network infrastructure."},{title:"API Integration",description:"RESTful API support for integrating with existing network management tools and automation workflows."},{title:"Multi-User Support",description:"Role-based access control and multi-user support for team collaboration and secure network management."}],tags:["Network Monitoring","Network Management","Device Discovery","Bandwidth Monitoring","Network Analytics","Infrastructure","DevOps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],env:["TZ=America/Toronto"].join("\n"),mounts:[{type:"volume",name:"wallos-db",mountPath:"/var/www/html/db"},{type:"volume",name:"wallos-logos",mountPath:"/var/www/html/images/uploads/logos"}]}}),{services:t}}},{slug:"wally",meta:{name:"Wally",description:"Wally is a lightweight web application designed for data management and tracking. It provides a clean web interface accessible through your browser, with persistent data storage to ensure your information is safely retained across restarts. The application can be pre-loaded with demo data for testing and evaluation purposes, making it easy to explore its features before using it with your own data. Wally runs efficiently in a containerized environment and requires minimal configuration to get started.",instructions:null,changeLog:[{date:"2025-10-29",description:"Initial Template Release"},{date:"2026-03-25",description:"Pinned Wally image to immutable 1.14 digest"}],links:[{label:"Documentation",url:"https://github.com/polius/Wally/blob/main/README.md"},{label:"GitHub",url:"https://github.com/polius/Wally"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wally"},appServiceImage:{type:"string",title:"App Service Image",default:"poliuscorp/wally:1.14",description:"Wally Docker image"},enableDemo:{type:"boolean",title:"Enable Demo Mode",default:!0,description:"Pre-load the app with random demo data"}}},benefits:[{title:"Simple Deployment",description:"Get started quickly with minimal configuration required. Deploy Wally with just a few settings and start using it immediately."},{title:"Persistent Storage",description:"All your data is stored persistently in a dedicated volume, ensuring nothing is lost when the container restarts or updates."},{title:"Demo Mode",description:"Test and explore the application with pre-loaded demo data before committing your own information, making evaluation easy."},{title:"Web-Based Interface",description:"Access Wally from any device with a web browser, no additional software installation required."}],features:[{title:"Data Management",description:"Store and manage your data with a user-friendly web interface that makes organization simple and efficient."},{title:"Persistent Storage",description:"All data is stored in a persistent volume mounted at /wally/data, ensuring your information survives container restarts and updates."},{title:"Demo Mode",description:"Optional demo mode that pre-loads the application with sample data, perfect for testing and evaluation before production use."},{title:"Lightweight Container",description:"Runs efficiently in a Docker container with minimal resource requirements, making it suitable for various hosting environments."},{title:"Web Interface",description:"Clean, modern web interface accessible through standard web browsers, providing easy access from desktop and mobile devices."},{title:"Easy Configuration",description:"Simple environment variable configuration allows you to customize the application behavior without complex setup procedures."}],tags:["Web App","Data Management","Self-Hosted","Lightweight","Docker"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DEMO=".concat(e.enableDemo?"true":"false")].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/wally/data"}]}}),{services:t}}},{slug:"warracker",meta:{name:"Warracker",description:"Warracker is a self-hosted warranty tracking application that helps you manage and track warranties for your products and assets. It provides a comprehensive solution for storing warranty information, tracking expiration dates, managing documentation, and receiving notifications about upcoming warranty expirations. Built with a modern web interface and PostgreSQL database for reliable data storage.",instructions:null,changeLog:[{date:"2025-09-17",description:"Template Release (v0.10.1.11)"},{date:"2026-02-24",description:"Version bumped to 0.10.1.14"}],links:[{label:"Github",url:"https://github.com/sassanix/warracker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"warracker"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/sassanix/warracker/main:0.10.1.14"},smtpHost:{type:"string",title:"SMTP Host",default:"smtp.email.com",description:"SMTP server hostname for email notifications"},smtpPort:{type:"string",title:"SMTP Port",default:"465",description:"SMTP server port"},smtpUsername:{type:"string",title:"SMTP Username",default:"[email protected]",description:"SMTP authentication username"},smtpPassword:{type:"string",title:"SMTP Password",default:"password",description:"SMTP authentication password"},maxUploadMb:{type:"string",title:"Max Upload Size (MB)",default:"32",description:"Maximum file upload size in megabytes"},enableOidc:{type:"boolean",title:"Enable OIDC SSO",default:!1,description:"Enable OpenID Connect single sign-on authentication"},oidcProviderName:{type:"string",title:"OIDC Provider Name",default:"oidc",description:"Name of the OIDC provider"},oidcClientId:{type:"string",title:"OIDC Client ID",default:"",description:"OIDC client ID from your provider"},oidcClientSecret:{type:"string",title:"OIDC Client Secret",default:"",description:"OIDC client secret from your provider"},oidcIssuerUrl:{type:"string",title:"OIDC Issuer URL",default:"",description:"OIDC issuer URL (e.g., https://your-provider.com/auth/realms/your-realm)"},oidcScope:{type:"string",title:"OIDC Scope",default:"openid email profile",description:"OIDC scope for authentication"}}},benefits:[{title:"Warranty Management",description:"Centralized tracking of all your product warranties with expiration notifications and documentation management."},{title:"Self-Hosted Control",description:"Keep your warranty data completely private and secure on your own server with full control over your information."},{title:"Email Notifications",description:"Receive email notifications about upcoming warranty expirations to ensure you never miss important deadlines."}],features:[{title:"Warranty Tracking",description:"Track warranty information, expiration dates, and product details with a comprehensive database system."},{title:"Document Management",description:"Upload and store warranty documents, receipts, and related files with configurable upload size limits."},{title:"Email Integration",description:"SMTP integration for sending warranty expiration notifications and system alerts."},{title:"OIDC SSO Support",description:"Optional OpenID Connect single sign-on integration for enterprise authentication and user management."},{title:"Memory Optimization",description:"Configurable memory optimization modes for different deployment scenarios and resource constraints."},{title:"Database Storage",description:"Reliable PostgreSQL database for storing warranty data, user information, and application state with data persistence."}],tags:["Warranty Tracking","Asset Management","Self-Hosted","Web Interface","PostgreSQL","Email Notifications","Document Management"],logo:"logo.png",screenshots:["screenshot.png","screenshot1.png"]},generate:function(e){var t=[],a=v(),i=y(32);t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}});var o=["DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_PORT=5432","DB_NAME=$(PROJECT_NAME)","DB_USER=postgres","DB_PASSWORD=".concat(a),"SMTP_HOST=".concat(e.smtpHost),"SMTP_PORT=".concat(e.smtpPort),"SMTP_USERNAME=".concat(e.smtpUsername),"SMTP_PASSWORD=".concat(e.smtpPassword),"SECRET_KEY=".concat(i),"MAX_UPLOAD_MB=".concat(e.maxUploadMb),"NGINX_MAX_BODY_SIZE_VALUE=".concat(e.maxUploadMb,"M"),"FRONTEND_URL=https://$(PRIMARY_DOMAIN)","APP_BASE_URL=https://$(PRIMARY_DOMAIN)","WARRACKER_MEMORY_MODE=optimized","PYTHONUNBUFFERED=1"];return e.enableOidc&&o.push("OIDC_PROVIDER_NAME=".concat(e.oidcProviderName),"OIDC_CLIENT_ID=".concat(e.oidcClientId),"OIDC_CLIENT_SECRET=".concat(e.oidcClientSecret),"OIDC_ISSUER_URL=".concat(e.oidcIssuerUrl),"OIDC_SCOPE=".concat(e.oidcScope)),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:o.join("\n"),mounts:[{type:"volume",name:"uploads",mountPath:"/data/uploads"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"wastebin",meta:{name:"Wastebin",description:"Wastebin is a self-hosted, minimal pastebin designed for quick and simple text sharing. With a clean and intuitive interface inspired by bin, it allows users to create and share text snippets easily. Wastebin supports private pastes, syntax highlighting, and expiration settings for better control over shared content. It is lightweight, fast, and easy to deploy with minimal system requirements.",instructions:'In case of Sqlite write error. Go to your host machine and go the directory. "cd /etc/easypanel/projects/your-project/wastebin/volumes/" and do this "chown -R 10001:10001 data/" then redeploy.',changeLog:[{date:"2025-03-17",description:"First Release (v3.0.0)"},{date:"2025-07-25",description:"Version bumped to 3.2.0"},{date:"2026-02-24",description:"Version bumped to 3.4.0"},{date:"2026-05-07",description:"Version bumped to 3.6.2"}],links:[{label:"Documentation",url:"https://github.com/quxfoo/wastebin/wiki"},{label:"Github",url:"https://github.com/quxfoo/wastebin"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wastebin"},appServiceImage:{type:"string",title:"App Service Image",default:"quxfoo/wastebin:3.6.2"}}},benefits:[{title:"Minimal and Fast",description:"Wastebin is designed to be lightweight and efficient, making it perfect for quick text-sharing needs without unnecessary features or bloat."},{title:"Self-Hosted Privacy",description:"Unlike public pastebin services, Wastebin allows you to host your own instance, ensuring full control over your data and privacy."},{title:"Syntax Highlighting",description:"Wastebin supports syntax highlighting for various programming languages, making it useful for sharing and reading code snippets with proper formatting."},{title:"Expiration and Private Pastes",description:"Users can set expiration times for pastes or mark them as private, ensuring better content management and control."}],features:[{title:"Quick and Simple Text Sharing",description:"Wastebin allows users to create and share pastes with a single click, making the process fast and convenient."},{title:"Private and Public Pastes",description:"Users can mark pastes as private, restricting access and keeping sensitive information secure."},{title:"Expiration Control",description:"Pastes can have configurable expiration times, allowing users to set content to auto-delete after a certain period."},{title:"Syntax Highlighting",description:"Automatic syntax highlighting for various programming languages helps in better readability of shared code snippets."},{title:"Simple API",description:"Wastebin provides a straightforward API for programmatic paste creation, making it useful for developers and automation workflows."}],tags:["Pastebin","Productivity","Self-Hosted"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["WASTEBIN_DATABASE_PATH=/data/state.db"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8088}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"watchtower",meta:{name:"Watchtower",description:"Watchtower is a process for automating Docker container base image updates. It monitors running containers and automatically updates them when their base image changes.",instructions:"Mount `/var/run/docker.sock` in the Watchtower service to let it inspect and update running containers. Add the label `com.centurylinklabs.watchtower.enable=true` to each container you want Watchtower to manage, then enable label filtering in Watchtower. Set your preferred check interval or schedule, and add `--cleanup` to remove old image layers after successful updates.",changeLog:[{date:"2025-05-05",description:"Initial release"}],links:[{label:"Website",url:"https://containrrr.dev/watchtower"},{label:"GitHub",url:"https://github.com/containrrr/watchtower"},{label:"Documentation",url:"https://containrrr.dev/watchtower/"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"watchtower"},appServiceImage:{type:"string",title:"App Service Image",default:"containrrr/watchtower:1.7.1"}}},benefits:[{title:"Automatic Updates",description:"Automatically updates containers when new images are available"},{title:"Zero Downtime",description:"Updates containers without service interruption"},{title:"Simple Setup",description:"Easy to set up and requires minimal configuration"},{title:"Open Source",description:"Free and open-source container update automation"}],features:[{title:"Container Monitoring",description:"Monitors running containers for base image updates"},{title:"Automatic Updates",description:"Automatically pulls and updates containers"},{title:"Docker Socket Access",description:"Uses Docker socket to manage container updates"},{title:"Notification Support",description:"Configurable notifications for update events"},{title:"Scheduling",description:"Optional scheduling for update checks"}],tags:["Docker","Automation","Container","Self-hosted","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"wbo",meta:{name:"WBO",description:"WBO (Whiteboard Online) is an open-source, self-hosted, collaborative whiteboard tool that allows users to draw, brainstorm, and share ideas in real-time. It provides a flexible and accessible platform for teams, classrooms, or personal use, enabling simultaneous collaboration on a shared digital canvas. WBO offers tools for free-hand drawing, adding shapes, text, and images, making it ideal for team brainstorming sessions, remote meetings, and educational activities. With a clean and intuitive interface, WBO enhances remote collaboration and facilitates interactive learning.",instructions:null,changeLog:[{date:"2024-11-07",description:"initial release"},{date:"2025-07-25",description:"Version bumped to v1.22.0"}],links:[{label:"Website",url:"https://wbo.ophir.dev"},{label:"GitHub",url:"https://github.com/lovasoa/whitebophir"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wbo"},appServiceImage:{type:"string",title:"App Service Image",default:"lovasoa/wbo:v1.22.0"}}},benefits:[{title:"Real-time collaborative whiteboard",description:"WBO enables multiple users to collaborate simultaneously on a shared whiteboard, making it perfect for remote teams and classrooms."},{title:"Easy-to-use drawing and annotation tools",description:"Provides a range of tools for free-hand drawing, shapes, text, and images to support brainstorming, teaching, and team collaboration."},{title:"Self-hosted and private",description:"WBO is self-hosted, ensuring control over your data and privacy, which is ideal for secure, in-house collaboration."},{title:"Responsive and clean UI",description:"WBO offers a modern, user-friendly interface that enhances collaboration with an intuitive and easy-to-navigate design."},{title:"Lightweight and open-source",description:"WBO is lightweight and free, making it accessible for individuals and organizations looking for a cost-effective collaboration tool."}],features:[{title:"Flexible installation with Docker",description:"WBO can be easily installed using Docker, making deployment and setup straightforward on any platform."},{title:"Multiple device support",description:"WBO supports usage across various devices, enabling seamless collaboration from desktops, tablets, and mobile devices."},{title:"Customizable for tailored use cases",description:"As an open-source project, WBO can be customized to meet specific collaboration and whiteboarding needs."},{title:"Cross-platform compatibility",description:"WBO is compatible with major browsers, enabling easy access without additional software installations."},{title:"Lightweight resource usage",description:"WBO operates efficiently with minimal system resources, making it suitable for environments with limited hardware capacity."}],tags:["Collaboration","Whiteboard","Self-hosted","Open-source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/opt/app/server-data"}]}}),{services:t}}},{slug:"weaviate",meta:{name:"Weaviate",description:"Weaviate is an open-source vector database that allows you to store and retrieve data objects based on their semantic properties by indexing them with vectors. It can be used stand-alone or with a variety of modules that can do the vectorization for you and extend the core capabilities. Weaviate provides a lightning-fast pure vector similarity search over raw vectors or data objects, even with filters. It combines keyword-based search with vector search techniques for state-of-the-art results. You can also use any generative model in combination with your data, for example to do Q&A over your dataset. Weaviate's next-gen vector database can power a wide range of innovative apps.",instructions:null,changeLog:[{date:"2023-06-30",description:"first release"},{date:"2026-02-24",description:"Version bumped to 1.33.0"}],links:[{label:"Website",url:"https://weaviate.io"},{label:"Documentation",url:"https://weaviate.io/developers/weaviate"},{label:"Github",url:"https://github.com/weaviate/weaviate"}],contributors:[{name:"AlexSerban",url:"https://github.com/serban-alexandru"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"weaviate"},appServiceImage:{type:"string",title:"App Service Image",default:"semitechnologies/weaviate:1.33.0"}}},benefits:[{title:"Powerful Vector Search",description:"Easily perform lightning-fast pure vector similarity search over raw vectors or data objects, even with filters."},{title:"Hybrid Search",description:"Combine keyword-based search with vector search techniques for state-of-the-art search results."},{title:"Generative Search",description:"Improve search results by using generative models like GPT-3 to create next-gen search experiences."}],features:[{title:"Scalable Vector Database",description:"Store data objects and vector embeddings from ML models and scale seamlessly into billions of data objects."},{title:"Integrations",description:"Choose from a variety of vectorization modules and neural search frameworks for easy integration."},{title:"Wide Range of Applications",description:"Power innovative apps beyond search with Weaviate's next-gen vector database."}],tags:["Developer Tools","Data Science","Databases"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["QUERY_DEFAULTS_LIMIT=25","AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED='true'","PERSISTENCE_DATA_PATH='/var/lib/weaviate'","DEFAULT_VECTORIZER_MODULE='none'","ENABLE_MODULES=''","CLUSTER_HOSTNAME='node1'"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/var/lib/weaviate"}]}}),{services:t}}},{slug:"web-check",meta:{name:"Web-Check",description:"A comprehensive OSINT tool for analyzing websites, providing insights into security configurations, server architecture, and technologies.",instructions:null,changeLog:[{date:"2025-05-12",description:"First Release"}],links:[{label:"Website",url:"https://web-check.xyz/"},{label:"Github",url:"https://github.com/Lissy93/web-check"},{label:"Documentation",url:"https://web-check.xyz/about"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"web-check"},appServiceImage:{type:"string",title:"App Service Image",default:"lissy93/web-check"}}},benefits:[{title:"Comprehensive Analysis",description:"Get detailed insights into any website's security, configuration, and technology stack."},{title:"Easy Deployment",description:"Simple deployment with Docker and automatic setup."},{title:"Open Source",description:"Free and open source with active community support."}],features:[{title:"Security Analysis",description:"Check SSL certificates, security headers, DNS security, and firewall configurations."},{title:"Server Information",description:"View IP info, server location, open ports, and infrastructure details."},{title:"Technology Stack",description:"Identify technologies, frameworks, and services used by the website."},{title:"Performance Metrics",description:"Analyze site performance, quality metrics, and carbon footprint."},{title:"Domain Intelligence",description:"Access DNS records, WHOIS data, associated domains, and more."}],tags:["OSINT","Security","Web Analysis","DNS","SSL","Performance"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"web-portal",meta:{name:"Web Portal",description:"Web Portal is a lightweight and customizable dashboard application developed by enchant97. It provides a central hub for accessing your self-hosted applications and services. With a clean and intuitive interface, Web Portal helps you organize and access your web applications efficiently. It features a SQLite database for configuration storage and supports custom plugins for extended functionality. This containerized solution is perfect for home server enthusiasts and self-hosters looking for a clean, efficient way to manage their web applications.",instructions:null,changeLog:[{date:"2025-04-17",description:"First Release"},{date:"2025-07-25",description:"Version bumped to 2.4.0"},{date:"2026-02-24",description:"Version bumped to 2.5.0"}],links:[{label:"GitHub",url:"https://github.com/enchant97/web-portal"},{label:"Container",url:"https://github.com/enchant97/web-portal/pkgs/container/web-portal"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"web-portal"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/enchant97/web-portal:2.5.0"}}},benefits:[{title:"Centralized Dashboard",description:"Web Portal provides a single, unified interface for accessing all your self-hosted applications and services, making navigation between them seamless and efficient."},{title:"Customizable Experience",description:"Tailor your dashboard to your specific needs with custom organization and plugin support for extended functionality."},{title:"Lightweight and Fast",description:"Built with efficiency in mind, Web Portal has minimal resource requirements while providing quick access to your applications."}],features:[{title:"Application Directory",description:"Organize and manage links to all your web applications in a clean, structured interface."},{title:"SQLite Database",description:"Configuration and data are stored in a simple SQLite database, making backup and migration straightforward."},{title:"Plugin Support",description:"Extend functionality with custom plugins that can be easily integrated into your Web Portal installation."},{title:"Containerized Deployment",description:"Easily deploy Web Portal in any environment that supports Docker with minimal setup."},{title:"Secure Access",description:"Protect your dashboard with security features to ensure only authorized users can access your application directory."}],tags:["Dashboard","Web Portal","Self-hosted","Docker","Application Directory"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],env:["DB_URI=sqlite:///app/data/db.sqlite","SECRET_KEY=".concat(e.secretKey)].join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"plugins",mountPath:"/app/plugins"}]}}),{services:t}}},{slug:"webcord",meta:{name:"Webcord",description:"WebCord is an application designed to enhance your Discord experience. It is a pack of security and privacy hardenings, Discord features reimplementations, Electron / Chromium / Discord bugs workarounds, stylesheets, internal pages and wrapped https://discord.com page. It is designed to conform with ToS as much as it is possible. The application can be accessed at: http://yourhost:3000/ or https://yourhost:3001/. This container is based on Docker Baseimage KasmVNC which means there are additional environment variables and run configurations to enable or disable specific functionality.",instructions:"use abc:abc to login. To access the login interface, add ?login=true to your URL.",changeLog:[{date:"2023-5-7",description:"first release"},{date:"2025-03-03",description:"Version bumped to 4.10.4"},{date:"2025-07-25",description:"Version bumped to 4.11.0"},{date:"2026-02-24",description:"Version bumped to 4.12.1"},{date:"2026-05-07",description:"Version bumped to 4.13.0"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-webcord"},{label:"Github",url:"https://github.com/SpacingBat3/WebCord"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"webcord"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/webcord:4.13.0"}}},benefits:[{title:"Enhanced Security and Privacy",description:"WebCord provides security and privacy hardenings to protect your Discord communication and data."},{title:"Improved Discord Features",description:"WebCord includes reimplementations of Discord features, allowing you to enhance your Discord experience."},{title:"Bug Workarounds and Stylesheets",description:"WebCord addresses Electron / Chromium / Discord bugs and provides custom stylesheets for a better user interface."}],features:[{title:"Conforms with Discord's Terms of Service",description:"WebCord is designed to conform with Discord's Terms of Service, ensuring compliance while using the app."},{title:"Multi-Platform Support",description:"WebCord supports multiple architectures, making it compatible with various devices and operating systems."},{title:"Lossless Image Streaming",description:"WebCord can deliver lossless images at a high framerate to your web browser, providing a superior visual experience."}],tags:["Chat","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"data",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"weblate",meta:{name:"Weblate",description:"Weblate is a powerful, web-based continuous localization system. It is designed to simplify the process of translating text from one language to another, making it an invaluable tool for projects and companies operating in multiple countries. With Weblate, users can easily translate using the platform, download and upload translations, and even integrate with version control systems for seamless workflow. The app supports a wide range of file formats, and it also provides a REST API and Python API for further flexibility. Weblate also offers features like automatic suggestions, translation memory, and various checks and fixups to ensure high-quality translations. Whether you're starting with internationalization or managing an established translators community, Weblate has the features to support your translation needs.",instructions:"Please use the following credentials to login. [email protected]|changeme",changeLog:[{date:"2022-11-23",description:"first release"},{date:"2023-03-22",description:"Update to v4.16"},{date:"2025-07-25",description:"Version bumped to 5.12.2.3"},{date:"2026-02-24",description:"Version bumped to 5.16.0.0"}],links:[{label:"Documentation",url:"https://docs.weblate.org/en/latest/index.html"},{label:"Github",url:"https://github.com/WeblateOrg/weblate"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","redisServiceName","emailNoReply","emailHost","emailUsername","emailPassword"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"weblate"},appServiceImage:{type:"string",title:"App Service Image",default:"weblate/weblate:5.16.0.0"},databaseServiceName:{type:"string",title:"Database Service Name",default:"weblate-db"},redisServiceName:{type:"string",title:"Redis Service Name",default:"weblate-redis"},emailNoReply:{type:"string",title:"No Reply Email"},emailHost:{type:"string",title:"Email Host"},emailUsername:{type:"string",title:"Email Username"},emailPassword:{type:"string",title:"Email Password"}}},benefits:[{title:"Efficient Localization",description:"Weblate is a web-based continuous localization system that allows you to easily translate and manage your software projects. With Weblate, you can streamline the localization process and ensure that your app is available in multiple languages."},{title:"Collaborative Translation",description:"Weblate enables collaboration among translators, making it easy for multiple contributors to work on translations simultaneously. This helps to speed up the translation process and ensures high-quality translations."},{title:"Version Control Integration",description:"Weblate seamlessly integrates with version control systems like Git, allowing you to manage translations directly from your code repository. This simplifies the workflow and ensures that translations are always in sync with the latest code changes."}],features:[{title:"Web-Based Interface",description:"Weblate provides a user-friendly web-based interface that allows you to easily manage your translation projects. You can add new languages, import and export translations, and track the progress of translations."},{title:"Glossary and Translation Memory",description:"Weblate includes features like glossary and translation memory, which help to improve translation consistency and efficiency. The glossary allows you to define and manage a list of terms and their translations, while the translation memory suggests previously translated segments for reuse."},{title:"Automatic Checks and Fixups",description:"Weblate automatically checks translations for common errors and inconsistencies, such as missing placeholders or incorrect formatting. It also provides fixup suggestions to help translators correct these issues quickly."}],tags:["Localization","Translation","Web-based"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["REDIS_HOST=".concat(e.redisServiceName),"REDIS_PORT=6379","REDIS_DB=1","REDIS_PASSWORD=".concat(a),"WEBLATE_DEFAULT_FROM_EMAIL=".concat(e.emailNoReply),"WEBLATE_EMAIL_HOST=".concat(e.emailHost),"WEBLATE_EMAIL_HOST_USER=".concat(e.emailUsername),"WEBLATE_EMAIL_HOST_PASSWORD=".concat(e.emailPassword),"WEBLATE_SERVER_EMAIL=".concat(e.emailUsername),"WEBLATE_SITE_DOMAIN=https://$(PRIMARY_DOMAIN)","WEBLATE_ADMIN_PASSWORD=changeme","[email protected]","POSTGRES_PASSWORD=".concat(i),"POSTGRES_USER=postgres","POSTGRES_DATABASE=$(PROJECT_NAME)","POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"POSTGRES_SSL_MODE=disable"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"},{type:"volume",name:"cache",mountPath:"/app/cache"}]}}),t.push({type:"redis",data:{serviceName:e.redisServiceName,password:a}}),t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:i}}),{services:t}}},{slug:"webtop",meta:{name:"WebTop",description:"WebTop is a browser-based Linux desktop environment, self-hosted using Docker. It provides a full-featured desktop experience accessible from any device with a modern web browser. WebTop supports multiple desktop environments and applications, making it a versatile tool for productivity, remote work, and development.",instructions:null,changeLog:[{date:"2024-11-27",description:"Template Release"},{date:"2026-05-07",description:"Version bumped to ubuntu-xfce-version-4e5d70f4"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-webtop/"},{label:"Github",url:"https://github.com/linuxserver/docker-webtop"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"webtop"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/webtop:ubuntu-xfce-version-4e5d70f4"}}},benefits:[{title:"Browser-Based Desktop",description:"Access a full Linux desktop environment directly from your web browser."},{title:"Customizable Experience",description:"Choose from multiple desktop environments like KDE, XFCE, and more."},{title:"Lightweight and Secure",description:"A lightweight solution for remote desktops, ensuring data privacy and security."}],features:[{title:"Full Desktop Environment",description:"Provides a complete Linux desktop accessible through a browser."},{title:"Multi-User Support",description:"Enable collaboration with multiple user sessions on the same instance."},{title:"Application Support",description:"Run various applications, including development tools, directly within the desktop."},{title:"File Management",description:"Built-in tools for managing and accessing your files."}],tags:["Browser-Based","Self-Hosted","Productivity","Remote Desktop"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:3e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"wekan",meta:{name:"Wekan",description:"WeKan is an open-source, customizable, and privacy-focused Kanban app designed for efficient task management. It allows you to create multiple boards for different projects or tasks, with each board having columns to represent different stages of your work such as 'To Do', 'Doing', and 'Done'. You can add cards to each board to represent tasks, complete with titles, descriptions, and due dates. WeKan uses lists on a Kanban board to represent different stages of a workflow, helping you organize and track tasks. You can customize lists by changing their color or adding custom fields to capture more information about tasks. A card in WeKan represents a task on a Kanban board, including a title, description, due date, labels, and comments. As work progresses, you can move the card from one column to another. WeKan also offers several features to protect your data, including a self-hosting option, access controls, and open-source code for security auditing. It is designed with security in mind, and its features and options are built to help you protect your data and keep it secure.",instructions:null,changeLog:[{date:"2023-07-10",description:"First Release"},{date:"2025-07-25",description:"Version bumped to v7.93"}],links:[{label:"Website",url:"https://wekan.github.io/"},{label:"Docs",url:"https://github.com/wekan/wekan/wiki"},{label:"Github",url:"https://github.com/wekan/wekan"}],contributors:[{name:"Berk S\xfcmb\xfcl",url:"https://berksmbl.com"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName","mailFrom","mailFromSender","mailHost","mailUsername","mailPassword","mailPort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wekan"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/wekan/wekan:v7.93"},databaseServiceName:{type:"string",title:"App Service Name",default:"wekan-db"},mailFrom:{type:"string",title:"Mail From",default:"Wekan Notifications"},mailFromSender:{type:"string",title:"Mail From Sender",default:"[email protected]"},mailHost:{type:"string",title:"Mail Host"},mailUsername:{type:"string",title:"Mail Username"},mailPassword:{type:"string",title:"Mail Password"},mailPort:{type:"number",title:"Mail Port",default:25},mailSmtpSsl:{type:"boolean",title:"SMTP SSL",default:!1},mailDisableTls:{type:"boolean",title:"Disable TLS",default:!1}}},benefits:[{title:"Efficient Task Management",description:"Experience efficient task management with WeKan - the Open-Source, customizable, and privacy-focused kanban."},{title:"Visual Task Tracking",description:"Keep track of your tasks and projects visually with WeKan. See what needs to be done and what has been completed."},{title:"Customizable Boards",description:"Create multiple boards for different projects or tasks. Customize each board with columns to represent different stages of your work."}],features:[{title:"Kanban Boards",description:"Create boards to organize and track your tasks and projects. Add columns to represent different stages of your work."},{title:"Lists",description:"Use lists on a Kanban board to represent different stages of a workflow. Organize and track tasks within each list."},{title:"Cards",description:"Create cards to represent tasks on a Kanban board. Add titles, descriptions, due dates, and more to each card."},{title:"Security in Focus",description:"WeKan prioritizes security with features like self-hosting, open-source code, and access controls to protect your data."}],tags:["Project Management","Open-Source","Task Management","Kanban"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["WRITABLE_PATH=/data","MONGO_URL=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":27017"),"ROOT_URL=https://$(PRIMARY_DOMAIN)","MAIL_URL=".concat(e.mailSmtpSsl?"smtps":"smtp","://").concat(e.mailUsername,":").concat(e.mailPassword,"@").concat(e.mailHost,":").concat(e.mailPort,"/?ignoreTLS=").concat(e.mailDisableTls),"MAIL_FROM=".concat(e.mailFrom," <").concat(e.mailFromSender,">"),"WITH_API=true","RICHER_CARD_COMMENT_EDITOR=false","CARD_OPENED_WEBHOOK_ENABLED=false","BIGEVENTS_PATTERN=NONE","BROWSER_POLICY_ENABLED=true"].join("\n")}}),t.push({type:"mongo",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"wg-easy",meta:{name:"Wg-easy",description:"WireGuard Easy is an all-in-one application designed to simplify the installation and management of WireGuard on any Linux host. With a user-friendly web interface, it allows you to list, create, edit, delete, enable, and disable clients with ease. You can also view a client's QR code and download a client's configuration file directly from the app. The app provides statistics on which clients are connected and features Tx/Rx charts for each connected client. It also supports Gravatar. WireGuard Easy requires a host with a kernel that supports WireGuard and Docker installed.",instructions:null,changeLog:[{date:"2022-12-20",description:"first release"},{date:"2025-06-25",description:"Fixed the Access Issue"},{date:"2026-05-07",description:"Version bumped to 15.2.2"}],links:[{label:"Github",url:"https://github.com/wg-easy/wg-easy"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","appServicePort"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wg-easy"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/wg-easy/wg-easy:15.2.2"},appServicePort:{type:"string",title:"App Service Port",default:"51820"}}},benefits:[{title:"Easy installation and management",description:"Install and manage WireGuard on any Linux host with ease."},{title:"All-in-one solution",description:"Includes both WireGuard and a web UI for easy configuration and control."},{title:"Client management",description:"List, create, edit, delete, enable, and disable clients with ease."},{title:"QR code support",description:"Generate QR codes for easy client configuration."},{title:"Configuration file download",description:"Download client configuration files for easy setup."},{title:"Connection statistics",description:"View statistics for connected clients."},{title:"Traffic charts",description:"Monitor traffic charts for each connected client."},{title:"Gravatar support",description:"Display client avatars using Gravatar."}],features:[{title:"Easy installation",description:"Simple installation process for WireGuard and the web UI."},{title:"Client management",description:"Easily manage clients, including creating, editing, deleting, enabling, and disabling."},{title:"QR code generation",description:"Generate QR codes for easy client configuration."},{title:"Configuration file download",description:"Download client configuration files for easy setup."},{title:"Connection statistics",description:"View statistics for connected clients."},{title:"Traffic charts",description:"Monitor traffic charts for each connected client."},{title:"Gravatar support",description:"Display client avatars using Gravatar."}],tags:["Network Tools","Security","VPN","WireGuard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:51821}],ports:[{published:Number(e.appServicePort),target:51820,protocol:"udp"}],deploy:{capAdd:["NET_ADMIN","SYS_MODULE"]},mounts:[{type:"volume",name:"wg-config",mountPath:"/etc/wireguard"},{type:"bind",hostPath:"/lib/modules",mountPath:"/lib/modules"}]}}),{services:t}}},{slug:"whisparr",meta:{name:"Whisparr",description:"Whisparr is an adult video collection manager designed for Usenet and BitTorrent users. It monitors multiple RSS feeds for new adult content and interfaces with clients and indexers to grab, sort, and rename them. Whisparr also features automatic upgrades of existing files in your library to better quality formats when available. It includes a calendar to track upcoming releases, manual search for precise selection, and automatic handling of failed downloads. Whisparr ensures optimal release selection with its custom formats feature, offering detailed control over prioritization. It supports major platforms like Windows, Linux, macOS, and others.",instructions:null,changeLog:[{date:"2024-03-18",description:"Template added"},{date:"2025-03-03",description:"Version bumped to v3-41ddd1f"}],links:[{label:"Website",url:"https://whisparr.com/"},{label:"Documentation",url:"https://wiki.servarr.com/whisparr"},{label:"Github",url:"https://github.com/Whisparr/Whisparr/"}],contributors:[{name:"Mark Topper Diderichsen",url:"https://github.com/marktopper"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"whisparr"},appServiceImage:{type:"string",title:"App Service Image",default:"hotio/whisparr:v3-41ddd1f"}}},benefits:[{title:"Automated Adult Video Management",description:"Automatically monitors RSS feeds for new adult content, streamlining your collection process."},{title:"Quality Upgrades",description:"Automatically upgrades the quality of existing files in your library when better formats become available."},{title:"Failed Download Handling",description:"Automatically handles failed downloads, saving time and frustration."}],features:[{title:"Calendar",description:"Track your upcoming adult content releases in one convenient location."},{title:"Manual Search",description:"Manually search and select the adult content you want."},{title:"Custom Formats",description:"Fine control over release prioritization and selection with custom formats."},{title:"Integration with Download Clients",description:"Full integration with major download clients for seamless content management."},{title:"Metadata Importing",description:"Imports metadata, enhancing your adult content collection."}],tags:["Adult Media","Download Manager"],logo:"logo.png",screenshots:[]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"whiteboard",meta:{name:"Whiteboard",description:"Whiteboard is a lightweight, NodeJS-based collaborative sketchboard that can be easily customized to your needs. It allows multiple users to draw and write together in real-time, with each user's cursor visible to others. The app provides a range of features including the ability to undo and redo actions, drag and drop or copy and paste images or PDFs, resize, move, rotate and draw images, write text and sticky notes, and save the whiteboard to an image or JSON. You can also draw angle lines and squares by pressing 'Shift' while drawing. The app is compatible with PC, tablet, and mobile devices, and can be used in various projects such as WebRTC conference tools and online collaboration learning activities.",instructions:null,changeLog:[{date:"2022-08-01",description:"first release"}],links:[{label:"Website",url:"https://github.com/cracker0dks/whiteboard"},{label:"Documentation",url:"https://github.com/cracker0dks/whiteboard"},{label:"Github",url:"https://github.com/cracker0dks/whiteboard"}],contributors:[{name:"Ivan Ryan",url:"https://github.com/ivanonpc-22"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"whiteboard"},appServiceImage:{type:"string",title:"App Service Image",default:"rofl256/whiteboard:latest"}}},benefits:[{title:"Collaborative Whiteboard",description:"Easily collaborate with others in real-time on a shared whiteboard."},{title:"Customizable",description:"Easily customize the whiteboard to suit your needs and preferences."},{title:"Multi-platform Support",description:"Works on PC, tablet, and mobile devices for seamless collaboration."}],features:[{title:"Remote User Cursors",description:"See the cursors of remote users while they are drawing."},{title:"Undo/Redo Function",description:"Easily undo or redo actions for each user."},{title:"Drag+Drop/Copy+Paste Images or PDFs",description:"Effortlessly add images or PDFs from your device or browser."},{title:"Resize, Move, Rotate & Draw Images",description:"Manipulate and draw on images with ease."},{title:"Write Text and Sticky Notes",description:"Add text and sticky notes to the whiteboard."},{title:"Save Whiteboard to Image and JSON",description:"Save your whiteboard as an image or JSON file for future reference."},{title:"Draw Angle Lines and Squares",description:"Draw angle lines and squares with ease using keyboard shortcuts."}],tags:["Productivity","Collaboration","Whiteboard"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),{services:t}}},{slug:"whoogle",meta:{name:"Whoogle",description:"Whoogle is an open-source, privacy-focused search engine that serves as a proxy for Google Search. It allows users to access Google\u2019s powerful search capabilities without being tracked, monitored, or bombarded with ads. Whoogle removes trackers, logs, and ads, ensuring that search queries and browsing activities remain private and anonymous. Users benefit from Google's accurate and comprehensive search results, while maintaining full control over their personal data. Its lightweight design makes it easy to deploy and use, often preferred by those seeking to balance search efficiency with enhanced privacy.",instructions:null,changeLog:[{date:"2024-10-11",description:"Version 0.9.0 (First Release)"},{date:"2025-03-03",description:"Version bumped to 0.9.3"}],links:[{label:"Github",url:"https://github.com/benbusby/whoogle-search"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"whoogle"},appServiceImage:{type:"string",title:"App Service Image",default:"benbusby/whoogle-search:0.9.3"}}},benefits:[{title:"Complete Privacy",description:"Whoogle ensures full anonymity by removing ads, trackers, and logs, allowing you to use Google\u2019s search engine without compromising your privacy."},{title:"Ad-Free Experience",description:"Unlike Google Search, Whoogle provides an ad-free environment, delivering cleaner search results without distractions."},{title:"Open-Source Freedom",description:"Being open-source, Whoogle gives users full control over their data and the platform, offering transparency and customization."}],features:[{title:"Google\u2019s Powerful Search",description:"Whoogle uses Google\u2019s search engine to deliver accurate and comprehensive results without sacrificing user privacy."},{title:"Lightweight and Fast",description:"Whoogle is designed to be fast and lightweight, making it easy to deploy on any system with minimal resources."},{title:"No Account Required",description:"Unlike Google, Whoogle does not require users to log in or create an account, making it ideal for those who prioritize privacy."}],tags:["Search","Privacy","Open-Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["WHOOGLE_CONFIG_DISABLE=1","WHOOGLE_CONFIG_SEARCH_LANGUAGE=en","WHOOGLE_CONFIG_RESULT_LANGUAGE=en","WHOOGLE_CONFIG_COUNTRY=us"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5e3}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),{services:t}}},{slug:"wikijs",meta:{name:"Wiki.js",description:"Wiki.js is a powerful and extensible open source Wiki software designed to make documentation a joy to write. It features a beautiful and intuitive interface that can be fully customized to your liking, including a light and dark mode. The software is compatible with various platforms and databases, including PostgreSQL, MySQL, MariaDB, MS SQL Server, and SQLite. With Wiki.js, you can manage all aspects of your wiki using the extensive and intuitive admin area. The software is built with performance in mind, running on the blazing fast Node.js engine. It is designed to intelligently make use of available resources, making it scalable whether it's on a tiny Raspberry Pi or on a high performance VM in the cloud. Wiki.js also allows you to control the privacy of your wiki, making it public, completely private, or a mix of both. It offers a wide range of modules that can be turned on/off on demand, catering to the unique needs of different teams. These modules include authentication, editors, history, localization, media assets, rendering, search, storage, user management, and themes. Wiki.js is proudly licensed under AGPLv3 and has been downloaded over 50 million times.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"},{date:"2023-03-22",description:"Update to v2.5.298"},{date:"2025-03-03",description:"Version bumped to 2.5.306"},{date:"2026-05-07",description:"Version bumped to 2.5.314"}],links:[{label:"Website",url:"https://js.wiki/"},{label:"Documentation",url:"https://docs.requarks.io/"},{label:"Github",url:"https://github.com/Requarks/wiki"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wikijs"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/requarks/wiki:2.5.314"},databaseType:{type:"string",title:"Database Type",default:"postgres",oneOf:[{enum:["postgres"],title:"Postgres"},{enum:["mysql"],title:"MySQL"},{enum:["mariadb"],title:"MariaDB"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"wikijs-db"}}},benefits:[{title:"Powerful and Extensible",description:"Wiki.js is the most powerful and extensible open source Wiki software available. It offers a wide range of features and modules that can be customized to meet the specific needs of your team."},{title:"Beautiful and Intuitive Interface",description:"Make documentation a joy to write with Wiki.js's beautiful and intuitive interface. The user-friendly design makes it easy to create and manage your wiki pages."},{title:"Install Anywhere",description:"Wiki.js can be installed on virtually any platform and is compatible with popular databases like PostgreSQL, MySQL, MariaDB, MS SQL Server, and SQLite. You have the flexibility to choose the hosting environment that works best for your team."},{title:"Easy Administration",description:"Manage all aspects of your wiki using the extensive and intuitive admin area. You can easily customize the appearance of your wiki, manage user access and permissions, and configure authentication options."},{title:"High Performance",description:"Wiki.js is built on the blazing fast Node.js engine, ensuring optimal performance. Whether you're running it on a small Raspberry Pi or a high-performance VM in the cloud, Wiki.js intelligently utilizes available resources."}],features:[{title:"Authentication",description:"Wiki.js offers built-in authentication with self-registration and password recovery capabilities. You can also integrate with third-party authentication services like Google, Facebook, Microsoft, GitHub, and more."},{title:"Modules",description:"Customize your wiki by enabling or disabling modules based on your team's needs. Wiki.js offers a wide range of modules for features like editing, history tracking, localization, media assets, rendering, search, storage, and user management."},{title:"Open Source",description:"Wiki.js is an open source project released under the AGPL-v3 license. This means anyone can contribute new features and help improve the software. It's not just about being free, it's about fostering a collaborative community."},{title:"External Integrations",description:"Connect your wiki with external services for authentication, logging, rendering, search, and storage. Wiki.js supports integrations with popular platforms like Git, AWS, Azure, Google Cloud, Facebook, and Algolia."},{title:"Sponsors and Backers",description:"Wiki.js is made possible thanks to generous sponsors and backers. By supporting the project, you contribute to its ongoing development and improvement."}],tags:["Wiki","Documentation"],logo:"logo.svg",screenshots:[]},generate:function(e){var t=[],a=v(),i=e.databaseType,o="postgres"===e.databaseType?"5432":"3306";return t.push({type:"app",data:{serviceName:e.appServiceName,env:["DB_TYPE=".concat(e.databaseType),"DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"DB_PORT=".concat(o),"DB_USER=".concat(i),"DB_PASS=".concat(a),"DB_NAME=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),"postgres"===e.databaseType&&t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),"mysql"===e.databaseType&&t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),"mariadb"===e.databaseType&&t.push({type:"mariadb",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"windmill",meta:{name:"Windmill",description:"Windmill Cloud is a powerful tool that transforms scripts into workflows and user interfaces in just a few minutes. It is designed to help you create internal apps and robust workflows using code only where necessary. With Windmill Cloud, you can make your scripts production-grade and build all your internal tools using Python, Typescript, Go, Bash, Sql. You can compose your scripts as workflows using low-code and share an autogenerated UI or build one using low-code. The app is designed to run reliably at scale on your infrastru
1cture or ours, with permissioning and monitoring included. It is a fully open-source alternative to Airplane, Superblocks & Retool, and it's easy to deploy on both small and large infrastructures. With Windmill Cloud, you can run long-running heavy background jobs, script with complex dependencies, endpoints with high rpm or simple one-off tasks without any overhead. You can trigger them from a webhook or the auto-generated UI and monitor them easily. Additionally, Windmill Cloud allows you to build complex flows without complexity, from atomic scripts, either from your workspace or the Hub. You can also build super fast and powerful apps using drag and drop components, connect your data and deploy your app in minutes. Windmill Cloud is designed to be super performant, ensuring your app is always running smoothly, even when running complex apps.",instructions:"Login using [email protected]:changeme",changeLog:[{date:"2023-03-1",description:"first release"},{date:"2023-03-22",description:"Update to v.1.80.1"},{date:"2023-05-25",description:"Update to latest + EE"},{date:"2025-07-28",description:"Update to v.1.514"},{date:"2026-02-24",description:"Version bumped to 1.644"},{date:"2026-05-07",description:"Version bumped to 1.696.2"}],links:[{label:"Website",url:"https://windmill.dev"},{label:"Documentation",url:"https://docs.windmill.dev"},{label:"Github",url:"https://github.com/windmill-labs/windmill"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","workerReplicas","nativeWorkerReplicas","lspServiceImage"],properties:{appServiceImage:{type:"string",title:"Ap
1p Service Image",default:"ghcr.io/windmill-labs/windmill:1.696.2"},lspServiceImage:{type:"string",title:"LSP Service Image",default:"ghcr.io/windmill-labs/windmill-lsp:1.644"},appServiceName:{type:"string",title:"App Service Name",default:"windmill"},workerReplicas:{type:"number",title:"Worker Replicas",default:1},nativeWorkerReplicas:{type:"number",title:"Native Worker Replicas",default:1}}},benefits:[{title:"Easily create internal apps and workflows",description:"Windmill Cloud allows you to quickly create internal apps and workflows using code only where it matters."},{title:"Scalable and reliable worker infrastructure",description:"Windmill Cloud provides self-hostable worker infrastructure that is scalable, reliable, and fast."},{title:"Fully open-source alternative",description:"Windmill Cloud is a fully open-source alternative to Airplane, Superblocks, and Retool."}],features:[{title:"Turn scripts into workflows and UIs",description:"With Windmill Cloud, you can easily turn scripts into workflows and user interfaces in just minutes."},{title:"Build production-grade internal tools",description:"Windmill Cloud allows you to build production-grade internal tools using Python, Typescript, Go, Bash, and SQL."},{title:"Run scripts reliably at scale",description:"You can run scripts reliably at scale on your infrastructure or Windmill Cloud's infrastructure, with permissioning and monitoring included."}],tags:["Developer Tools"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-server"),env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-database:5432/$(PROJECT_NAME)?sslmode=disable"),"MODE=server"].join("\n"),source:{type:"image",image:"".concat(e.appServiceImage)},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-lsp"),env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-database:5432/$(PROJECT_NAME)?sslmode=disable"),"MODE=server"].join("\n"),source:{type:"image",image:e.lspServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3001,https:!0,path:"/ws"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker"),env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-database:5432/$(PROJECT_NAME)?sslmode=disable"),"MODE=worker","WORKER_GROUP=default"].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{replicas:e.workerReplicas},mounts:[{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"volume",name:"cache",mountPath:"/tmp/windmill/cache"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-worker-native"),env:["DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-database:5432/$(PROJECT_NAME)?sslmode=disable"),"MODE=worker","WORKER_GROUP=native"].join("\n"),source:{type:"image",image:e.appServiceImage},deploy:{replicas:e.nativeWorkerReplicas}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-database"),password:a}}),{services:t}}},{slug:"wishlist",meta:{name:"Wishlist",description:"Wishlist is a self-hosted gift registry and wishlist management application that simplifies gift-giving for families, friends, and special occasions. It provides a centralized platform where users can create and share wishlists, claim items to prevent duplicate gifts, and track purchase status. The application features automatic product data fetching from URLs, user-friendly interfaces accessible to all ages, and support for multiple groups to separate different circles like family, friends, or coworkers. Wishlist includes registry mode for wedding registries or single comprehensive lists, item claiming with privacy to prevent gift spoilers, purchase tracking for claimed items, gift suggestions from friends and family, and user invitation via email with SMTP integration. Built with a modern web interface and Progressive Web App support, Wishlist offers seamless access across devices with offline capabilities. The application uses SQLite for lightweight data storage and stores user-uploaded images locally, ensuring all data remains on your infrastru
1cture. With OAuth authentication support and customizable token expiration, Wishlist provides secure access control while maintaining ease of use. Perfect for families coordinating holidays and birthdays, couples managing wedding registries, friend groups organizing gift exchanges, or anyone who wants a private alternative to public wishlist services with complete control over their data and privacy.",instructions:null,changeLog:[{date:"2025-11-28",description:"Template Release"}],links:[{label:"GitHub",url:"https://github.com/cmintey/wishlist"},{label:"Docker Hub",url:"https://github.com/cmintey/wishlist/pkgs/container/wishlist"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"wishlist"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/cmintey/wishlist:v0.55.0"},tokenTime:{type:"string",title:"Token Expiration Time (hours)",default:"72"}}},benefits:[{title:"Prevent Duplicate Gifts",description:"Users can claim items on wishlists, ensuring no one accidentally buys the same gift and eliminating gift-giving coordination headaches."},{title:"Self-Hosted Privacy",description:"Keep all wishlist data, user information, and gift plans on your own infrastructure, away from commercial platforms and data mining."},{title:"Family-Friendly Interface",description:"Simple, intuitive design that works for all age groups, making it easy for grandparents, parents, and kids to participate."},{title:"Multi-Group Organization",description:"Create separate groups for different social circles, keeping family wishlists separate from friend groups or coworkers."}],features:[{title:"Item Claiming System",description:"Claim items on wishlists to prevent duplicates while keeping the surprise intact with privacy settings that hide claims from list owners."},{title:"Purchase Tracking",description:"Mark claimed items as purchased to track fulfillment status and see which gifts have been bought."},{title:"Automatic Product Fetching",description:"Paste a product URL and automatically retrieve product name, price, image, and description from major retailers."},{title:"User Invitations",description:"Invite family and friends via email with customizable signup tokens and SMTP integration for seamless onboarding."},{title:"Gift Suggestions",description:"Provide and receive gift suggestions, helping friends and family contribute ideas when users need inspiration."},{title:"Progressive Web App",description:"Install on any device as a PWA for app-like experience with offline support and home screen shortcuts."},{title:"Registry Mode",description:"Enable registry mode for weddings or special events to maintain a single comprehensive list for all items."},{title:"OAuth Authentication",description:"Secure login with OAuth provider support for convenient and secure user authentication."}],tags:["Wishlist","Gift Registry","Family","Gift Management","Self-Hosted"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3280}],env:["ORIGIN=https://$(PRIMARY_DOMAIN)","TOKEN_TIME=".concat(e.tokenTime||"72")].join("\n"),mounts:[{type:"volume",name:"uploads",mountPath:"/usr/src/app/uploads"},{type:"volume",name:"data",mountPath:"/usr/src/app/data"}]}}),{services:t}}},{slug:"wizarr",meta:{name:"Wizarr",description:"Wizarr is an automatic user invitation system designed to streamline the process of inviting users to your media server. Whether you're using Plex, Jellyfin, or Emby, Wizarr allows you to create a unique link to share with users, automatically inviting them to your server. The app also guides users on how to download the necessary client and provides instructions on how to use your request software. Wizarr offers a secure invitation environment, plug and play SSO support, multi-tiered invitations, and customizable duration for membership. It also integrates with Discord, allowing you to invite users to your Discord server. The app is customizable, allowing you to add any custom HTML as needed.",instructions:"The timezone format should be Continent/City",changeLog:[{date:"2023-03-1",description:"first release"},{date:"2023-03-22",description:"Update to v2.1.3"},{date:"2025-03-03",description:"Version bumped to 4.2.0"},{date:"2025-07-28",description:"Update to v.2025.7.7"},{date:"2026-02-24",description:"Version bumped to v2026.2.0"}],links:[{label:"Documentation",url:"https://docs.wizarr.dev"},{label:"Github",url:"https://github.com/Wizarrrr/wizarr"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wizarr"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/wizarrrr/wizarr:v2026.2.0"},timezone:{type:"string",title:"Timezone",description:"The timezone format should be Continent/City"}}},benefits:[{title:"Automatic User Invitation",description:"Easily invite users to your media server by sharing a unique link. They will be automatically invited and guided to download the client software."},{title:"Secured Invitation Environment",description:"Ensure the security of your media server by using a secured invitation system."},{title:"Plug and Play SSO Support",description:"Integrate single-sign-on (SSO) functionality with ease to provide a seamless user experience."},{title:"Multi-tiered Invitations",description:"Create different invitation tiers with varying durations for membership."},{title:"Guide User on Downloading Plex Client",description:"Help users easily download the Plex client software by providing step-by-step instructions."},{title:"Requests Integration",description:"Guide users on how to request movies using popular request software like Jellyseerr, Overseerr, and Ombi."},{title:"Discord Server Integration",description:"Invite users to your Discord server for community interaction and support."},{title:"Customizable",description:"Add custom HTML to personalize the user experience and match your branding."}],features:[{title:"Automatic Invitation",description:"Automatically invite users to your media server by sharing a unique link."},{title:"Secured Invitation Environment",description:"Ensure the security of your media server with a secured invitation system."},{title:"Plug and Play SSO Support",description:"Integrate single-sign-on (SSO) functionality with ease."},{title:"Multi-tiered Invitations",description:"Create different invitation tiers with varying durations for membership."},{title:"Guide User on Downloading Plex Client",description:"Provide step-by-step instructions to help users download the Plex client software."},{title:"Requests Integration",description:"Guide users on how to request movies using popular request software."},{title:"Discord Server Integration",description:"Invite users to your Discord server for community interaction and support."},{title:"Customizable",description:"Add custom HTML to personalize the user experience."}],tags:["Media","Documentation"],logo:"logo.png",screenshots:["screenshot1.png","screenshot2.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["APP_URL=https://$(PRIMARY_DOMAIN)","TZ=utc","DISABLE_BUILTIN_AUTH=false"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5690}],mounts:[{type:"volume",name:"data",mountPath:"/data/database"}]}}),{services:t}}},{slug:"woodpeckerci",meta:{name:"WoodPecker CI",description:"WoodPecker CI is a modern, open-source continuous integration (CI) and delivery tool designed for developers who value simplicity, flexibility, and scalability. It integrates seamlessly with GitHub, allowing teams to automate testing, build, and deployment workflows efficiently. WoodPecker CI is lightweight, easy to deploy, and supports a wide range of programming languages and platforms. With its agent-based architecture, it provides high customizability and performance, making it ideal for both small projects and large-scale software development pipelines.",instructions:null,changeLog:[{date:"2025-01-27",description:"First Release"},{date:"2025-07-25",description:"Version bumped to v3.8.0"},{date:"2026-02-24",description:"Version bumped to v3.13.0"}],links:[{label:"Github",url:"https://github.com/woodpecker-ci/woodpecker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","agentServiceImage","githubClient","githubSecret"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"woodpecker-ci"},appServiceImage:{type:"string",title:"App Service Image",default:"woodpeckerci/woodpecker-server:v3.13.0"},agentServiceImage:{type:"string",title:"Agent Service Image",default:"woodpeckerci/woodpecker-agent:v3.13.0"},githubClient:{type:"string",title:"GitHub Client ID"},githubSecret:{type:"string",title:"GitHub Client Secret"}}},benefits:[{title:"Seamless GitHub Integration",description:"WoodPecker CI integrates natively with GitHub to streamline your development workflows, automating builds, tests, and deployments."},{title:"Lightweight and Efficient",description:"With its lightweight design, WoodPecker CI is easy to deploy and manage, consuming minimal system resources."},{title:"Open-Source and Transparent",description:"Being open-source, WoodPecker CI allows developers to fully customize their CI/CD pipelines and ensures transparency."}],features:[{title:"Flexible CI/CD Pipelines",description:"WoodPecker CI offers customizable pipelines to fit the needs of any project, supporting diverse languages and platforms."},{title:"Agent-Based Architecture",description:"Its agent-based system ensures better resource management and scalability, allowing distributed builds."},{title:"Easy Deployment",description:"WoodPecker CI can be deployed quickly on various environments, including local machines, cloud platforms, and Kubernetes clusters."}],tags:["CI/CD","Open-Source","DevOps"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["WOODPECKER_OPEN=true","WOODPECKER_HOST=https://$(PRIMARY_DOMAIN)","WOODPECKER_GITHUB=true","WOODPECKER_GITHUB_CLIENT=".concat(e.githubClient),"WOODPECKER_GITHUB_SECRET=".concat(e.githubSecret),"WOODPECKER_AGENT_SECRET=".concat(a)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"woodpecker-server-data",mountPath:"/var/lib/woodpecker/"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-agent"),env:["WOODPECKER_SERVER=$(PROJECT_NAME)_".concat(e.appServiceName,":9000"),"WOODPECKER_AGENT_SECRET=".concat(a)].join("\n"),source:{type:"image",image:e.agentServiceImage},mounts:[{type:"volume",name:"woodpecker-agent-config",mountPath:"/etc/woodpecker"},{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"word-mastermind",meta:{name:"Word Mastermind",description:"Word Mastermind is a word-guessing game inspired by the classic Mastermind puzzle and games like Wordle. Players attempt to guess a hidden word within a limited number of attempts, receiving feedback after each guess to help narrow down the solution. This containerized version provides a clean web interface that allows you to host your own instance of the game for personal use, educational purposes, or family entertainment.",instructions:null,changeLog:[{date:"2025-04-22",description:"first release"}],links:[{label:"GitHub",url:"https://github.com/clupasq/word-mastermind"},{label:"Container",url:"https://github.com/clupasq/word-mastermind/pkgs/container/word-mastermind"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"word-mastermind"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/clupasq/word-mastermind:latest"}}},benefits:[{title:"Educational Gaming",description:"Improve vocabulary and logical reasoning skills through an engaging word-guessing game suitable for players of all ages."},{title:"Self-Hosted Entertainment",description:"Host your own instance of the game to enjoy with friends and family without relying on third-party services or dealing with advertisements."},{title:"Lightweight Application",description:"The game requires minimal server resources while providing a responsive and enjoyable gaming experience."}],features:[{title:"Word Guessing Challenge",description:"Test your vocabulary and deduction skills by guessing hidden words with helpful feedback after each attempt."},{title:"Clean Web Interface",description:"Enjoy the game through a simple, intuitive browser interface that works across desktop and mobile devices."},{title:"Customization Options",description:"Self-hosting allows for potential customization of game rules, word lists, and difficulty levels."},{title:"Unlimited Play",description:"Play as many games as you want without limitations, subscriptions, or hidden costs."},{title:"Private Gaming",description:"Keep your gaming activity private by hosting the application on your own infrastructure."}],tags:["Gaming","Word Games","Educational","Browser Game","Puzzle"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),{services:t}}},{slug:"wordpress",meta:{name:"Wordpress",description:"WordPress is an open-source platform that empowers you to create a unique online space for your business, interests, or any other purpose. It offers a real-time, intuitive editing experience, allowing you to see exactly how your site will look as you add, edit, and rearrange your content. With flexible design tools and powerful features, you can create any kind of custom site. You can start with a blank canvas or choose from a wide variety of themes and patterns, customizing every detail from color and fonts to layouts and functionality. WordPress also offers over 55,000 plugins to extend your site's capabilities, whether you need to add a store, mailing list, portfolio, social feed, analytics, or anything else. Your content, design, and data always belong to you, and WordPress is committed to keeping your site as stable and secure as possible. Whether you're a global creative agency, a local business, or a personal blogger, WordPress offers endless possibilities for your online presence.",instructions:null,changeLog:[{date:"2022-07-12",description:"first release"}],links:[{label:"Website",url:"https://wordpress.org/"},{label:"Documentation",url:"https://learn.wordpress.org"},{label:"Github",url:"https://github.com/WordPress/WordPress"}],contributors:[{name:"Andrei Canta",url:"https://github.com/deiucanta"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseType","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wordpress"},appServiceImage:{type:"string",title:"App Service Image",default:"wordpress:latest"},databaseType:{type:"string",title:"Database Type",default:"mariadb",oneOf:[{enum:["mariadb"],title:"MariaDB"},{enum:["mysql"],title:"MySQL"}]},databaseServiceName:{type:"string",title:"Database Service Name",default:"wordpress-db"}}},benefits:[{title:"Flexibility",description:"Create any kind of custom site with intuitive editing, flexible design tools, and powerful features to manage it all."},{title:"Customization",description:"Design anything you imagine. Start with a blank canvas or choose from a wide variety of themes and patterns. Customize every detail, from color and fonts to layouts and functionality."},{title:"Extensibility",description:"Make WordPress do whatever you need it to. Add a store, mailing list, portfolio, social feed, analytics; you\u2019re in control with over 55,000 plugins."},{title:"Ownership",description:"Your content, your design, and your data always belong to you. With WordPress you\u2019re free to tell your story, grow your brand, or simply be yourself."},{title:"Stability and Security",description:"Built by an open source community with decades of experience, its passionate contributors are committed to keeping WordPress as stable and secure as possible."}],features:[],tags:["CMS","Website Builder","Blogging"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["WORDPRESS_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"WORDPRESS_DB_USER=".concat(e.databaseType),"WORDPRESS_DB_PASSWORD=".concat(a),"WORDPRESS_DB_NAME=$(PROJECT_NAME)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"data",mountPath:"/var/www/html"},{type:"file",content:["upload_max_filesize = 100M","post_max_size = 100M",""].join("\n"),mountPath:"/usr/local/etc/php/conf.d/custom.ini"}]}}),t.push({type:e.databaseType,data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"wp-autoflow",meta:{name:"WP AutoFlow",description:"WP AutoFlow is the ultimate self-hosted orchestrator for WordPress automation. It allows you to scrape content from any website, rewrite it using advanced AI (GPT-5, o3-mini), handle media with custom watermarking, and publish directly to multiple WordPress sites. Built for performance, it uses Redis and BullMQ to handle heavy workloads asynchronously without slowing down your server.",instructions:"After installation, click on the URL that's using the port 3000 internally for the container. Once the browser opens the web page, create an account.",changeLog:[{date:"2026-04-22",description:"First Release"}],links:[{label:"Website",url:"https://wpautoflow.com"},{label:"Documentation",url:"https://docs.wpautoflow.com"},{label:"Github",url:"https://github.com/wp-autoflow/wp-autoflow"}],contributors:[{name:"Fabio Selau",url:"https://github.com/fabioselau077"}],schema:{type:"object",required:["appServiceName","appServiceImage","openaiApiKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wp-autoflow"},appServiceImage:{type:"string",title:"App Service Image",default:"fabioselau/wp-autoflow:v1.0.0"},openaiApiKey:{type:"string",title:"OpenAI API Key",description:"Your secret key for AI rewriting (GPT-5/o3-mini)"}}},benefits:[{title:"AI-Powered Content Creation",description:"Automatically transform scraped data into high-quality, SEO-optimized articles using the latest LLMs while preserving HTML structure."},{title:"Mass WordPress Management",description:"Connect and manage multiple WordPress instances via REST API. Publish, update, and index posts in bulk from a single dashboard."},{title:"Efficient Task Queuing",description:"Built on Node.js and Redis, it handles thousands of tasks in the background ensuring your main application stays snappy and responsive."}],features:[{title:"Advanced Web Scraper",description:"Supports custom selectors, residential proxies, and Scrape.do integration to fetch content from even the most protected websites."},{title:"Smart Media Processing",description:"Automatic image downloading, resizing, and watermarking before uploading to the WordPress Media Library."},{title:"Instant SEO Indexing",description:"Native integration with IndexNow and SpeedyIndex to notify search engines as soon as your content is published."}],tags:["Automation","AI","WordPress","SEO","Scraper"],logo:"logo.svg",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PORT=3000","NODE_ENV=production","JWT_SECRET=".concat(o),"MONGO_URI=mongodb://mongo:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-db:27017/wp-autoflow?authSource=admin"),"REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"REDIS_PORT=6379","REDIS_PASSWORD=".concat(i),"OPENAI_API_KEY=".concat(e.openaiApiKey)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"storage",mountPath:"/app/storage"}]}}),t.push({type:"mongo",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:i}}),{services:t}}},{slug:"wps-office",meta:{name:"WPS Office",description:"WPS Office is a comprehensive office suite that is lightweight yet feature-rich. It offers high compatibility and a range of professional office software tools. With WPS Office, you can edit files in Writer, Presentation, Spreadsheet, and PDF, enhancing your work efficiency. The application can be accessed at your host on ports 3000 and 3001. This container is based on Docker Baseimage KasmVNC, which provides additional environment variables and run configurations to enable or disable specific functionality. The application also supports the docker manifest for multi-platform awareness, ensuring the correct image for your architecture is retrieved.",instructions:"use abc:abc to login. To access the login interface, add ?login=true to your URL.",changeLog:[{date:"2023-5-7",description:"first release"},{date:"2025-07-25",description:"Version bumped to 11.1.0"}],links:[{label:"Documentation",url:"https://docs.linuxserver.io/images/docker-wps-office"},{label:"Github",url:"https://github.com/linuxserver/docker-wps-office"}],contributors:[{name:"Supernova3339",url:"https://github.com/Supernova3339"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"wps-office"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/wps-office:11.1.0"}}},benefits:[{title:"Comprehensive Office Suite",description:"WPS Office is a feature-rich office suite that includes tools for editing files in Writer, Presentation, Spreadsheet, and PDF formats."},{title:"High Compatibility",description:"WPS Office has high compatibility with other office software, allowing you to easily edit and collaborate on files with others."},{title:"Improved Work Efficiency",description:"By using WPS Office, you can enhance your work efficiency by efficiently editing and managing your office documents."}],features:[{title:"Writer",description:"Edit and create documents with advanced formatting and editing tools."},{title:"Presentation",description:"Create and deliver professional presentations with customizable templates and multimedia support."},{title:"Spreadsheet",description:"Manage and analyze data with powerful spreadsheet tools, including formulas, charts, and data manipulation functions."},{title:"PDF",description:"Edit and annotate PDF files, convert files to PDF format, and fill out PDF forms."}],tags:["Productivity","Documents","Office Suite"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},mounts:[{type:"volume",name:"config",mountPath:"/config"}],domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"xbackbone",meta:{name:"xBackbone",description:"xBackbone is a versatile, self-hosted file and image sharing platform designed to manage and share content securely and efficiently. It features a clean and intuitive interface, supports multiple authentication options, and provides advanced file management capabilities. With xBackbone, you can maintain complete control over your shared content, ensuring privacy and flexibility.",instructions:"Configure the Base URL and set up the database connection during installation.",changeLog:[{date:"2024-11-26",description:"Template Release"},{date:"2025-03-03",description:"Version bumped to 3.8.1"}],links:[{label:"Website",url:"https://xbackbone.app/"},{label:"Github",url:"https://github.com/SergiX44/XBackBone"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"xbackbone"},appServiceImage:{type:"string",title:"App Service Image",default:"linuxserver/xbackbone:3.8.1"}}},benefits:[{title:"Secure File Sharing",description:"xBackbone ensures your files and images are shared securely, maintaining full control over your data."},{title:"Self-Hosted Solution",description:"Stay in control of your content with a self-hosted platform that ensures privacy and flexibility."},{title:"Custom Branding",description:"Personalize the interface and share links with your own branding for a professional touch."}],features:[{title:"File Management",description:"Organize your uploads with an intuitive dashboard and detailed file properties."},{title:"Authentication Options",description:"Choose from multiple authentication methods, including LDAP, OAuth, and local accounts."},{title:"Customizable Sharing",description:"Share files and images with personalized links and permissions."},{title:"Analytics Dashboard",description:"Access insights into file access and sharing statistics."}],tags:["File Sharing","Self-Hosted","Privacy","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["PUID=1000","PGID=1000","TZ=Etc/UTC"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/",port:80}],mounts:[{type:"volume",name:"config",mountPath:"/config"}]}}),t.push({type:"mysql",data:{serviceName:"".concat(e.appServiceName,"-mysql"),password:a}}),{services:t}}},{slug:"xwiki",meta:{name:"Xwiki",description:"XWiki is a powerful, open source enterprise wiki platform designed for collaboration and content management. It offers extensive features to create, manage, and share knowledge effectively.",instructions:null,changeLog:[{date:"2025-03-12",description:"First Release"},{date:"2025-07-25",description:"Version bumped to 17.4.2-mysql-tomcat"},{date:"2025-10-30",description:"Updated to use PostgreSQL with stable-postgres-tomcat image"},{date:"2026-02-24",description:"Version bumped to 18.1.0-postgres-tomcat"},{date:"2026-05-07",description:"Version bumped to 18.2.1-postgres-tomcat"}],links:[{label:"Github",url:"https://github.com/xwiki/xwiki-platform"}],contributors:[{name:"Ahson Shaikh",url:"https://www.github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"xwiki"},appServiceImage:{type:"string",title:"App Service Image",default:"xwiki:18.2.1-postgres-tomcat",description:"XWiki Docker image with PostgreSQL support"},databaseServiceImage:{type:"string",title:"Database Service Image",default:"postgres:17",description:"PostgreSQL Docker image"}}},benefits:[{title:"Collaborative Editing",description:"XWiki offers robust collaborative editing features for real-time teamwork."},{title:"Enterprise Integration",description:"XWiki seamlessly integrates with various enterprise systems for flexible workflows."},{title:"Open Source Community",description:"Built on an open source platform, XWiki benefits from a vibrant community and continuous innovation."}],features:[{title:"Wiki Engine",description:"Provides a powerful wiki engine for creating and managing content."},{title:"WYSIWYG Editor",description:"Enables easy content editing with a user-friendly interface."},{title:"Extensible Architecture",description:"Supports customization and extension to fit diverse organizational needs."},{title:"Collaborative Tools",description:"Includes tools for discussion, version control, and collaborative work."}],tags:["Wiki","Collaboration","Documentation","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DB_USER=postgres","DB_PASSWORD=".concat(a),"DB_DATABASE=$(PROJECT_NAME)","DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db")].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],mounts:[{type:"volume",name:"xwiki",mountPath:"/usr/local/xwiki"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-db"),source:{type:"image",image:e.databaseServiceImage},env:["POSTGRES_ROOT_PASSWORD=".concat(a),"POSTGRES_PASSWORD=".concat(a),"POSTGRES_USER=postgres","POSTGRES_DB=$(PROJECT_NAME)","POSTGRES_INITDB_ARGS=--encoding=UTF8 --locale-provider=builtin --locale=C.UTF-8"].join("\n"),mounts:[{type:"volume",name:"xwiki-db",mountPath:"/var/lib/postgresql/data"}]}}),{services:t}}},{slug:"yacht",meta:{name:"yacht",description:"Yacht is a self-hosted web-based container management tool designed to provide a user-friendly and intuitive interface for managing Docker containers. It simplifies container deployment, monitoring, and management, making it accessible for both beginners and advanced users. Yacht supports multiple container engines and integrates with Docker Compose, allowing users to easily create, update, and manage their containerized applications.",instructions:"Login using credentials [email protected]/pass",changeLog:[{date:"2025-03-07",description:"First Release"},{date:"2026-05-07",description:"Version bumped to v0.0.7-alpha-2023-01-12--05"}],links:[{label:"Website",url:"https://yacht.sh/"},{label:"Github",url:"https://github.com/SelfhostedPro/Yacht"}],contributors:[{name:"Ahson-Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"yacht"},appServiceImage:{type:"string",title:"App Service Image",default:"selfhostedpro/yacht:v0.0.7-alpha-2023-01-12--05"}}},benefits:[{title:"Intuitive Container Management",description:"Yacht provides a sleek and modern UI for managing Docker containers. It simplifies container creation, management, and monitoring, making it easier to control your self-hosted applications."},{title:"Seamless Docker Integration",description:"Yacht integrates directly with Docker and Docker Compose, enabling users to manage their containerized applications with minimal setup. It offers an easy way to deploy, start, stop, and remove containers."},{title:"User-Friendly Dashboard",description:"The Yacht dashboard provides an overview of your running containers, allowing you to monitor CPU and memory usage, view logs, and restart containers with a single click."}],features:[{title:"Multi-Container Management",description:"Yacht supports managing multiple containers, allowing you to easily start, stop, and update applications in a single interface."},{title:"Template System",description:"Yacht includes a template system that simplifies the deployment of pre-configured applications, making it easier to deploy and maintain commonly used services."},{title:"Docker Compose Support",description:"Yacht allows you to deploy and manage applications using Docker Compose, enabling more complex container setups with minimal effort."},{title:"Container Logs and Stats",description:"Yacht provides real-time monitoring of container performance, allowing you to track logs, resource usage, and identify potential issues."},{title:"Role-Based Access Control",description:"Yacht supports multiple user roles, allowing administrators to restrict access to certain functions and manage permissions efficiently."}],tags:["Docker","Container Management","DevOps","Self-Hosting"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"yacht",mountPath:"/config"},{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"}]}}),{services:t}}},{slug:"yacy",meta:{name:"YaCy",description:"YaCy is a free distributed search engine built on principles of peer-to-peer networks. Unlike traditional search engines that rely on centralized servers, YaCy operates in a decentralized manner where each user can contribute to the search index. It allows you to run your own search portal, create your own web index, and be independent from commercial search engine providers. YaCy is perfect for organizations that need private search capabilities, intranet search solutions, or those who value privacy and freedom in their search experience.",instructions:null,changeLog:[{date:"2025-04-18",description:"first release"},{date:"2026-05-07",description:"Version bumped to sha-f4509ae25923cf99f1b88467d17fc221d5b8d94f-
1alpine"}],links:[{label:"GitHub",url:"https://github.com/yacy/yacy_search_server"},{label:"Website",url:"https://yacy.net/"},{label:"Docker Hub",url:"https://hub.docker.com/r/yacy/yacy_search_server"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"yacy"},appServiceImage:{type:"string",title:"App Service Image",default:"yacy/yacy_search_server:sha-f4509ae25923cf99f1b88467d17fc221d5b8d94f-alpine"}}},benefits:[{title:"Decentralized Search",description:"YaCy operates on a peer-to-peer network model, allowing users to create a distributed search engine independent of commercial providers."},{title:"Privacy-Focused",description:"Search without tracking or profiling. YaCy gives you complete control over your search data and index, ensuring your privacy is maintained."},{title:"Customizable Index",description:"Create and curate your own search index focusing on specific websites, intranets, or content areas that matter to your organization."}],features:[{title:"Self-Hosted Search Engine",description:"Run your own complete web search engine with crawling, indexing, and search capabilities all under your control."},{title:"Intranet Search",description:"Index and search internal documents and websites that aren't accessible to public search engines, ideal for company intranets."},{title:"Web Administration Interface",description:"Configure and monitor your YaCy instance through an intuitive web-based dashboard accessible from any browser."},{title:"Full-Text Indexing",description:"Index the complete content of websites with support for multiple file formats, including HTML, PDF, and other document types."},{title:"Search API",description:"Integrate YaCy search capabilities into your applications using the comprehensive API provided."}],tags:["Search Engine","Decentralized","P2P","Privacy","Indexing","Web Crawler"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8090}],mounts:[{type:"volume",name:"data",mountPath:"/opt/yacy_search_server/DATA"}]}}),{services:t}}},{slug:"yakgpt",meta:{name:"YakGPT",description:"YakGPT is a simple, locally running ChatGPT UI that makes your text generation faster and chatting even more engaging! This hands-free interface provides direct access to OpenAI's GPT models with advanced voice capabilities, including Speech-to-Text via Azure & OpenAI Whisper and Text-to-Speech via Azure & Eleven Labs. Run locally in your browser with no need to install applications, featuring faster performance than the official ChatGPT UI by connecting directly to the API. Perfect for users who want privacy, speed, and voice interaction with their AI assistant.",instructions:null,changeLog:[{date:"2025-07-02",description:"Initial release"}],links:[{label:"GitHub Repository",url:"https://github.com/yakGPT/yakGPT"},{label:"Live Demo",url:"https://yakgpt.vercel.app"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"yakgpt"},appServiceImage:{type:"string",title:"App Service Image",default:"yakgpt/yakgpt:latest"}}},benefits:[{title:"Hands-Free Voice Interaction",description:"Advanced speech-to-text and text-to-speech capabilities for seamless voice conversations with AI."},{title:"Privacy & Data Control",description:"Use your own OpenAI API keys and store all data locally - no external analytics or tracking."},{title:"Faster Than Official UI",description:"Direct API connection provides faster response times compared to the official ChatGPT interface."}],features:[{title:"GPT 3.5 & GPT 4 Support",description:"Full access to OpenAI's latest language models via direct API integration."},{title:"Speech-to-Text Integration",description:"Convert your voice to text using Azure or OpenAI Whisper for hands-free input."},{title:"Text-to-Speech Responses",description:"Have AI responses read aloud using Azure or Eleven Labs text-to-speech."},{title:"Browser-Based Interface",description:"No installation required - runs entirely in your web browser with local storage."},{title:"Microphone Integration",description:"Easy mic integration with browser permissions for seamless voice interaction."},{title:"Local Data Storage",description:"All conversation history stored locally in localStorage with complete privacy control."}],tags:["AI Chat","ChatGPT","OpenAI","Voice Interface","Speech-to-Text","Text-to-Speech","GPT-4","GPT-3.5","Hands-Free","Privacy-Focused","Local Storage","Next.js"],logo:null,screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}]}}),{services:t}}},{slug:"yamtrack",meta:{name:"Yamtrack",description:"Yamtrack is a self-hosted media tracking application designed to help you keep track of your movies, TV shows, books, video games, and other media consumption. It provides a clean, modern interface for logging what you're watching, reading, or playing, along with ratings, reviews, and personal notes. Yamtrack features automatic metadata fetching from popular databases, progress tracking, viewing statistics, and customizable lists. The application supports multiple media types and offers detailed analytics about your consumption habits. Built with a focus on privacy and simplicity, Yamtrack keeps all your tracking data under your control. Perfect for media enthusiasts who want to maintain a comprehensive log of their entertainment without relying on third-party services.",instructions:"Default credentials are admin/admin123.",changeLog:[{date:"2025-11-17",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to 0.25.0"},{date:"2026-05-07",description:"Version bumped to 0.25.2"}],links:[{label:"Github",url:"https://github.com/FuzzyGrim/Yamtrack"},{label:"Documentation",url:"https://github.com/FuzzyGrim/Yamtrack/wiki"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"yamtrack"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/fuzzygrim/yamtrack:0.25.2"},timezone:{type:"string",title:"Timezone",default:"Europe/Berlin"}}},benefits:[{title:"Comprehensive Media Tracking",description:"Track movies, TV shows, books, video games, and more in one unified platform. Keep detailed logs of everything you consume with ratings and reviews."},{title:"Privacy-Focused",description:"Your tracking data stays on your server. No third-party services, no data mining, and complete control over your entertainment history."},{title:"Statistics & Analytics",description:"Gain insights into your media consumption habits with detailed statistics, charts, and analytics about what you watch, read, and play."}],features:[{title:"Multi-Media Support",description:"Track various types of media including movies, TV shows, books, video games, and more, all from a single interface."},{title:"Automatic Metadata",description:"Automatically fetch metadata, posters, descriptions, and information from popular databases to enrich your tracking logs."},{title:"Progress Tracking",description:"Monitor your progress through TV series, book series, and multi-part content with automatic progress calculation."},{title:"Ratings & Reviews",description:"Rate and review everything you consume. Add personal notes, thoughts, and detailed reviews to your tracked items."},{title:"Custom Lists",description:"Create custom lists and collections to organize your media. Build watchlists, reading lists, and curated collections."},{title:"Viewing Statistics",description:"View detailed statistics about your consumption patterns, favorite genres, time spent, and completion rates."}],tags:["Media Tracker","Movies","TV Shows","Books","Gaming","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["TZ=".concat(e.timezone||"Europe/Berlin"),"SECRET=".concat(i),"REDIS_URL=redis://:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-redis:6379"),"URLS=https://$(PRIMARY_DOMAIN)"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"db",mountPath:"/yamtrack/db"}]}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:a,image:"redis:7-alpine"}}),{services:t}}},{slug:"yao",meta:{name:"YAO",description:"YAO is a powerful open-source app engine designed to create web services and applications in a matter of minutes. It is versatile and suitable for a variety of use-cases including AI, IoT, Industrial Internet, Connected Vehicles, DevOps, Energy, and Finance. With YAO, you can create a database model, write an interface, and describe the interface using JSON, making it a truly codeless programming experience. It supports running on ARM devices and can be used in IoT, edge computing, and industrial internet. YAO also offers easy-to-use Business Intelligence components and functions, empowering businesses with more possibilities. It has many built-in processes and supports data processing in any form through data flow. The app also features a plug-in mechanism based on GRPC for function expansion using Nodejs, Python, and other languages. YAO also provides a built-in query engine and offers enterprise-level security with permission classification, separation of administrator and employee accounts, and API level permission control.",instructions:"Use [email protected]:A123456p+ to login at /xiang/login/admin . Use amd64 instead of arm64 if you use a non ARM based system.",changeLog:[{date:"2023-3-14",description:"first release"},{date:"2025-03-03",description:"Version bumped to 0.10.4-rc.1"}],links:[{label:"Website",url:"https://yaoapps.com/"},{label:"Documentation",url:"https://yaoapps.com/en-US/doc/"},{label:"Github",url:"https://github.com/YaoApp/yao"}],contributors:[{name:"Supernova3339",url:"https://github.com/supernova3339"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"yao"},appServiceImage:{type:"string",title:"App Service Image",default:"yaoapp/yao:0.10.4-rc.1"},databaseServiceName:{type:"string",title:"Database Service Name",default:"yao-db"}}},benefits:[{title:"Efficiency",description:"YAO is designed to accelerate development and improve efficiency for developers."},{title:"No Code",description:"YAO allows you to create database models, write interfaces, and describe interfaces using JSON, making it a codeless programming experience."},{title:"IoT Support",description:"YAO can run on ARM devices and is suitable for IoT, edge computing, and industrial Internet applications."},{title:"Business Intelligence",description:"YAO provides easy-to-use BI components and functions, empowering businesses with more possibilities."},{title:"Process Automation",description:"YAO has built-in processes and supports creating custom processes using data flow, JavaScript, and GRPC plugins."},{title:"Data Processing",description:"YAO allows developers to process data in any form using data flow and JavaScript."},{title:"Plugin System",description:"YAO supports function expansion using plugins based on GRPC, allowing developers to extend its capabilities using Node.js, Python, and other languages."},{title:"Dashboard Creation",description:"YAO enables the creation of various CRM, ERP, and other enterprise internal systems by writing JSON descriptions for interface layouts."},{title:"File System Routing",description:"YAO automatically converts files in the APIs folder into callable interfaces, making it easier to manage large-scale projects."},{title:"Powerful Query Engine",description:"YAO has a built-in query engine comparable to Elasticsearch, allowing for simple and easy-to-use JSON queries."},{title:"High Performance",description:"YAO offers superior performance compared to Java and PHP, and it is distributed and can be deployed with a single command."},{title:"Enterprise Security",description:"YAO provides permission classification, separation of administrator and employee accounts, and API-level permission control for enhanced enterprise security."},{title:"Natural Distribution",description:"YAO generates binary files for various platforms, making it convenient for users who need to deploy to the cloud."},{title:"Model Driven",description:"YAO allows you to create a database model through DSL with zero configuration and dependencies, making it ready to use."}],features:[{title:"Framework",description:"YAO is built on a high-performance and easily expandable technical architecture."},{title:"API Engine",description:"YAO provides an API engine for creating and managing web service APIs."},{title:"Workflow Engine",description:"YAO includes a workflow engine for managing and automating business processes."},{title:"Interface Engine",description:"YAO offers an interface engine for creating and managing user interfaces."},{title:"CLI",description:"YAO provides a command-line interface (CLI) for easy management and configuration."},{title:"Data Flow Engine",description:"YAO allows data processing and transformation through a data flow engine."},{title:"Model Engine",description:"YAO includes a model engine for creating and managing database models."},{title:"Process Engine",description:"YAO provides a process engine for creating and managing business processes."},{title:"Query Engine",description:"YAO has a powerful query engine for querying and retrieving data."},{title:"Plugin System",description:"YAO supports a plugin system for extending its functionality using Node.js, Python, and other languages."},{title:"Table Form",description:"YAO offers table and form components for creating and managing data tables and forms."},{title:"Chart",description:"YAO provides chart components for visualizing data in various chart types."},{title:"Kanban",description:"YAO includes a Kanban component for managing tasks and workflows."},{title:"Screen",description:"YAO offers a screen component for creating and managing custom screens."}
1,{title:"iframe",description:"YAO allows embedding external content using the iframe component."}],tags:["No-Code","Developer Tools","Business Apps","IoT","Data Science","ERP","CRM"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(64),o=y(128);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["YAO_ENV=production","YAO_ROOT=/data/app","YAO_HOST=127.0.0.1","YAO_PORT=5099","YAO_LOG=/data/app/logs/application.log","YAO_LOG_MODE=TEXT","YAO_JWT_SECRET=".concat(i),"YAO_DB_DRIVER=mysql","YAO_DB_PRIMARY=mysql://mysql:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":3306/$(PROJECT_NAME)?charset=utf8mb4&parseTime=True&loc=Local"),"YAO_DB_AESKEY=".concat(o)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:5099}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"yourls",meta:{name:"YOURLS",description:"YOURLS (Your Own URL Shortener) is a powerful, self-hosted service designed for creating and managing short URLs. It provides a clean and simple interface, supports plugins for extended functionality, and offers detailed link tracking analytics. With YOURLS, you can maintain control over your short links and branding. The application is accessible via your host on ports 8080 and 8081. This container is based on Docker Baseimage KasmVNC, providing additional environment variables and configurations for enhanced flexibility. It also supports the docker manifest for multi-platform awareness, ensuring the correct image for your architecture.",instructions:"Use admin:admin123 to login.",changeLog:[{date:"2024-10-17",description:"Template Release"},{date:"2025-03-03",description:"Version bumped to 1.9.2"},{date:"2025-07-25",description:"Version bumped to 1.10.1"},{date:"2026-06-07",description:"Version bumped to 1.10.3"}],links:[{label:"Documentation",url:"https://yourls.org/#Guide"},{label:"Github",url:"https://github.com/YOURLS/YOURLS"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"yourls"},appServiceImage:{type:"string",title:"App Service Image",default:"yourls:1.10.3"},databaseServiceName:{type:"string",title:"Database Service Name",default:"yourls-db"}}},benefits:[{title:"Simple URL Management",description:"YOURLS allows you to create, manage, and track short URLs easily through its web interface or API."},{title:"Self-Hosted Solution",description:"Stay in control of your links with a self-hosted service, ensuring privacy and flexibility."},{title:"Custom Branding",description:"Customize your short links with your own domain to enhance branding and credibility."}],features:[{title:"API Access",description:"Integrate YOURLS with other tools using its flexible API for programmatic access."},{title:"Plugins Support",description:"Extend YOURLS functionality with various community-built plugins."},{title:"Analytics Dashboard",description:"Get detailed insights into clicks, referrers, and geographical data."},{title:"Custom Links",description:"Create personalized short links with custom slugs for better memorability."}],tags:["URL Shortener","Self-Hosted","Analytics"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["YOURLS_DB_HOST=$(PROJECT_NAME)_".concat(e.databaseServiceName),"YOURLS_DB_NAME=$(PROJECT_NAME)","YOURLS_DB_USER=mysql","YOURLS_DB_PASS=".concat(a),"YOURLS_SITE=https://$(PRIMARY_DOMAIN)","YOURLS_USER=admin","YOURLS_PASS=admin123"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",path:"/admin",port:80},{host:"$(EASYPANEL_DOMAIN)",port:80}]}}),t.push({type:"mysql",data:{serviceName:e.databaseServiceName,password:a}}),{services:t}}},{slug:"zabbix",meta:{name:"Zabbix",description:"Zabbix is a powerful, self-hosted monitoring solution designed for tracking and analyzing system performance, network utilization, and application health. It provides real-time monitoring, customizable alerts, and detailed visualization tools to help administrators maintain system reliability. Zabbix supports agent-based and agentless monitoring, automation capabilities, and integration with third-party tools. With its flexible architecture, Zabbix is suitable for small to enterprise-level environments. The application includes a web-based dashboard and supports a variety of database backends, making it a robust solution for IT infrastructure monitoring.",instructions:"Use the default credentials (Admin/zabbix) to log in.",changeLog:[{date:"2025-02-27",description:"Template Release"}],links:[{label:"Documentation",url:"https://www.zabbix.com/documentation"},{label:"Github",url:"https://github.com/zabbix/zabbix-docker"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","zabbixServerServiceImage","zabbixAgentServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"zabbix"},appServiceImage:{type:"string",title:"App Service Image",default:"zabbix/zabbix-web-nginx-pgsql:alpine-trunk"},zabbixServerServiceImage:{type:"string",title:"Zabbix Server Service Image",default:"zabbix/zabbix-server-pgsql:alpine-trunk"},zabbixAgentServiceImage:{type:"string",title:"Zabbix Agent Service Image",default:"zabbix/zabbix-agent:alpine-trunk"}}},benefits:[{title:"Comprehensive Monitoring",description:"Zabbix provides real-time monitoring for servers, network devices, applications, and cloud environments, ensuring full visibility into system performance."},{title:"Automation & Alerting",description:"Zabbix includes automated alerting and remediation actions based on defined triggers, reducing downtime and improving system stability."},{title:"Scalable & Flexible",description:"Suitable for both small and large-scale enterprises, Zabbix supports distributed monitoring and high availability deployments."}],features:[{title:"Agent-Based & Agentless Monitoring",description:"Zabbix supports monitoring through both agent-based methods and SNMP, IPMI, JMX, and other agentless protocols."},{title:"Customizable Dashboards",description:"Zabbix offers advanced visualization tools, including interactive graphs, reports, and real-time monitoring dashboards."},{title:"Built-In Notification System",description:"Get alerts via email, SMS, or integrations with messaging platforms when critical issues are detected."},{title:"API Integration",description:"Extend Zabbix functionality with its powerful API for automating monitoring tasks and integrating with third-party tools."}],tags:["Monitoring","Network Management","IT Infrastructure"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=["DB_SERVER_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"POSTGRES_USER=postgres","POSTGRES_PASSWORD=".concat(a),"POSTGRES_DB=$(PROJECT_NAME)"].join("\n");return t.push({type:"app",data:{serviceName:e.appServiceName,env:[i,"ZBX_SERVER_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-server"),"PHP_TZ=Europe/London"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-server"),env:[i].join("\n"),source:{type:"image",image:e.zabbixServerServiceImage},mounts:[{type:"volume",name:"zabbix",mountPath:"/var/lib/zabbix"},{type:"volume",name:"snmptraps",mountPath:"/var/lib/zabbix/snmptraps"},{type:"volume",name:"export",mountPath:"/var/lib/zabbix/export"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-agent"),env:["ZBX_HOSTNAME=$(PROJECT_NAME)_".concat(e.appServiceName,"-server"),"ZBX_SERVER_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-server"),"ZBX_SERVER_PORT=10051","ZBX_SERVER_ACTIVE=$(PROJECT_NAME)_".concat(e.appServiceName,"-server")].join("\n"),source:{type:"image",image:e.zabbixAgentServiceImage},mounts:[{type:"volume",name:"zabbix",mountPath:"/usr/share/zabbix"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a}}),{services:t}}},{slug:"zep",meta:{name:"Zep",description:"Zep is a powerful, self-hosted AI platform designed for seamless integration with large language models. It provides a clean and intuitive interface, supports plugins for extended functionality, and offers detailed analytics to monitor and optimize your AI workflows. With Zep, you maintain full control over your deployments and configurations. The application is accessible via your host on designated ports, ensuring secure and scalable operations. This container is based on Docker Baseimage KasmVNC, providing additional environment variables and configurations for enhanced flexibility. It also supports the docker manifest for multi-platform awareness, ensuring the correct image for your architecture.",instructions:"Zep Community Edition can be used with any LLM provider that implements the OpenAI API.",changeLog:[{date:"2025-03-04",description:"Template Release (v1.0)"}],links:[{label:"Documentation",url:"https://www.getzep.com/"},{label:"Github",url:"https://github.com/getzep/zep"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","openai_api_key","openai_base_url","openai_model_name","graphitiServiceImage","neo4jServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"zep"},appServiceImage:{type:"string",title:"App Service Image",default:"zepai/zep:1.0"},graphitiServiceImage:{type:"string",title:"Graphiti Service Image",default:"zepai/graphiti:0.3"},neo4jServiceImage:{type:"string",title:"Neo4j Service Image",default:"neo4j:5.22.0"},openai_api_key:{type:"string",title:"OpenAI API Key"},openai_base_url:{type:"string",title:"OpenAI Base URL",default:"https://api.openai.com/v1/"},openai_model_name:{type:"string",title:"OpenAI Model Name",default:"gpt-4o-mini"}}},benefits:[{title:"Seamless AI Integration",description:"Zep offers a user-friendly interface for managing and interacting with large language models, enabling smooth integration with popular LLM providers."},{title:"Self-Hosted Platform",description:"Retain full control over your AI operations with a self-hosted platform designed for scalability and security."},{title:"Custom Configurations",description:"Tailor your deployment with a wide range of configuration options to meet your specific needs."}],features:[{title:"API Integration",description:"Seamlessly connect Zep with external tools using its robust API for flexible interaction."},{title:"Extensible Architecture",description:"Enhance platform functionality with support for community-built plugins and modules."},{title:"Real-time Analytics",description:"Monitor performance and usage through an integrated analytics dashboard that offers detailed insights."},{title:"Flexible Workflows",description:"Design custom AI workflows to optimize processes and adapt to your business requirements."}],tags:["AI","Self-Hosted","API","Automation"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ZEP_CONFIG_FILE=zep.yaml","ZEP_POSTGRES_PASSWORD=".concat(a),"ZEP_POSTGRES_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"ZEP_POSTGRES_DATABASE=$(PROJECT_NAME)","ZEP_GRAPHITI_HOST=http://$(PROJECT_NAME)_".concat(e.appServiceName,"-graphiti:8003"),"ZEP_API_SECRET=".concat(i)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"file",content:'log:\n  # debug, info, warn, error, panic, dpanic, or fatal. Default = info\n  level: info\n  # How should logs be formatted? Setting to "console" will print human readable logs\n  # whie "json" will print structured JSON logs. Default is "json".\n  format: json\nhttp:\n  # Host to bind to. Default is 0.0.0.0\n  host: 0.0.0.0\n  # Port to bind to. Default is 8000\n  port: 8000\n  max_request_size: 5242880\npostgres:\n  user: postgres\n  password: {{ Env "ZEP_POSTGRES_PASSWORD" }}\n  host: {{ Env "ZEP_POSTGRES_HOST" }}\n  port: 5432\n  database: {{ Env "ZEP_POSTGRES_DATABASE" }}\n  schema_name: public\n  read_timeout: 30\n  write_timeout: 30\n  max_open_connections: 10\n# Carbon is a package used for dealing with time - github.com/golang-module/carbon\n# It is primarily used for generating humand readable relative time strings like "2 hours ago".\n# See the list of supported languages here https://github.com/golang-module/carbon?tab=readme-ov-file#i18n\ncarbon:\n  locale: en\ngraphiti:\n   # Base url to the graphiti service\n   #service_url: http://graphiti:8003\n  service_url: {{ Env "ZEP_GRAPHITI_HOST" }}\n# In order to authenicate API requests to the Zep service, a secret must be provided.\n# This secret should be kept secret between the Zep service and the client. It can be any string value.\n# When making requests to the Zep service, include the secret in the Authorization header.\napi_secret: {{ Env "ZEP_API_SECRET" }}\n# In order to better understand how Zep is used, we can collect telemetry data.\n# This is optional and can be disabled by setting disabled to true.\n# We do not collect any PII or any of your data. We only collect anonymized data\n# about how Zep is used.\ntelemetry:\n  disabled: false\n  # Please provide an identifying name for your organization so can get a better understanding\n  # about who is using Zep. This is optional.\n  organization_name:\n  ',mountPath:"/app/zep.yaml"}]}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-graphiti"),env:["OPENAI_API_KEY=".concat(e.openai_api_key),"OPENAI_BASE_URL=".concat(e.openai_base_url),"MODEL_NAME=".concat(e.openai_model_name),"NEO4J_URI=bolt://$(PROJECT_NAME)_".concat(e.appServiceName,"-neo4j:7687"),"NEO4J_USER=neo4j","NEO4J_PASSWORD=zepzepzep","PORT=8003"].join("\n"),source:{type:"image",image:e.graphitiServiceImage}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-neo4j"),env:["NEO4J_AUTH=neo4j/zepzepzep"].join("\n"),source:{type:"image",image:e.neo4jServiceImage}}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),password:a,image:"ankane/pgvector:v0.5.1"}}),{services:t}}},{slug:"zerobyte",meta:{name:"Zerobyte",description:"Zerobyte is a self-hosted backup and restore management solution that provides a unified web interface for managing your backup repositories across multiple storage backends. It supports various cloud storage providers including S3-compatible storage, Google Cloud Storage, Azure Blob Storage, and local directories through rclone integration. With its intuitive web interface, you can configure backup sources, manage multiple repositories, schedule backups, and perform restores with ease. The application leverages FUSE filesystem capabilities to mount and interact with cloud storage as if it were local storage, enabling seamless backup and restore operations. Zerobyte features automatic backup scheduling, support for multiple storage backends, encrypted backup repositories, incremental backups for efficient storage usage, and comprehensive restore capabilities. The web-based dashboard allows you to monitor backup status, view repository statistics, and manage your backup configurations without command-line tools. Perfect for home lab enthusiasts who need reliable backup solutions, system administrators managing multiple backup repositories, organizations requiring self-hosted backup infrastru
1cture, or anyone who wants to maintain control over their backup data with support for various cloud providers and local storage options.",instructions:"Zerobyte requires access to the /dev/fuse device for FUSE filesystem operations. After deploying this template, you may need to manually configure device access on your host system.",changeLog:[{date:"2025-12-02",description:"Template Release"},{date:"2025-12-31",description:"Version bumped to v0.20, previous tag has been deleted by maintainers"},{date:"2026-02-24",description:"Version bumped to v0.28.2"},{date:"2026-05-07",description:"Version bumped to v0.36.0"}],links:[{label:"GitHub",url:"https://github.com/nicotsx/zerobyte"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"App Service Name",default:"zerobyte"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/nicotsx/zerobyte:v0.36.0"},timezone:{type:"string",title:"Timezone",default:"UTC"}
1,appSecret:{type:"string",title:"App Secret",default:"",description:"Secret key for the application (auto-generated if empty)"},baseUrl:{type:"string",title:"Base URL",default:"",description:"Base URL for the application (defaults to primary domain if empty)"}}},benefits:[{title:"Unified Backup Management",description:"Manage all your backup repositories from a single web interface with support for multiple cloud storage providers and local directories."},{title:"Multi-Cloud Support",description:"Backup to S3-compatible storage, Google Cloud Storage, Azure Blob Storage, or any storage provider supported by rclone."},{title:"Self-Hosted Privacy",description:"Keep complete control over your backup infrastructure and data without relying on third-party backup services."},{title:"FUSE Integration",description:"Leverages FUSE filesystem capabilities for seamless interaction with cloud storage as if it were mounted locally."}],features:[{title:"Web-Based Interface",description:"Intuitive web dashboard for configuring backups, managing repositories, and performing restore operations without command-line tools."},{title:"Multiple Storage Backends",description:"Support for local directories, S3-compatible storage, Google Cloud Storage, Azure Blob Storage, and rclone remotes."},{title:"Automatic Scheduling",description:"Configure automated backup schedules to ensure your data is regularly backed up without manual intervention."},{title:"Incremental Backups",description:"Efficient backup strategy with incremental backups to minimize storage usage and backup time."},{title:"Encryption Support",description:"Create encrypted backup repositories to ensure your data remains secure both in transit and at rest."},{title:"Flexible Restore",description:"Easily restore individual files, directories, or entire backup snapshots from your repositories through the web interface."},{title:"Repository Management",description:"Create and manage multiple backup repositories across different storage backends from a centralized interface."},{title:"Backup Monitoring",description:"Monitor backup status, view repository statistics, and track backup history to ensure your data protection strategy is working effectively."}],tags:["Backup","Storage","Cloud Storage","Data Management","Self-Hosted","Disaster Recovery"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.appSecret||y(64),i=["TZ=".concat(e.timezone||"UTC"),"APP_SECRET=".concat(a),"BASE_URL=".concat(e.baseUrl||"https://$(PRIMARY_DOMAIN)")];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4096}],env:i.join("\n"),mounts:[{type:"volume",name:"data",mountPath:"/var/lib/zerobyte"}],deploy:{capAdd:["SYS_ADMIN"]}}}),{services:t}}},{slug:"zeroclaw",meta:{name:"ZeroClaw",description:"ZeroClaw is a fast, small, and fully autonomous AI personal assistant\ninfrastructure built in 100% Rust. Deploy anywhere, swap anything.\nConnect any LLM provider (OpenRouter, OpenAI, Anthropic, Ollama) and\ninteract via a built-in web dashboard, REST API, or WebSocket gateway.\nSupports multi-channel communication (Discord, Telegram, Matrix, Slack,\nWhatsApp, Nostr, Lark), persistent memory, scheduled tasks, and\nautonomous tool use.\n",instructions:"After deployment, access the ZeroClaw gateway at the assigned domain on\nport 42617. Set your LLM provider API key via the API_KEY environment\nvariable. The default provider is OpenRouter \u2014 get a key at\nhttps://openrouter.ai/keys. Switch providers by changing the PROVIDER\nvariable (openrouter, openai, anthropic, or ollama).\n",changeLog:[{date:"2026-05-13",description:"Initial template (v0.7.5)"}],links:[{label:"Website",url:"https://www.zeroclawlabs.ai"},{label:"Documentation",url:"https://docs.zeroclawlabs.ai"},{label:"Github",url:"https://github.com/zeroclaw-labs/zeroclaw"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","apiKey","provider","model"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"zeroclaw"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/zeroclaw-labs/zeroclaw:v0.7.5"},apiKey:{type:"string",title:"LLM Provider API Key",description:"Your API key for the selected LLM provider (e.g. OpenRouter, OpenAI, Anthropic)",default:""},model:{type:"string",title:"Model",description:"Model ID for the selected provider. OpenRouter: e.g. anthropic/claude-sonnet-4-20250514. OpenAI: e.g. gpt-4o. Anthropic: e.g. claude-sonnet-4-20250514. Ollama: e.g. llama3.",default:"anthropic/claude-sonnet-4-20250514"},provider:{type:"string",title:"LLM Provider",default:"openrouter",oneOf:[{enum:["openrouter"],title:"OpenRouter"},{enum:["openai"],title:"OpenAI"},{enum:["anthropic"],title:"Anthropic"},{enum:["ollama"],title:"Ollama (Local)"}]}}},benefits:[{title:"Lightning Fast",description:"Built in 100% Rust with an optimized ~15 MB binary. Starts in milliseconds and runs on minimal resources."},{title:"Deploy Anywhere",description:"Multi-arch images (linux/amd64, linux/arm64). Runs on servers, Raspberry Pi, macOS, Windows, and Android."},{title:"Provider Agnostic",description:"Swap between OpenRouter, OpenAI, Anthropic, Ollama, or any OpenAI-compatible endpoint with a single environment variable."}],features:[{title:"Web Dashboard",description:"Built-in web UI for chat, memory browsing, config editing, cron management, and tool inspection \u2014 accessible on the gateway port."},{title:"Multi-Channel",description:"One agent answering across Discord, Telegram, Matrix, Slack, WhatsApp, Nostr, Lark, email, webhooks, and CLI simultaneously."},{title:"Persistent Memory",description:"SQLite-backed memory and conversation history that survives container restarts."},{title:"Autonomous Tools",description:"Shell, browser, HTTP, file operations, web search, git, hardware GPIO, and custom MCP servers."},{title:"SOP Engine",description:"Event-triggered Standard Operating Procedures with approval gates and resumable runs, driven by cron, webhooks, or MQTT."},{title:"REST & WebSocket Gateway",description:"Full HTTP/WebSocket API for programmatic access and real-time streaming responses."}],tags:["AI","Self-Hosted","Chatbot","Agent","Assistant"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=["API_KEY=".concat(e.apiKey),"PROVIDER=".concat(e.provider),"ZEROCLAW_MODEL=".concat(e.model),"ZEROCLAW_ALLOW_PUBLIC_BIND=true","ZEROCLAW_GATEWAY_PORT=42617"];return t.push({type:"app",data:{serviceName:e.appServiceName,env:a.join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:42617}],mounts:[{type:"volume",name:"data",mountPath:"/zeroclaw-data"}]}}),{services:t}}},{slug:"ziit",meta:{name:"Ziit",description:"Ziit (pronounced 'tseet') is an open-source, self-hostable alternative to WakaTime. It provides a clean, minimal, and fast dashboard for displaying coding statistics, while ensuring privacy by keeping all data on your own server. Ziit tracks coding activity such as projects, languages, editors, files, branches, operating systems, and time spent coding, all presented in a familiar interface inspired by Plausible Analytics.",instructions:null,changeLog:[{date:"2025-09-12",description:"Template Release"}],links:[{label:"Web App",url:"https://ziit.app/login"},{label:"Documentation",url:"https://docs.ziit.app"},{label:"Github",url:"https://github.com/0pandadev/ziit"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","postgresServiceImage","githubClientId","githubClientSecret","pasetoKey"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"ziit"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/0pandadev/ziit:v1.0.2"},postgresServiceImage:{type:"string",title:"PostgreSQL Service Image",default:"timescale/timescaledb:latest-pg17"},githubClientId:{type:"string",title:"GitHub Client ID",default:"",description:"GitHub OAuth application client ID"},githubClientSecret:{type:"string",title:"GitHub Client Secret",default:"",description:"GitHub OAuth application client secret"},pasetoKey:{type:"string",title:"PASETO Key",default:"CHaeP+t8UcMunRPMuHmQgL2VVU15q693VQxRu/BXnmM=",description:'generate your own key with "openssl rand -base64 32"'}}},benefits:[{title:"Privacy-First Time Tracking",description:"Keep all your coding statistics private and secure with a fully self-hosted solution that ensures your data never leaves your own server."},{title:"Clean & Minimal Dashboard",description:"Enjoy a clean, minimal interface inspired by Plausible Analytics that shows only the information you need without clutter or distractions."},{title:"Comprehensive Coding Analytics",description:"Track detailed coding activity including projects, languages, editors, files, branches, operating systems, and time spent coding with beautiful visualizations."}],features:[{title:"IDE Integration",description:"Time tracking directly from VS Code and JetBrains IDEs to your Ziit instance with seamless integration and real-time data synchronization."},{title:"Data Import & Migration",description:"Import your existing coding data from WakaTime or WakAPI instances to maintain continuity and historical statistics."},{title:"Public Stats & Leaderboards",description:"Share your coding statistics publicly and compete with others on the leaderboard to see who has the most coding hours."},{title:"Embeddable Badges",description:"Generate badges to embed coding time for specific projects directly into your README files or documentation."},{title:"Flexible Time Filtering",description:"Filter and analyze your co
1ding activity using different time ranges to gain insights into your productivity patterns."},{title:"Multi-Platform Support",description:"Track coding activity across different operating systems, editors, and programming languages with detailed breakdowns."}],tags:["Time Tracking","Developer Tools","Coding Statistics","Self-Hosted","WakaTime Alternative","Productivity"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["NUXT_DATABASE_URL=postgresql://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.appServiceName,"-postgres:5432/$(PROJECT_NAME)"),"NUXT_PASETO_KEY=k4.local.".concat(e.pasetoKey),"NUXT_GITHUB_CLIENT_ID=".concat(e.githubClientId),"NUXT_GITHUB_CLIENT_SECRET=".concat(e.githubClientSecret),"NUXT_GITHUB_REDIRECT_URI=https://$(PRIMARY_DOMAIN)/api/auth/github/callback","NUXT_HOST=$(PRIMARY_DOMAIN)","NUXT_DISABLE_REGISTRATION=false","NUXT_ADMIN_KEY=".concat(i)].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],mounts:[{type:"volume",name:"data",mountPath:"/app/data"}]}}),t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-postgres"),password:a,image:e.postgresServiceImage}}),{services:t}}},{slug:"zincsearch",meta:{name:"ZincSearch",description:"ZincSearch is a lightweight, fast, and modern search engine built in Go. It provides full-text search capabilities with a simple REST API, making it an excellent alternative to Elasticsearch for smaller to medium-scale applications. ZincSearch offers easy deployment, low resource consumption, and compatibility with Elasticsearch APIs.",instructions:"Provide the admin password, or leave it blank to generate a random one.",changeLog:[{date:"2025-10-13",description:"Template Release"}],links:[{label:"Documentation",url:"https://zincsearch-docs.zinc.dev/"},{label:"Github",url:"https://github.com/zincsearch/zincsearch"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminUsername"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"zincsearch"},appServiceImage:{type:"string",title:"App Service Image",default:"public.ecr.aws/zinclabs/zincsearch:0.4.10"},adminUsername:{type:"string",title:"Admin Username",default:"admin"},adminPassword:{type:"string",title:"Admin Password",default:"",description:"Automatically generated if not provided"}}},benefits:[{title:"Lightweight Search Engine",description:"Fast and resource-efficient search engine perfect for small to medium applications."},{title:"Elasticsearch Compatible",description:"Compatible with Elasticsearch APIs, making migration and integration easier."},{title:"Easy Deployment",description:"Simple setup with minimal configuration required to get started."}],features:[{title:"Full-Text Search",description:"Provides powerful full-text search capabilities with indexing support."},{title:"REST API",description:"Simple and intuitive REST API for all search and indexing operations."},{title:"Low Resource Usage",description:"Designed to be lightweight and efficient with minimal resource consumption."},{title:"Built-in Dashboard",description:"Includes a web-based dashboard for managing indexes and searching data."}],tags:["Search Engine","Full-Text Search","API","Elasticsearch Alternative"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=e.adminPassword||v();return t.push({type:"app",data:{serviceName:e.appServiceName,env:["ZINC_FIRST_ADMIN_USER=".concat(e.adminUsername),"ZINC_FIRST_ADMIN_PASSWORD=".concat(a),"ZINC_DATA_PATH=/data"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:4080}],mounts:[{type:"volume",name:"data",mountPath:"/data"}]}}),{services:t}}},{slug:"zipline",meta:{name:"Zipline",description:"Zipline is the next generation ShareX/File upload server, designed to make file sharing and management a breeze. With a user-friendly dashboard packed with features, Zipline allows you to upload any file type, view your files in a gallery, and even shorten URLs for easy sharing. The app also provides a way to organize your files with folders for easy access and management. Zipline also offers features like image compression, video thumbnail generation, and password protection for your uploads. With Zipline, you can quickly set up your own instance and configure it to your needs. It also offers an extensive API for a more fine-grained control over your instance. Zipline is not just a file upload server, it's a comprehensive tool for managing and sharing your files with ease and efficiency.",instructions:'After installing Zipline for the first time, you may login to the dashboard with the username "administrator" and the password "password".',changeLog:[{date:"2023-01-20",description:"First Release"},{date:"2023-03-22",description:"Version bumped to 4.0.0"},{date:"2025-07-25",description:"Version bumped to 4.2.0"},{date:"2026-05-07",description:"Version bumped to 4.5.3"}],links:[{label:"Website",url:"https://zipline.diced.tech/"},{label:"Github",url:"https://github.com/diced/zipline"},{label:"Documentation",url:"https://zipline.diced.tech/docs/get-started"}],contributors:[{name:"DrMxrcy",url:"https://github.com/DrMxrcy"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","databaseServiceName"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"zipline"},appServiceImage:{type:"string",title:"App Service Image",default:"ghcr.io/diced/zipline:4.5.3"},databaseServiceName:{type:"string",title:"Database Service Name",default:"zipline-db"}}},benefits:[{title:"Easy to use",description:"Zipline is designed to be user-friendly and intuitive, making it easy for anyone to upload and manage files."},{title:"Packed with features",description:"Zipline offers a wide range of features, including file organization, URL shortening, image compression, and more."},{title:"Customizable dashboard",description:"Zipline's dashboard is fully customizable, allowing users to personalize their experience and access the information they need."},{title:"Fast and efficient",description:"Zipline is built with performance in mind, ensuring fast and efficient file uploads and management."}],features:[{title:"File organization",description:"Easily organize your files with folders and view them with a click of a button."},{title:"URL shortening",description:"Create shortened links to websites, set a maximum amount of uses, and more."},{title:"Image compression",description:"Compress your images to save space without compromising quality."},{title:"Discord integration",description:"Embed your uploads in Discord with OG tags and receive notifications when someone uploads to your instance."},{title:"OAuth2 registration",description:"Allow users to link and/or register with selected OAuth2 providers for easy access and authentication."},{title:"Two-Factor authentication",description:"Enable an extra layer of security with 2FA using Google Authenticator, Authy, and more."}],tags:["File Management","Dashboard","URL Shortening","Image Compression","API"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=y(32);return t.push({type:"postgres",data:{serviceName:e.databaseServiceName,password:a}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:3e3}],env:["CORE_DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"DATABASE_URL=postgres://postgres:".concat(a,"@$(PROJECT_NAME)_").concat(e.databaseServiceName,":5432/$(PROJECT_NAME)?sslmode=disable"),"CORE_RETURN_HTTPS=false","CORE_SECRET=".concat(i),"CORE_HOST=0.0.0.0","CORE_PORT=3000","CORE_LOGGER=true"].join("\n"),mounts:[{type:"volume",name:"uploads",mountPath:"/zipline/uploads"},{type:"volume",name:"public",mountPath:"/zipline/public"}]}}),{services:t}}},{slug:"znc",meta:{name:"ZNC",description:"ZNC is an IRC bouncer that is designed to stay connected to IRC servers and channels, allowing you to access them at any time.",instructions:"default login is admin/admin",changeLog:[{date:"2024-04-27",description:"first release"},{date:"2025-07-25",description:"Version bumped to 1.10.1"}],links:[{label:"Website",url:"https://github.com/linuxserver"},{label:"Documentation",url:"https://hub.docker.com/r/linuxserver/znc"},{label:"Github",url:"https://github.com/linuxserver/docker-znc/"}],contributors:[{name:"LinuxServer.io Team",url:"https://linuxserver.io/"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","PUID","PGID","serviceTimezone"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"znc"},appServiceImage:{type:"string",title:"App Service Image",default:"lscr.io/linuxserver/znc:1.10.1"},PUID:{type:"string",title:"PUID",default:"1000"},PGID:{type:"string",title:"PGID",default:"1000"},serviceTimezone:{type:"string",title:"Timezone",default:"Europe/London"}}},benefits:[{title:"Always Connected",description:"ZNC keeps you permanently connected to your favorite IRC channels and servers, ensuring you never miss important messages."},{title:"Custom Modules",description:"Extend ZNC's functionality with custom modules, allowing for personalized features and enhancements."}],features:[{title:"Detachable Sessions",description:"ZNC allows you to detach and reattach to IRC sessions without losing the session state, similar to screen or tmux for IRC."},{title:"Multiple Networks",description:"Connect to multiple IRC networks simultaneously with a single ZNC instance."},{title:"Playback Buffers",description:"ZNC stores chat history when you're away, allowing you to catch up on what you missed once you reconnect."},{title:"SSL/TLS Support",description:"Secure your connections with SSL/TLS, protecting your privacy and data integrity."},{title:"Web Interface",description:"Manage your ZNC settings and configurations through a user-friendly web interface."}],tags:["Chat"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["PUID=".concat(e.PUID),"PGID=".concat(e.PGID),"TZ=".concat(e.serviceTimezone)].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:6501}],mounts:[{type:"volume",name:"znc-config",mountPath:"/config"}]}}),{services:t}}},{slug:"zoraxy",meta:{name:"Zoraxy",description:"Zoraxy is a general-purpose reverse proxy and web application gateway designed for self-hosting enthusiasts. It offers an intuitive web interface for managing multiple web services with features like automatic SSL certificate management via ACME/Let's Encrypt, virtual directory hosting, HTTP to HTTPS redirection, and built-in authentication. Zoraxy supports WebSocket proxying, custom error pages, rate limiting, geographic access control with GeoIP, and Docker integration for seamless container management. Perfect for hosting multiple services on a single server with professional-grade routing, security, and access control.",instructions:null,changeLog:[{date:"2025-11-07",description:"Template Release"},{date:"2026-02-24",description:"Version bumped to v3.3.1"},{date:"2026-05-07",description:"Version bumped to v3.3.2"}],links:[{label:"Documentation",url:"https://zoraxy.arozos.com/"},{label:"Github",url:"https://github.com/tobychui/zoraxy"},{label:"Docker Hub",url:"https://hub.docker.com/r/zoraxydocker/zoraxy"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"zoraxy"},appServiceImage:{type:"string",title:"App Service Image",default:"zoraxydocker/zoraxy:v3.3.2"}}},benefits:[{title:"Easy to Use",description:"Intuitive web-based interface for managing reverse proxy rules, SSL certificates, and access control without complex configuration files."},{title:"Automatic SSL Management",description:"Built-in ACME/Let's Encrypt integration for automatic SSL certificate provisioning and renewal, ensuring secure connections for all your services."},{title:"Docker Integration",description:"Native Docker socket integration for automatic service discovery and management, making it perfect for containerized environments."}],features:[{title:"Reverse Proxy",description:"Route traffic to multiple backend services based on domain names, paths, or custom rules with support for HTTP/HTTPS and WebSocket protocols."},{title:"SSL/TLS Termination",description:"Automatic SSL certificate management with Let's Encrypt, including HTTP-to-HTTPS redirection and secure TLS termination."},{title:"Geographic Access Control",description:"Fast GeoIP-based access control to restrict or allow traffic from specific countries or regions, enhancing security for your services."},{title:"Authentication & Authorization",description:"Built-in authentication system with support for basic auth, custom login pages, and user management for securing your applications."},{title:"Rate Limiting & Security",description:"Protect your services with configurable rate limiting, custom error pages, and advanced security features to prevent abuse."}],tags:["Reverse Proxy","Gateway","SSL","Load Balancer","Docker","Security"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[];return t.push({type:"app",data:{serviceName:e.appServiceName,env:["FASTGEOIP=true"].join("\n"),source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8e3}],mounts:[{type:"volume",name:"config",mountPath:"/opt/zoraxy/config/"},{type:"volume",name:"plugin",mountPath:"/opt/zoraxy/plugin/"},{type:"bind",hostPath:"/var/run/docker.sock",mountPath:"/var/run/docker.sock"},{type:"bind",hostPath:"/etc/localtime",mountPath:"/etc/localtime"}]}}),{services:t}}},{slug:"zulip",meta:{name:"Zulip",description:"Zulip is a powerful team collaboration platform that combines the immediacy of chat with the organization of email. It features topic-based threading that makes it easy to catch up on conversations that happened while you were away. Zulip is designed for both live and asynchronous conversations, with advanced features like message formatting, file sharing, emoji reactions, and integrations with hundreds of tools. It's perfect for distributed teams, open source projects, and organizations that need organized, searchable communication. Zulip is open source and can be self-hosted for complete control over your data.",instructions:'After deployment, open the Zulip app service console in Easypanel and run the "Generate Realm Creation Link" script from the Scripts section. Copy the generated realm-creation URL from the script output and paste it into your browser to finish setup and create the first account. Configure email settings for full functionality.',changeLog:[{date:"2026-04-27",description:"first release"}],links:[{label:"Website",url:"https://zulip.com/"},{label:"Documentation",url:"https://zulip.readthedocs.io/"},{label:"GitHub",url:"https://github.com/zulip/docker-zulip"}],contributors:[{name:"Livio Gamassia",url:"https://github.com/liviogama"},{name:"Matheus Bregu\xeaz",url:"https://github.com/matbrgz"},{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","adminEmail"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"zulip"},appServiceImage:{type:"string",title:"App Service Image",default:"zulip/docker-zulip:10.3-0"},adminEmail:{type:"string",title:"Administrator Email",format:"email"},emailHost:{type:"string",title:"Email Host (Optional)",default:""},emailHostUser:{type:"string",title:"Email Host User (Optional)",default:""},emailPort:{type:"string",title:"Email Port (Optional)",default:"587"}}},benefits:[{title:"Topic-Based Threading",description:"Zulip's unique topic-based threading system makes it easy to follow conversations and catch up on missed discussions. Unlike traditional chat, every message belongs to a topic, creating organized, searchable conversations."},{title:"Powerful Integrations",description:"Connect Zulip with hundreds of tools including GitHub, Jira, Trello, Jenkins, and more. Receive notifications and updates directly in your team channels with native integrations and webhooks."},{title:"Advanced Message Features",description:"Rich message formatting with Markdown support, LaTeX math rendering, syntax highlighting for code, emoji reactions, message editing, and threaded replies make communication more expressive and organized."},{title:"Flexible Communication",description:"Designed for both real-time and asynchronous communication, Zulip works perfectly for distributed teams across different time zones with its threading model and comprehensive notification system."}],features:[{title:"Stream and Topic Organization",description:"Organize conversations into streams (channels) and topics for better structure. This unique approach makes it easy to follow multiple conversations simultaneously without losing context."},{title:"Powerful Search and Archives",description:"Full-text search across all messages, with advanced filtering options. All conversations are automatically archived and searchable, making it easy to find past discussions and decisions."},{title:"Mobile and Desktop Apps",description:"Native applications for iOS, Android, Windows, macOS, and Linux, plus a full-featured web interface. Stay connected and productive from any device with synchronized notifications."},{title:"Open Source and Self-Hosted",description:"Complete control over your data with self-hosting options. Zulip is open source with transparent development, regular security updates, and the ability to customize for your organization's needs."},{title:"Enterprise Security",description:"End-to-end encryption, LDAP/SAML integration, compliance features, and advanced permission controls. Suitable for organizations with strict security and compliance requirements."},{title:"Rich Formatting and Code Support",description:"Markdown formatting, syntax highlighting for dozens of programming languages, LaTeX math rendering, and inline image previews make technical discussions more productive."}],tags:["Chat","Communication","Collaboration","Team","Open Source"],logo:"logo.png",screenshots:["screenshot.png"]},generate:function(e){var t=[],a=v(),i=v(),o=v(),n=v();return t.push({type:"postgres",data:{serviceName:"".concat(e.appServiceName,"-db"),image:"zulip/zulip-postgresql:14",password:a,user:"zulip",databaseName:"zulip"}}),t.push({type:"redis",data:{serviceName:"".concat(e.appServiceName,"-redis"),password:o}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-memcached"),source:{type:"image",image:"memcached:alpine"},deploy:{command:"memcached -m 64 -p 11211 -u memcache -l 0.0.0.0"}}}),t.push({type:"app",data:{serviceName:"".concat(e.appServiceName,"-rabbitmq"),source:{type:"image",image:"rabbitmq:4.0.7"},env:["RABBITMQ_DEFAULT_USER=zulip","RABBITMQ_DEFAULT_PASS=".concat(i)].join("\n"),mounts:[{type:"volume",name:"rabbitmq-data",mountPath:"/var/lib/rabbitmq"}]}}),t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},env:["DB_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-db"),"DB_HOST_PORT=5432","DB_USER=zulip","SETTING_MEMCACHED_LOCATION=$(PROJECT_NAME)_".concat(e.appServiceName,"-memcached:11211"),"SETTING_RABBITMQ_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-rabbitmq"),"SETTING_REDIS_HOST=$(PROJECT_NAME)_".concat(e.appServiceName,"-redis"),"SECRETS_postgres_password=".concat(a),"SECRETS_postgres_user=postgres","SECRETS_postgres_db=$(PROJECT_NAME)","SECRETS_rabbitmq_password=".concat(i),"SECRETS_redis_password=".concat(o),"SECRETS_secret_key=".concat(n),"SETTING_EXTERNAL_HOST=$(PRIMARY_DOMAIN)","SETTING_ZULIP_ADM
1INISTRATOR=".concat(e.adminEmail),"SETTING_EMAIL_HOST=".concat(e.emailHost||""),"SETTING_EMAIL_HOST_USER=".concat(e.emailHostUser||""),"SETTING_EMAIL_PORT=".concat(e.emailPort||"587"),"SETTING_EMAIL_USE_SSL=False","SETTING_EMAIL_USE_TLS=True","DISABLE_HTTPS=True","SSL_CERTIFICATE_GENERATION=self-signed","LOADBALANCER_IPS=172.16.0.0/12,10.0.0.0/8,192.168.0.0/16","ZULIP_AUTH_BACKENDS=EmailAuthBackend"].join("\n"),domains:[{host:"$(EASYPANEL_DOMAIN)",port:80}],mounts:[{type:"volume",name:"zulip-data",mountPath:"/data"}],scripts:[{name:"Generate Realm Creation Link",script:["su -s /bin/bash zulip -c 'cd /home/zulip/deployments/current && ./manage.py generate_realm_creation_link'"].join("\n")}]}}),{services:t}}},{slug:"zusam",meta:{name:"Zusam",description:"Zusam is a free and open-source way to self-host private forums for friends and family. It's a simple, modern, and privacy-focused platform for group discussions.",instructions:null,changeLog:[{date:"2025-05-02",description:"Initial release"},{date:"2026-02-24",description:"Version bumped to 0.6.0"},{date:"2026-05-07",description:"Version bumped to 0.6.1"}],links:[{label:"Website",url:"https://zusam.org"},{label:"Documentation",url:"https://docs.zusam.org"},{label:"GitHub",url:"https://github.com/zusam/zusam"},{label:"Docker Hub",url:"https://hub.docker.com/r/zusam/zusam"}],contributors:[{name:"Ahson Shaikh",url:"https://github.com/Ahson-Shaikh"}],schema:{type:"object",required:["appServiceName","appServiceImage","initGroup","initUser"],properties:{appServiceName:{type:"string",title:"Ap
1p Service Name",default:"zusam"},appServiceImage:{type:"string",title:"App Service Image",default:"zusam/zusam:0.6.1"},initGroup:{type:"string",title:"Initial Group Name",default:"zusam"},initPassword:{type:"string",title:"Initial Password",default:"",description:"Leave empty to generate a random password"},initUser:{type:"string",title:"Initial Username",default:"zusam"}}},benefits:[{title:"Private Forums",description:"Create private forums for friends and family"},{title:"Self-hosted Solution",description:"Keep your discussions private by hosting your own platform"},{title:"Simple Interface",description:"Clean and intuitive user interface"},{title:"Open Source",description:"Free and open-source platform with active community support"}],features:[{title:"Group Discussions",description:"Create and manage private discussion groups"},{title:"User Management",description:"Simple user and group management"},{title:"File Sharing",description:"Share files and media within groups"},{title:"Privacy Focused",description:"Built with privacy and security in mind"},{title:"Modern Design",description:"Clean and responsive user interface"},{title:"Easy Setup",description:"Simple installation and configuration"}],tags:["Forum","Discussion","Self-hosted","Open Source","Privacy"],logo:"logo.png",screenshots:["screenshot.png"]}
1,generate:function(e){var t=[],a=e.initPassword||v();return t.push({type:"app",data:{serviceName:e.appServiceName,source:{type:"image",image:e.appServiceImage},domains:[{host:"$(EASYPANEL_DOMAIN)",port:8080}],env:["DATABASE_NAME=data.db","INIT_GROUP=".concat(e.initGroup),"INIT_PASSWORD=".concat(a),"INIT_USER=".concat(e.initUser),"SUBPATH="].join("\n"),mounts:[{type:"volume",name:"zusam-data",mountPath:"/zusam/data"}]}}),{services:t}}}],st=rt;function ct(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function lt(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{},i=Object.keys(a);"function"===typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(a).filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable})))),i.forEach((function(t){ct(e,t,a[t])}))}return e}var pt=function(){var e=(0,m.useRouter)(),t=e.query.slug,a=st.find((function(e){return e.slug===t})),h=(0,g.useState)(),f=h[0],y=h[1],v=(0,g.useState)(""),b=v[0],S=v[1],w=(0,o.V)(b),A=w.hasCopied,I=w.onCopy,E=st.map((function(e){return{value:e.slug,label:e.meta.name}})),k=E.find((function(e){return e.value===t}))||null;return(0,g.useEffect)((function(){y(null),S("")}),[t]),(0,i.jsxs)(n.xu,{display:{lg:"grid"},gridTemplateRows:"auto 1fr",gridTemplateColumns:"400px 1fr",height:{lg:"100vh"},bg:"gray.800",children:[(0,i.jsx)(n.xu,{shadow:"md",zIndex:"100",gridRow:"1 / 2",gridColumn:"1 / 3",px:"4",py:"2",bg:"white",children:(0,i.jsxs)(r.k,{direction:"row",alignItems:"center",children:[(0,i.jsx)(s.x,{fontWeight:"bold",fontSize:"lg",mr:"6",children:"Templates"}),(0,i.jsx)(p.Ph,{placeholder:"Select Template",options:E,value:k,onChange:function(t){t?e.push("/?slug=".concat(t.value),void 0,{shallow:!1}):e.push("/",void 0,{shallow:!1})},chakraStyles:{container:function(e){return lt({},e,{width:"400px"})}},isClearable:!0,menuPortalTarget:"undefined"!==typeof document?document.body:null,styles:{menuPortal:function(e){return lt({},e,{zIndex:9999})}}},t||"no-selection")]})}),a&&(0,i.jsx)(n.xu,{gridRow:"2 / 3",gridColumn:"1 / 2",overflow:"auto",p:"4",bg:"white",children:(0,i.jsx)(d.ZP,{validator:u.ZP,schema:a.meta.schema,formData:f,onChange:function(e){return y(e.formData)},onSubmit:function(e){var t=e.formData;try{var i=a.generate(t);S(JSON.stringify(i,null,2))}catch(o){S("Error: ".concat(o.message))}},noHtml5Validate:!0,showErrorList:!1,children:(0,i.jsx)(c.z,{type:"submit",colorScheme:"brand",children:"Generate"})})}),(0,i.jsx)(n.xu,{gridRow:"2 / 3",gridColumn:"2 / 3",overflow:"auto",p:"4",children:b&&(0,i.jsxs)(l.K,{alignItems:"start",children:[(0,i.jsx)(c.z,{onClick:I,children:A?"Copied":"Copy"}),(0,i.jsx)(n.xu,{as:"pre",overflow:"auto",w:"100%",color:"white",children:b})]})})]})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.