What is the Odoo Development Stack?
The Odoo Stack is a web stack of applications built with Docker Compose, containing preconfigured Odoo ERP development and production environments, self hosted GitLab, Nginx Proxy Manager, GreenMail, and docker-mailserver SMTP server. Setting up Odoo manually can be challenging, so TryDirect's primary goal here is to simplify the deployment process on the most popular cloud platforms.
What Do You Get with This Solution?
You will receive three pre-configured VPS servers with Odoo Development and Odoo Production Environments, basic CI/CD configuration using GitLab, and development and production mail servers.
Post-Installation Steps
1. Identify the Main Server: Once the deployment is complete, you will receive a PDF file containing credentials and server IP addresses. Identify the "Main" server and its IP by checking for the installed NGINX PROXY MANAGER (NPM) on it.
2. Configure A Records: Access your domain registrar, locate your domain, and update the "A" record to point to the main server's IP address. Additionally, add CNAME records for "git," "mail," "smtp," and "dev" pointing to the same domain.
3. NGINX Proxy Manager Setup: After creating all the necessary entries, configure NPM for maintenance.
Log in to http://<YOUR_DOMAIN_NAME>:81 with the following credentials:
Login: admin@example.com
Password: changeme
4. Make sure to change your login credentials for added security, as this will enable you to obtain the SSL certificate.
5. Create a proxy host for "mail." Ensure that the "mail" host is created first.
Forward hostname: roundcube
Forward port: 80
- Check the desired checkboxes
- Enable SSL on the SSL tab.
6. Create a proxy host for "git."
Forward hostname: gitlab-ce
Forward port: 8929
(use the port specified in the PDF attachment, see GITLAB_PORT).
- Check the desired checkboxes.
- Enable SSL on the SSL tab
7. Create a proxy host for the Odoo "dev" development environment:
Forward hostname: <IP ADDRESS of the DEV server (created last)>
Forward port: 8069
- Check the desired checkboxes.
- Enable SSL on the SSL tab
8. Create a proxy host for the Odoo "prod" production environment. NOTICE: DO NOT USE A SUBDOMAIN IN DOMAIN NAMES JUST USE YOUR ROOT DOMAIN NAME.
Forward hostname: <IP ADDRESS of the PROD server (created last)>
Forward port: 8069
- Check the desired checkboxes.
- Enable SSL on the SSL tab.
9. When all the above steps are complete, access the main server and create a symlink for certificates for the mail server.Access the server via SSH.
10. Navigate to the certificates directory using the command:
cd /etc/letsencrypt/live
11. Create a symlink:
ln -s npm-1 <YOUR_DOMAIN_NAME>
12. Restart the mail server using the command:
docker restart mailserver
13. Now you can log in to your mail server:
Site: mail.<YOUR_DOMAIN_NAME>
Login: MAIL ADMIN (use the login credentials from the attached PDF to email).
Password: MAIL ADMIN PASSWORD (use the password from the attached PDF to email).
14. For creating new users, execute the following command on the server where the symlink was created:
docker exec -ti mailserver setup email add
15. Configure SPF Record: Return to your domain registrar and add a new TXT record with the following content:
v=spf1 mx ip4:"ip of nginx proxy manager" -all
16. Configure DKIM: Generate DKIM using the following command:
docker exec -it
mailserver /bin/bash -c "./setup.sh config dkim"
Note: you can change keysize to 512, 1024 or 2048 if necessary, by adding an argument to command for example:
docker exec -it
mailserver /bin/bash -c "./setup.sh config dkim
keysize 2048"
You can find DKIM record in mail.txt file:
cat /root/roundcube_dms/mailserver/docker-data/dms/config/opendkim/keys/<YOUR_DOMAIN_NAME>/mail.txt
Copy the content between the double quotes ( ... ) after p= in the TXT record value. Join into a single line and copy it again.
You'll need to restart the Docker Mailserver container for the changes to take effect with this command:
docker restart
mailserver
17. Create a New TXT Record for DKIM: Create a new TXT record for DKIM, and place the copied content right after p= in the format:
v=DKIM1; h=sha256; k=rsa; p=COPIED_CONTENT_HERE
Ensure that you save these configurations correctly, and don't forget to replace placeholders with your actual data.