diff --git a/public/templates/odoo.png b/public/templates/odoo.png new file mode 100644 index 000000000..5b5988999 Binary files /dev/null and b/public/templates/odoo.png differ diff --git a/templates/odoo/docker-compose.yml b/templates/odoo/docker-compose.yml new file mode 100644 index 000000000..291b737b4 --- /dev/null +++ b/templates/odoo/docker-compose.yml @@ -0,0 +1,43 @@ +version: '3.8' + +services: + web: + image: odoo:16.0 + networks: + - dokploy-network + depends_on: + - db + ports: + - ${ODOO_PORT} + environment: + - HOST=db + - USER=odoo + - PASSWORD=odoo + labels: + - "traefik.enable=true" + - "traefik.http.routers.${HASH}.rule=Host(`${ODOO_HOST}`)" + - "traefik.http.services.${HASH}.loadbalancer.server.port=${ODOO_PORT}" + volumes: + - odoo-web-data:/var/lib/odoo + - ./config:/etc/odoo + - ./addons:/mnt/extra-addons + + db: + image: postgres:13 + networks: + - dokploy-network + environment: + - POSTGRES_DB=postgres + - POSTGRES_USER=odoo + - POSTGRES_PASSWORD=odoo + volumes: + - odoo-db-data:/var/lib/postgresql/data + +volumes: + odoo-web-data: + odoo-db-data: + + +networks: + dokploy-network: + external: true diff --git a/templates/odoo/index.ts b/templates/odoo/index.ts new file mode 100644 index 000000000..539b7a0c0 --- /dev/null +++ b/templates/odoo/index.ts @@ -0,0 +1,20 @@ +import { + generateHash, + generateRandomDomain, + type Template, + type Schema, +} from "../utils"; + +export function generate(schema: Schema): Template { + const mainServiceHash = generateHash(schema.projectName); + const randomDomain = generateRandomDomain(schema); + const envs = [ + `ODOO_HOST=${randomDomain}`, + "ODOO_PORT=8069", + `HASH=${mainServiceHash}`, + ]; + + return { + envs, + }; +} diff --git a/templates/templates.ts b/templates/templates.ts index 052153952..4ea70a70d 100644 --- a/templates/templates.ts +++ b/templates/templates.ts @@ -152,4 +152,19 @@ export const templates: TemplateData[] = [ tags: ["cms"], load: () => import("./wordpress/index").then((m) => m.generate), }, + { + id: "odoo", + name: "Odoo", + version: "16.0", + description: + "Odoo is a free and open source business management software that helps you manage your company's operations.", + logo: "odoo.png", + links: { + github: "https://github.com/odoo/odoo", + website: "https://odoo.com/", + docs: "https://www.odoo.com/documentation/", + }, + tags: ["cms"], + load: () => import("./odoo/index").then((m) => m.generate), + }, ];