← Alle Vorlagen · Produktivität
Odoo mit einem Klick deployen
Business-Apps in einem: CRM, Verkauf, Rechnungsstellung, Lager, Website, Projekte und mehr
Eine selbst gehostete Alternative zu Salesforce, SAP Business One und NetSuite.
Was ist Odoo?
Odoo ist eine Suite von Open-Source-Business-Apps, die allein oder zusammen als ein ERP arbeiten. Ein kleines Unternehmen betreibt sein CRM und seine Vertriebspipeline, Angebote und Rechnungen, Einkäufe und Lager, Fertigung, Projekte und Zeiterfassung, Mitarbeiter und Abwesenheiten, ein Kassensystem, eine Website mit Onlineshop, E-Mail-Marketing, Veranstaltungen und Livechat in derselben Datenbank, sodass aus einer gewonnenen Verkaufschance ein Auftrag, eine Lieferung und eine Rechnung werden, ohne dass jemand etwas neu eintippt.
Jede App installierst du über das Menü „Apps“ von Odoo, wenn du sie brauchst, und alle Benutzer melden sich an derselben Weboberfläche an, mit Zugriffsrechten pro App. Odoo Community, die kostenlose Edition, enthält die genannten Apps; Odoo S.A. verkauft Odoo Enterprise, das die volle Buchhaltung und die Apps Studio, Kundendienst, Dokumente, E-Signatur, Planung, Außendienst und Wissensdatenbank dazubringt.
Diese Vorlage startet Odoo Community aus dem offiziellen Image von Odoo, Version 20, mit einer Postgres-18-Datenbank, die „Neues Projekt“ daneben erstellt, oder einer deiner Datenbanken, die du wählst. Die Datenbank wird initialisiert, und der Administrator bekommt die E-Mail und das Passwort, die du eingibst, bevor Odoo irgendwem antwortet; der Datenbankmanager bleibt gesperrt, und Kunden registrieren sich nur auf Einladung. E-Mails verschickt Odoo über Resend, SendGrid oder Amazon SES, je nachdem, welchen Anbieter du in „Neues Projekt“ wählst, und gar keine, solange du keinen wählst.
Odoo-Hosting auf Pethost
- Du meldest dich bei Pethost an, mit Passkey, GitHub oder Google. Noch keine Maschine? Du wählst einen Tarif, und der Link wartet, bis sie bereit ist.
- „Neues Projekt“ öffnet sich bei Odoo. Du füllst aus, was die App braucht, und klickst auf „Projekt erstellen“: E-Mail, Admin-Passwort.
- E-Mail ist optional: Damit Odoo E-Mails sendet, wählst du in „Neues Projekt“ Resend, SendGrid oder Amazon SES und fügst ein, was der Anbieter dir gibt.
- „Neues Projekt“ erstellt außerdem eine neue Datenbank für Odoo und verbindet sie vor dem ersten Start der App: Postgres (512 MB). Oder du wählst eine deiner Postgres-Datenbanken: Odoo bekommt darin einen eigenen Benutzer und eine eigene Datenbank, die die anderen Apps dort nicht lesen können, und alle Apps darin werden zusammen gesichert und wiederhergestellt.
- In ein, zwei Minuten läuft Odoo unter eigener Adresse mit HTTPS. Die Secrets werden zufällig erzeugt, und die Daten sind im nächtlichen Backup.
- Es ist ein Projekt wie jedes andere: Du oder dein Agent könnt es ändern, zurückrollen oder wiederherstellen.
Fragen zu Odoo
Ist Odoo kostenlos?
Odoo Community ist Open Source unter der LGPL-3.0 und für beliebig viele Benutzer kostenlos nutzbar. Odoo Enterprise kostet pro Benutzer und bringt Apps wie die volle Buchhaltung, Studio, Kundendienst und Dokumente dazu.
Welche Apps hat Odoo Community?
Unter anderem CRM, Verkauf, Rechnungsstellung, Einkauf, Lager, Fertigung, Projekt, Mitarbeiter, Abwesenheiten, Kassensystem, Website, E-Commerce, E-Mail-Marketing, Veranstaltungen, Umfragen, Livechat und Dialog.
Odoo oder Salesforce: Was ist der Unterschied?
Salesforce ist ein CRM, das pro Benutzer in der eigenen Cloud von Salesforce verkauft wird. Das CRM von Odoo ist eine App unter vielen: Dieselbe Datenbank enthält auch Verkauf, Rechnungsstellung, Lager und Projekte, und der Betrieb von Odoo Community kostet nichts.
Kann ich Module aus dem Odoo App Store hinzufügen?
Ja. Ein Modul für Odoo 20 Community kopierst du in das Volume addons, unter /mnt/extra-addons im Service odoo; dann klickst du bei eingeschaltetem Entwicklermodus unter „Apps“ auf „App-Liste aktualisieren“, und das Modul erscheint zum Installieren.
Hat Odoo Community eine Buchhaltung?
Es hat die App „Rechnungsstellung“: Kundenrechnungen und Lieferantenrechnungen, Zahlungen, Steuern und den Kontenplan deines Landes. Die volle Buchhaltung mit Banksynchronisierung und Abstimmung, Finanzberichten und den Werkzeugen für Buchhalter gibt es in Odoo Enterprise.
Wie viel RAM und Speicherplatz braucht Odoo?
Odoo braucht etwa 150 MB RAM neben seiner Postgres-Datenbank mit 512 MB, mehr, je mehr Apps du installierst und nutzt; Anhänge belegen so viel, wie ihre Dateien groß sind. „Neues Projekt“ gibt jeder Datenbank der App den Arbeitsspeicher, den die Vorlage empfiehlt, wenn du ihn nicht änderst: Postgres (512 MB). Auf Pethost reicht dafür der Tarif Starter, mit Platz für weitere Apps daneben.
Odoo: die Docker-Compose-Datei
Die Vorlage ist diese compose.yaml und die Variablen, die beim Erstellen in die .env des Projekts geschrieben werden. Pethost führt die Datei so aus, wie sie geschrieben ist. Wie sich die App bei ihren Datenbanken anmeldet, schreibt die Maschine dort hinein, wenn sie sie verbindet. Die E-Mail-Einstellungen schreibt „Neues Projekt“ so hinein, wie du sie dort wählst, oder lässt sie leer, wenn die App keine E-Mails sendet.
Container: odoo (odoo:20).
Datenbanken, jede ein eigenes Projekt: Postgres (512 MB).
Volumes, im nächtlichen Backup: data, addons.
services:
odoo:
image: odoo:20
restart: unless-stopped
environment:
PGHOST: ${DATABASE_HOST:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
PGPORT: ${DATABASE_PORT:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
PGUSER: ${DATABASE_USER:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
PGPASSWORD: ${DATABASE_PASSWORD:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
PGDATABASE: ${DATABASE_NAME:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
# Odoo's bus and cron listen on this database: the app's own, as it may reach no other.
PGDATABASE_SYSTEM: ${DATABASE_NAME:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
ADMIN_EMAIL: ${ADMIN_EMAIL}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
MASTER_PASSWORD: ${MASTER_PASSWORD}
# The mail provider picked in New project, by STARTTLS on its port; with none, Odoo sends no
# mail until an outgoing mail server is added in its settings.
SMTP_HOST: ${SMTP_HOST}
SMTP_PORT: ${SMTP_PORT}
SMTP_USER: ${SMTP_USER}
SMTP_PASSWORD: ${SMTP_PASSWORD}
SMTP_FROM: ${SMTP_FROM}
# The configuration is written at every start from the lines above: one database, the
# database manager closed, the proxy's headers trusted, and a pool within the connections the
# Postgres part gives. A new database is initialised before Odoo answers anyone, with
# auth_signup, which turns free sign-up on when it is installed: so it is installed here, and
# sign-up set to "On invitation" in the step that gives Odoo's administrator, whose login Odoo
# makes "admin" with the password "admin", the email and password of the fields. A start that
# finds auth_signup not installed, or the login still "admin", does what an earlier start left
# undone.
command:
- bash
- -c
- |
set -e
{
echo "[options]"
echo "addons_path = /mnt/extra-addons"
echo "data_dir = /var/lib/odoo"
echo "http_interface = 0.0.0.0"
echo "admin_passwd = $$MASTER_PASSWORD"
echo "db_name = $$PGDATABASE"
echo "dbfilter = ^$$PGDATABASE\$$"
echo "list_db = False"
echo "proxy_mode = True"
echo "db_maxconn = 24"
echo "max_cron_threads = 1"
if [ -n "$$SMTP_HOST" ]; then
echo "smtp_server = $$SMTP_HOST"
echo "smtp_port = $$SMTP_PORT"
echo "smtp_ssl = True"
echo "smtp_user = $$SMTP_USER"
echo "smtp_password = $$SMTP_PASSWORD"
echo "email_from = $$SMTP_FROM"
fi
} > /etc/odoo/odoo.conf
wait-for-psql.py --timeout=120
installed="select 1 from ir_module_module where name = 'auth_signup' and state = 'installed'"
if [ -z "$$(psql -tAc "$$installed" 2>/dev/null)" ]; then
psql -c 'create extension if not exists pg_trgm'
odoo -d "$$PGDATABASE" -i base,auth_signup --stop-after-init --no-http
fi
admin="select u.login from res_users u join ir_model_data d on d.res_id = u.id where d.module = 'base' and d.name = 'user_admin'"
if [ "$$(psql -tAc "$$admin" 2>/dev/null)" = admin ]; then
odoo shell -d "$$PGDATABASE" --no-http <<'PYTHON'
import os
admin = env.ref('base.user_admin')
admin.write({'login': os.environ['ADMIN_EMAIL'], 'email': os.environ['ADMIN_EMAIL'], 'password': os.environ['ADMIN_PASSWORD']})
env['ir.config_parameter'].set_str('auth_signup.invitation_scope', 'b2b')
env.cr.commit()
PYTHON
fi
exec odoo
volumes:
# Attachments, sessions and the files of installed apps.
- data:/var/lib/odoo
- addons:/mnt/extra-addons
healthcheck:
test: ["CMD", "curl", "-fsS", "-o", "/dev/null", "http://127.0.0.1:8069/web/health"]
interval: 10s
timeout: 5s
retries: 30
start_period: 300s
volumes:
data:
addons:
Mehr in Produktivität
- MealieEine Rezeptverwaltung mit Essensplaner
- RyotEin Tracker für Filme, Serien, Bücher, Spiele und Workouts
- VikunjaTo-do-Listen und Projekte, mit Kanban- und Gantt-Ansicht
- ExcalidrawWhiteboard für handgezeichnete Diagramme und Skizzen, mit Live-Zusammenarbeit
- NocoDBNo-Code-Datenbank: Tabellen wie in einer Tabellenkalkulation, Formulare, Kanban-Boards und Kalender, mit API
- PLANKAKanban-Boards für Projekte und Teams, für alle in Echtzeit aktuell