Making Semi-Permanant edits to application SourceCode
-
I am interested in being able to override the source code in running apps for a number of reasons.
Reason 1. I Found a bug in N8N and need to test the code edit before I submit a PR. Maybe it is just a one line change but the ability to slip in a custom hot fix would be super awesome!
Reason 2. Also an N8N example, but hard customizations may be good for me but won't necessarily get approved. You know.. changing the way an API works etc. How awesome would it be to have some granular control over the code running on your server?
Idea... Would it be possible to overwrite the source location to my own github fork? Then I would be manually pulling in new updates as opposed to relying on whatever the community publishes.
Most Awesome... would be to have an override folder where I could re-define a specific page while maintaining the normal update system in the background.
-
Hi @roofboard,
apps on Cloudron are usually run in read-only mode, which makes code changes impossible. If its for debugging you could switch the app into debug mode (which would make the files in the container writeable, but also does not start the entrypoint script automatically) to make a few tests.
If you want to permanently modify files, it easier however to fork the original code of the app. The code of the n8n app can be found at https://git.cloudron.io/cloudron/n8n-app.
-
@fbartels
I see, so...
Say I went with plan B, What are the steps to getting that custom package running on cloudron? Can I change the source location for an already installed package? Or is the way to install it separately as its own thing. If soo... how? -
@roofboard well basically. You need the cloudron cli as documented here and a git clone of the repo i linked before.
Then in the clone you run
cloudron build
followed bycloudron update
. Along these commands you need to specify the name of your docker image (which requires a docker registry, which could be the docker hub, on Cloudron itself or somewhere else).You can update an existing installation with a custom fork, and with the right parameters also bring it back to the official app.
-