diff --git a/templates/akaunting/assets/logo.svg b/templates/akaunting/assets/logo.svg new file mode 100644 index 00000000..848ccd8a --- /dev/null +++ b/templates/akaunting/assets/logo.svg @@ -0,0 +1 @@ +Asset 3 \ No newline at end of file diff --git a/templates/akaunting/assets/screenshot1.png b/templates/akaunting/assets/screenshot1.png new file mode 100644 index 00000000..7d5c1ca1 Binary files /dev/null and b/templates/akaunting/assets/screenshot1.png differ diff --git a/templates/akaunting/assets/screenshot2.png b/templates/akaunting/assets/screenshot2.png new file mode 100644 index 00000000..f1a17ab0 Binary files /dev/null and b/templates/akaunting/assets/screenshot2.png differ diff --git a/templates/akaunting/index.ts b/templates/akaunting/index.ts new file mode 100644 index 00000000..7f51219f --- /dev/null +++ b/templates/akaunting/index.ts @@ -0,0 +1,57 @@ +import { Output, Services, randomPassword } from "~templates-utils"; +import { Input } from './meta'; + +export function generate(input: Input): Output { + const services: Services = []; + const dbPassword = randomPassword(); + + // Database service - using managed MySQL + services.push({ + type: "mysql", + data: { + serviceName: `${input.appServiceName}-db`, + password: dbPassword, + }, + }); + + // Akaunting service + services.push({ + type: "app", + data: { + serviceName: input.appServiceName, + source: { + type: "image", + image: "docker.io/akaunting/akaunting:3.1.14-v", + }, + env: [ + `AKAUNTING_SETUP=false`, + `APP_URL=https://$(PRIMARY_DOMAIN)`, + `APP_DEBUG=false`, + `DB_HOST=$(PROJECT_NAME)_${input.appServiceName}-db`, + `DB_PORT=3306`, + `DB_DATABASE=$(PROJECT_NAME)`, + `DB_USERNAME=mysql`, + `DB_PASSWORD=${dbPassword}`, + `COMPANY_NAME=${input.companyName}`, + `COMPANY_EMAIL=${input.companyEmail}`, + `ADMIN_EMAIL=${input.adminEmail}`, + `ADMIN_PASSWORD=${input.adminPassword}`, + ].join("\n"), + domains: [ + { + host: "$(EASYPANEL_DOMAIN)", + port: 80, + }, + ], + mounts: [ + { + type: "volume", + name: "data", + mountPath: "/var/www/html", + }, + ], + }, + }); + + return { services }; +} \ No newline at end of file diff --git a/templates/akaunting/meta.yaml b/templates/akaunting/meta.yaml new file mode 100644 index 00000000..baf8fb08 --- /dev/null +++ b/templates/akaunting/meta.yaml @@ -0,0 +1,92 @@ +name: Akaunting +description: | + Akaunting is a powerful online accounting software designed for small businesses, + freelancers, and entrepreneurs. This free and open-source solution provides + comprehensive financial management tools with a modern, user-friendly interface. + Built on Laravel, it offers robust double-entry bookkeeping, real-time financial + tracking, and automated features to streamline your accounting processes. With + multi-user support, document management, and detailed reporting capabilities, + Akaunting helps you maintain professional financial records while saving time + and resources. +instructions: null +changeLog: + - date: 2025-02-14 + description: First release with Akaunting 3.0.20 +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 + - companyName + - companyEmail + - adminEmail + - adminPassword + properties: + appServiceName: + type: string + title: App Service Name + default: akaunting + companyName: + type: string + title: Company Name + default: My Company + companyEmail: + type: string + title: Company Email + default: company@example.com + adminEmail: + type: string + title: Admin Email + default: admin@example.com + adminPassword: + type: string + title: Admin Password + format: password +benefits: + - title: Professional Accounting Made Simple + description: | + Akaunting simplifies professional accounting with an intuitive interface + and automated features, making it easy for non-accountants to maintain + accurate financial records. + - title: Free and Open-Source + description: | + As a free, open-source solution, Akaunting eliminates expensive software + costs while giving you full control over your financial data and the + freedom to modify the software to suit your needs. + - title: Secure and Self-Hosted + description: | + Host Akaunting on your own infrastructure for complete data privacy and + security. You maintain full control over your sensitive financial information + with no third-party access. +features: + - title: Double-Entry Bookkeeping + description: | + Built on professional accounting principles, Akaunting provides comprehensive + double-entry bookkeeping to ensure accurate financial records and maintain + compliance with accounting standards. + - title: Invoice & Bill Management + description: | + Create professional invoices, track bills, and manage payments efficiently. + Automated features help you stay on top of accounts receivable and payable. + - title: Financial Reporting + description: | + Generate detailed financial reports including profit & loss statements, + balance sheets, and tax summaries. Get real-time insights into your + business's financial health. + - title: Multi-User & Multi-Company + description: | + Support for multiple users and companies makes Akaunting perfect for + growing businesses or accountants managing multiple clients. +tags: + - Finance + - Accounting + - Business \ No newline at end of file