diff --git a/templates/docmost/assets/logo.png b/templates/docmost/assets/logo.png new file mode 100644 index 00000000..4f35f817 Binary files /dev/null and b/templates/docmost/assets/logo.png differ diff --git a/templates/docmost/assets/screenshot.png b/templates/docmost/assets/screenshot.png new file mode 100644 index 00000000..7055295f Binary files /dev/null and b/templates/docmost/assets/screenshot.png differ diff --git a/templates/docmost/index.ts b/templates/docmost/index.ts new file mode 100644 index 00000000..f831594c --- /dev/null +++ b/templates/docmost/index.ts @@ -0,0 +1,64 @@ +import { + Output, + randomPassword, + randomString, + Services, +} from "~templates-utils"; +import { Input } from "./meta"; + +export function generate(input: Input): Output { + const services: Services = []; + + const appSecret = randomString(32); + + const databasePassword = randomPassword(); + const redisPassword = randomPassword(); + + services.push({ + type: "app", + data: { + serviceName: `${input.appServiceName}-web`, + env: [ + `APP_URL=http://localhost:3000`, + `APP_SECRET=${appSecret}`, + `DATABASE_URL=postgresql://postgres:${databasePassword}@$(PROJECT_NAME)_${input.appServiceName}-db:5432/$(PROJECT_NAME)?schema=public`, + `REDIS_URL=redis://:${redisPassword}@$(PROJECT_NAME)_${input.appServiceName}-redis:6379/0`, + ].join("\n"), + source: { + type: "image", + image: input.appServiceImage, + }, + domains: [ + { + host: "$(EASYPANEL_DOMAIN)", + path: "/", + port: 3000, + }, + ], + mounts: [ + { + type: "volume", + name: "storage", + mountPath: "/app/data/storage", + }, + ], + }, + }); + + services.push({ + type: "postgres", + data: { + serviceName: `${input.appServiceName}-db`, + password: databasePassword, + }, + }); + + services.push({ + type: "redis", + data: { + serviceName: `${input.appServiceName}-redis`, + password: redisPassword, + }, + }); + return { services }; +} diff --git a/templates/docmost/meta.yaml b/templates/docmost/meta.yaml new file mode 100644 index 00000000..6312bc0e --- /dev/null +++ b/templates/docmost/meta.yaml @@ -0,0 +1,74 @@ +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: 2024-12-21 + description: Template Release +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: App Service Name + default: docmost + appServiceImage: + type: string + title: App Service Image + default: docmost/docmost:0.6.2 +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