ERPNext 12.13 in an internal server requires internet connection to the outside

I’ve successfully installed v12.13.0 by using frappe_docker (using env-local) in my local machine. It runs as expected when the machine is connected to the internet. However, ERPNext doesn’t work when the connection is not available.

I’ve read ERPNext in an internal server seems to require internet connection to the outside and have asked there, but no reply so far so that I create this new topic specifically for version 12.13.

I’ve read in another discussion that ERPNext, or Frappe specifically, needs internet connection to work. However, another discussion told that ERPNext should not be like that, it should work without internet, and it has been fixed in this PR. So I am confused, what is the current state of ERPNext? It seems inconsistent throughout various versions.

Another discussion told that it can be solved by enabling developer mode, however I cannot find this, it seems the file structure has changed. Could someone help me to point it out in version 12.13 in docker?

Please help me to solve this problem. Thanks in advance.

–End of question–


FAQ

  1. Why do you want “offline mode” or “ERPNext without internet”?
    I need a “mini” ERP application for a small business in a place where internet connection is not stable, or no internet at all. Currently one computer is enough, no need for internet, even LAN.
  2. Why do you love ERPNext?
    So far, it is the best choice, it is complete (buy/purchase, sale, stock/inventory, accounting, POS, etc), it is free, open source, runs on Linux, the docker image is readily available, and the documentation is good. Frappe Books seems promising, but it is still beta, and doesn’t work (I’ve tried it). Odoo seems promising, but for now I don’t think to spend money for the accounting feature (it’s not free nor open source).
  3. Why do you need an ERP?
    Even a small business needs ERP :wink:.
  4. Why don’t use Ms Excel?
    First, I’m not a Windows user, in that case I prefer LibreOffice Calc. But in that case, it will be too many manual works, I prefer to make my own app, I’ve programming background btw. But why reinvent the wheel :laughing:. Afterall, I don’t understand accounting that much, ERPNext teaches me while I am using it. Btw, thank you ERPNext and team for teaching me accounting so far.

You can’t use developer mode in docker production images. Production images do not have bench installed, you can’t do development in those images.

Why no bench in prod? If bench+frappe+erpnext is installed the image size will reach 3+ GB.

There is bench image for frappe, erpnext, bench and custom app development https://github.com/frappe/frappe_docker/tree/develop/development

I’ve added this issue long back as “help wanted” for other scenarios https://github.com/frappe/frappe_docker/issues/353.

1 Like

Thank you for your response.

Is there any other solution? Such as modifying something in the python code, or probably waiting someone to do it in the next release of erpnext?

By the way, I couldn’t find what resource did erpnext download other than those from the localhost by inspecting the network in firefox.

While waiting for the solution, I am trying Dolibarr. Not sure if it is as good as ERPNext. Anyone wants to share their experience with Dolibarr?

I tried the develop branch and I was able to setup, run wizard and log in to desk without internet using env-local

Try v13-beta, check if it works offline

Thank you @revant_one for the response.

I’ve tried the newest develop branch of frappe_docker. I copied env-local to .env and set the ERPNext version to v13-beta as you suggested, I kept the Frappe version as edge. It was successful until the site builder exited with 0. I opened the browser and tried to log in, but I kept getting this message:

You are not connected to Internet. Retry after sometime.

The page is blank, cannot access any menu.

I’m running ERPNext version-13-beta, manually installed. It relies on some Docker containers (MariaDB, Redis) but they are homemade. My device has no ability to access other web/internet devices.

  • ERPNext did require Internet during installation (because it needed to download packages from Github and Yarn.)
  • However, once installed, ERPNext is running successfully with zero internet access.

The only time I’ve seen ERPNext behave otherwise was very briefly, in March of 2019, which you already linked to above. That issue was resolved quickly.

I have never installed or tried using the frappe_docker repo. So I cannot speak about that, and whether it requires Internet. But the 3 core ERPNext repos seems to be working correctly.

I can. Only speaking from the user side, not dev. Dolibarr is good sw, I’ve used it for 5 years and installed it in many companies, but has a very different approach to erpnext (which I am quite new to). It works and gets the job done, but it has quite an static approach to everything. I mean their workflows are rigid. Also, the manufacturing side is quite new and I believe it has a big problem with the accounting side in terms of the double entry approach. I don’t know if they are looking to solve it (for eg. double entry accounting for production processes needs intermediary accounts that I don’t see how they make the internal links between accounts and believe it can’t).

Some processes are redundant and is always thought in a way of a middle company in which many different areas participate. If this is not the case and 1 staff is doing all the input, it is tiresome to follow all the steps and you don’t seem to be able to skip them even with their workflow ‘automation’.

Their labelling is per module so it doesn’t run horizontally between them which is strange and can limit the power of tagging things.

It is VERY old in the project management side. It can work, but doesn’t have the modern tools used nowadays (eg. scrum boards, marketing funnels, etc). The CRM approach is also a bit dated.

Last, but not least, even though I am not a developer I understand that the coding is structured in a far far away time and they are preferring to keep stability (smartly) before doing a complete code actualization. They are addressing the issue, but it gives me the hunch that this will be hard to come around and this is one of the reason why I am trying erpnext. For eg. I believe erpnext to be more ‘natively’ in the web / ecommerce approach so you website is an integral part of your erp and not the other way around. Dolibarr has a wysiwyg website creation, but again seem like an add on. The low code possiblities of erpnext are also lacking in Dolibarr.

Dolibarr works and gets the job done to the users and that is why I recomend it, but believe erpnext has more potentiality in the long run.

1 Like

Is this “homemade” setup easy for a beginner? Could you explain more how to do it?

Thank you for sharing your experience Martin, it’s very helpful for me. Btw, I tried the accounting feature of Dolibarr last week, it seems ERPNext is easier for a newbie like me, although it is not so easy. Dolibarr accounting feature is still confusing for me.

I also tried iDempiere, but could not conclude yet.

@fikr4n My homemade setup is easy to explain. But can be difficult to get working correctly:

  1. Install MariaDB as a Docker container.

  2. Install each Redis database as a Docker container. There are 3 of them (cache, socketio, queue)

  3. Install ERPNext manually. Many people learn by using one of the Hitchhiker’s Guides. After you build experience, you’ll probably write your own, personal guidebook.

  4. Install Nginx, and make a reverse proxy to ERPNext.

    • I am running my Nginx in its own Docker container. This was not an easy task to solve. It required a ton of adjustments and firewall knowledge.
    • For most people, I would recommend just installing it on the web host.

There are additional components (custom firewall, Let’s Encrypt, Bench, etc.) But those 4 are the core.

Always glad to help @fikr4n . ERPNext asks you to do the accounts’ tree from the begining which on experience it is wise to do, but doesn’t happen very often as entrepreneurs normally are hands on persons focusing in what they believe is the core business (and they are quite right until to a certain point). I am just learning ERPNext and actually this week starting my first setup with accounts as the number one point, fingers crossed.

Dolibarr took the hands on approach of starting to use the system without this config. What they do is they let you put the account on a per item basis from a drop down (and some basic config for a default catch all account).

In any case I’ve always found during installations that this is the trickiest part, it tends to be thrown to the back of the pile (want it or not and for many reasons) and many times doesn’t get done. Talking about medium to small companies. Wrong approach I believe, but you are always battling with the fact that in these types of companies many times an external accounting service is hired and that service comes with their own system. Needless to say the accountant has no interest in learning a new sw. So either things get exported to spreadsheets or csv and later re imported to other accounting sw (in the best case scenario) or the accountant does it manually or in a sort or resume input per account which basically means doing the accounting manually.

Finally accounts is tricky and experience is needed. Needs to be approached with patient and an incremental improvement over time to get it tip top. External accountants don’t like sharing too much info as I assume they feel less empowered or more accountable to small entrepreneurs if these get their game to the next level and start gaining knowledge on the accounting / CFO side of businesses.

I mean no disrespect to accountants, it’s just my experience of 12 years an entrepreneur and then advising small and medium size companies for 5.

I had an idea weeks ago but I have just executed it today: connecting to wifi that actually doesn’t have internet connection. And… I can login and access ERPNext features without problems.

Seems ERPNext checks for connection status, although it’s not needed. Could anyone help me to disable this logic (connection checking)? I want to test if this hypothesis is true.

I found this PR#4698. It seems frappe does not execute the request if the browser is offline, unless in development mode. This is why I cannot use it in localhost that doesn’t connect to the internet (in production mode).

I am working on how to modify this file in my docker container. In the meantime, probably any frappe/erpnext developer wants to reconsider this checking logic? Or, to consider to add localhost checking or to add an option in settings to enable/disable this feature.

Btw I’ve successfully done this, I just run sed to modify the minified js file in /var/www/html in my Dockerfile which extends the official image for erpnext-nginx service. However it’s a hack, probably will break in the future versions of ERPNext, so that I still hope that ERPNext will add official option to disable online checking.

Thanks @revant_one and @brian_pond for responding to my question, and MartinF for the sharing.