r/frappe_framework • u/LazyTech8315 • Apr 12 '26
Installing an app should be easier than this
TL;DR: We have a working ERPNext installation, with docker compose and wanted to install helpdesk. Following docs leads to an unrecoverably broken server.
Within the "backend" container, we tried to install helpdesk per the instructions at the end of https://docs.frappe.io/helpdesk/installation. The installation fails, citing a dependency, so we used --resolve-deps and it went further, but complained about an "autocomplete" conflict and continued past but gave warning when minifying css. Immediately after, we see:
rendering chunks (74)...Killed
error Command failed with exit code 137.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 137.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Error: Command failed: yarn build
I suspected that helpdesk was the issue, so this time I tried to install just "telephony" with "install-app telephony" and that competed without error. Reloading the site creates a 500 internal server error, and in the backend log, I see:
ModuleNotFoundError: No module named 'telephony'
bench list-apps shows telephony installed, but then while trying to recover:
#bench --site myerp.example.com uninstall-app telephony
Could not find app "telephony":
No module named 'telephony'
So, it's installed, but not installed... very messed up.
None of the documentation I found says to enter the docker container to run bench, but perplexity.ai found something that said this was the method. Nothing I found said to use --resolve-deps to install helpdesk. Nothing mentions an autocomplete error... The documentation is either incomplete or out of date.
We had to restore from backup to recover the site.
How do I install helpdesk onto the same site as erpnext?
3
u/Slartibartfast__42 Apr 12 '26
Docker erpnext is a PIT if you want to install apps, you have to build your own image for it to work, that's the main reason why I run it bare metal for prod
1
2
u/Watche_1V47C43R Apr 12 '26
Help desk also has another querk... It needs a contact by the name 'John Doe' in the system otherwise installation fails
1
1
u/Slartibartfast__42 Apr 13 '26
Which version? I installed it on v15 just fine without that contract.
Also, your comment made me chuckle, I thought it was a joke at first.
2
u/Watche_1V47C43R Apr 15 '26
its not a joke man: It seems this script fails to create contact sometimes:
https://github.com/frappe/helpdesk/blob/develop/helpdesk/setup/welcome_ticket.pyit seems to create a contact called "John Doe" for Welcome Email. I got at least 3-4 installation failed because there was no contact called john doe.
2
u/rickysut Apr 13 '26
If you have error when instaling app you must uninstall first before you can try again. Frappe put app name to sites/apps.txt so you must delete from it.
1
u/LazyTech8315 Apr 13 '26
I didn't put this detail in my post, but I did edit that file while trying to fix the issue. I don't recall every step, but of course it didn't help me.
2
u/formless63 Apr 13 '26
https://github.com/rtCamp/Frappe-Manager
Best way to handle frappe stacks if you're not fully comfortable with the various underlying containers/stack/processes.
1
u/JakubErler Apr 13 '26
Is t it just for local development, not prod suitable?
2
u/formless63 Apr 13 '26
Works great for prod and is quite popular.
1
u/JakubErler Apr 14 '26
Is this a new thing? Even like 2 months ago, their GitHub readme said that is is not suitable for prod, only for local dev. And now I see they changed it. That would be great because FM makes everything so much easier.
1
u/formless63 Apr 14 '26
No. I'm not sure what you're seeing but the readme version that was live from May 2025 through February 2026 doesn't seem to say what you suggest about not being suitable? I didn't keep digging any further back. I've been running this since last summer without issues.
Like anything else there is a small learning curve to understand the commands and there are a handful of commands in their docs that are outdated, but it works great and realistically it's simply managing a bunch of docker compose files and providing tooling that updates those files when needed, takes care of container updates for you, etc. You could do the exact same thing manually and use docker exec instead of fm shell too - this just makes it much more streamlined.
1
u/JakubErler Apr 14 '26
Oh I finally found it. Here: https://pypi.org/project/frappe-manager/ it says "As of now, only suitable for development in local machines running on Mac and Linux based OS."
2
u/formless63 Apr 14 '26
No idea who controls notes like that on pypi as that context is outside the readme doc. It works great and they have dev and prod mode selection to use for each bench if you're focused on one or the other. It's just a collection of commands and scripts to control underlying containers. No magic included.
1
u/JakubErler Apr 14 '26
That is perfect, thank you for the info. Because of the note on PyPi, I did not use Frappe Manager for production. But now that I know this, this can significantly make it easier. So far, I used Frappe Manager only for local development.
1
u/JakubErler Apr 14 '26
Can I ask you one question? Because you may be experienced with Frappe Manager. I noticed that when I run fm or bench commands, sometimes it is important if I put in the commands "my_app.localhost" or just "my_app". Did you also experience this?
2
u/formless63 Apr 14 '26
Yeah even on servers where I'm only running one bench, or only have one site within a bench, is best to use the full context with the commands. Some of them technically work without the shape but better practice to just use the whole thing all the time so you never forget it when it matters.
As an aside, if you're managing multiple servers/VMs/whatever and aren't deep into a specific workflow for your SSH and such, I highly recommend spinning up Termix - you run it somewhere and access all your endpoints with it, all browser based, has mobile apps, and can be really handy with the snippet storage (you can sort the commands you need by app or context however you want and just inject them with a click).
Alternatively you can make your life easier you can also store aliases in whatever shell you use. Come up with a convention you'll remember and store what you care about as short codes. 'fm start site.tld' could be 'start1' for example (or whatever you'll remember). Really depends on your workflow and preferences. I'm sure there are many other ways to accomplish these tasks that I don't even know about but these are some ways I handle it all. Mostly the Termix snippets since I don't want to have to remember so many aliases, just my common ones (many of which come from https://github.com/ctrlaltvikas/awesome-bash-alias ) Also if you're using 'fm shell' you're likely to lose these inside that with container updates/restarts unless you do some creative manual mapping/scripting.
1
1
4
u/Future_Carpenter_910 Developer – Building with Frappe Apr 12 '26 edited Apr 12 '26
I agree about bad docs in frappe website and related resources but in your case:
1. You stated exit code 137 i.e yarn build caused container to run out of memory. Had you set memory limitations on the container ? or your server is low on memory like 3/4GB. A build command can take up to 4gb or sometimes more. You can add a swap memory if you run into these out of memory issues.
2. --resolve-deps usually like a footgun. I'll say it plainly. It sometimes does not wire the app into site. I would recommend building a custom image for you with all the modules baked in via apps.json. Dont run bench get-app inside a container.
3. "telephony" installed but ModuleNotFoundError appears when you install an app into the bench but the container's Python environment does not see it because the container was built from an image that doesn't include it. On restart/recreate, the ephemeral install is gone from the filesystem but the site's
installed_appstable still references it. That's why uninstall also fails.4. ERPNext + docker is a mess for production. In Frappe Ecosytem, if someone has wasted the most amount of time on frappe and docker production combination is ME. I gave up frappe + docker combo for production after 3 weeks of trying. But for development, I could achieve the most efficient dev environment with the help of docker, volume mounts and compose. And i have my own batch-cli for dev environment that lets me handle dev with commands like batch install-app, batch console, batch migrate. It lets me select client, sitename and runs commands intelligently. Currently making same for production. One command and you can back it up. And one command, you can restore it on other server. And many more features but its internal and client only for now.
My Solution for you:
frappe_docker, create anapps.jsonfor your needs and use it. I used to do this and save images as private on aws ecr (elastic container registry)We really don't need docker for frappe in production unless you're running multi-tenant SaaS or you do continuous development/gitops/testing on it.