Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content

App Packaging & Development

App package development & help

264 Topics 2.4k Posts

Subcategories


  • Looking to collaborate? Post here if you need help or willing to offer help.

    35 264
    35 Topics
    264 Posts
    C
    Oh yes. I’m sure I’ll need to make some tweaks. So far it’s been pretty good results across languages. It searches as it works and pulls the results into how it builds the output. I’ve yet to do any testing. I hack in the open from the very get go
  • Question about packaging express.js node apps

    Solved
    6
    1
    0 Votes
    6 Posts
    828 Views
    ?
    @murgero HAH! Oddly enough making my script specifically cd into the backend directory and running the server.js there instead of running server.js from outside that directory did it. Unsure why. Works now and I have 0.1.1 of my app released and 0.1.0 of the cloudron integration. Thanks guys!
  • LAMP 7.3 multidb app package - Multi-user?

    13
    0 Votes
    13 Posts
    2k Views
    A
    @girish I also think about this. The use case is. I need the first db and dbuser for the web app. And the second db and dbuser for view tables from the first db. This second db and db user is used for metabase report so the original db and table structure not shown for the metabase user. Another case i can think of is to make a slave db on the lamp app from external db.
  • Packaging non-cloudron docker base image?

    7
    0 Votes
    7 Posts
    851 Views
    LonkleL
    Let’s not forget about the mounting feature in 6.0 tho. ️
  • How do you guys set up cloudron straight from a `box` checkout?

    Moved
    6
    0 Votes
    6 Posts
    981 Views
    LonkleL
    @malvim Definitely update us on progress in either thread. I'll be getting my Pi in November and will join the "Cloudron on Pi" team! ️
  • Live stream on creating an app for Cloudron

    Moved
    17
    19 Votes
    17 Posts
    4k Views
    M
    great! luckily we can re-watch
  • How to deal with /app/data/ which is also part of an update

    8
    2 Votes
    8 Posts
    1k Views
    BrutalBirdieB
    Tagging @luckow since he has customer experience with Greenlight and could tell us how often a customer wants/uses to use this feature.
  • 0 Votes
    1 Posts
    145 Views
    No one has replied
  • So I screwed things up trying to run addon tests...

    Moved
    4
    0 Votes
    4 Posts
    703 Views
    M
    So, it should be obvious for someone who has worked in IT for a while like me, but... Kids, DON'T EVER run tests on your production servers. Ever!
  • Remote SQL into Cloudron's App DB for debugging purposes

    4
    0 Votes
    4 Posts
    625 Views
    LonkleL
    @nebulon said in Remote SQL into Cloudron's App DB for debugging purposes: What do you mean with Cloudron's App DB? Like the main platform database? That would be simply available on your host system only on localhost. You can access it with mysql -uroot -ppassword box (password is literally password) Of course you are on your own if you tinker with that database, changing things there might break the system. I honestly never would have figured out the password (not joking), thanks, that worked! ️ Is there only one cloudron database which is "box"?
  • Cloudron as an app inside of Cloudron

    33
    0 Votes
    33 Posts
    3k Views
    LonkleL
    Got the tool fully working on macOS. Worked like a charm after I figured out everything the tool wanted. I had to make a small commit to dashboard since macOS doesn't support the timedatectl CLI tool so I converted that command into a universal one that returns the same values on either Ubuntu and Macs. But that was literally the only thing that didn't work in the entire tool and I've already committed a change for that (locally, of course). So, thanks for your help @girish, this will allow me to build a cloudron-master Cloudron install that's, ofc, unstable - but it will be just to test my apps in before you turn your new commits into a release to make sure my apps are always compatible with your newest changes! ️
  • Cloudron CLI and NGINX Routing Weirdness

    28
    0 Votes
    28 Posts
    3k Views
    LonkleL
    @mehdi That’s what I’m thinking it must be - it’s happening with my VPN Client since that’s what I’ve been working. But the box code treats the OpenVPN Client like normal and only treats the apps connected to it special.....wait, what if the cache of the domain exists because an app was connected to my OpenVPN Client app so it’s still “somewhere” in memory even though technically that container is no longer referencing an active container. That’s a great idea and I think that may be the cause. Because it would persist reboots even, the app connected to the VPN Client attempting to connect. I’m just hoping I can get some advice on how to access Cloudron’s internal app DB via Remote SQL (like you can with individual apps) so I can debug this issue entirely. I want to release the OpenVPN Client on the store in 2021. So I gotta make sure it’s perfect - and your comment just sparked a thought process that very likely could be the problem and I was dismissing it in my head for silly reasons. Thanks. I’ll reproduce it now that I know it’s just me, and see if I can fix it. I really just needed one other person on the latest Cloudron perform those steps and have it go perfectly for me to know it was my app (and box changes).
  • Is "Bind Password" any "admin" password or is it something special

    4
    0 Votes
    4 Posts
    574 Views
    LonkleL
    Oh, that’s easy. It’s already there in the environment variables. Cool, I’ll adjust my library to include it so that the app doesn’t break when Cloudron starts enforcing the bind password (which it’s only not for 4 apps I guess - so when / if they ever support it, Cloudron will require the password). Thank you so much @mehdi. Sometimes I miss the easiest of things.
  • Test packaging the Invoice Ninja app, running into issues.

    Solved
    13
    0 Votes
    13 Posts
    1k Views
    d19dotcaD
    @nebulon Oh that's perfect, thank you so much for looking into that! Happy to hear it wasn't just me then, haha, just bad luck with the app and timing I guess, glad to know the process I was trying to test works though. Thanks again for the help!
  • External LDAP Configurations, do I need to handle them differently?

    Solved
    5
    0 Votes
    5 Posts
    754 Views
    LonkleL
    @nebulon That’s the exact answer I was hoping for but couldn’t test. Thanks again for the clarification. Trying to avoid any potential bugs even in situations where I can’t test directly so your info really helps out!
  • Need help on probably something very easy (Apache Setup)

    8
    0 Votes
    8 Posts
    1k Views
    M
    @Lonk said in Need help on probably something very easy (Apache Setup): Sometimes I ask too complex ones, sometimes too simple ones. But the way you explained everything was perfect and I got it working! ️ I feel that's usually the process of learning something new. Glad to be of help.
  • Is there a way to make LDAP mandatory on the Cloudron App Store?

    Solved
    5
    0 Votes
    5 Posts
    784 Views
    LonkleL
    @mehdi said in Is there a way to make LDAP mandatory on the Cloudron App Store?: @Lonk I'm not sure I understand the question. As long as your app has the LDAP addon, you're good. You just have to not include the optionalSSO entry in manifest https://docs.cloudron.io/custom-apps/manifest/#optionalsso You answered correctly! Thanks.
  • Why wouldn't cloudron install take into account the private registry

    8
    0 Votes
    8 Posts
    1k Views
    LonkleL
    @girish said in Why wouldn't cloudron install take into account the private registry: Ah, this is because in the code we assume that if the registry is not set in the image name, it is a public image from the docker.io registry - https://git.cloudron.io/cloudron/box/-/blob/master/src/docker.js#L112 . Currently, the Cloudron App Store images do not use have the registry name in them (since images are public). If you passed in 'lonk/xxx', code doesn't know if it pass auth info or not. I guess we could "hardcode", the username in the check as well but we also have cloudron, cloudron-dev, cloudron-staging and some other usernames in docker hub. The fix is easy though: cloudron build --set-repository and then enter docker.io/lonk/xyz (i.e include the docker.io part). Though this solution worked perfectly for me, it was not intuitive. And you did bring up an interesting point. I have two accounts on Docker Hub myself (one for production, one for staging). Could Cloudron support multiple users in the Cloudron Private Registry page? In case some of the projects end up being private? As for determining if and when to use credentials to pick up a private Docker registry based on the name of the username / base and if the script can find a public registry with that info, if not fall back to authenticated. I think that wouldn't be a hard edit for your Build Service, let me see if I can make it as a proof of concept.
  • 1 Votes
    3 Posts
    542 Views
    d19dotcaD
    @fbartels Okay I'll try that then, thanks man. Disappointed that GitLab doesn't seem to have a way to do that as other Git servers do, but oh well. I'll try with the CLI part then. Thanks again.
  • Finishing the VPN Client app's functionality

    5
    0 Votes
    5 Posts
    379 Views
    LonkleL
    @girish said in Finishing the VPN Client app's functionality: Since, async functions can get some time to get used to, what you can do as a "hack" for now is to just set a property in appdb. For example, add a line https://git.cloudron.io/cloudron/box/-/blob/master/src/appdb.js#L59 like result.networkId = container:vpncontainerappid. Then you have this properly available in the docker.js code. I think the final code will anyway read the networkId from the app table, so your code won't require much change if you do something like above. That’s perfect. I hated how hacky my solution was so I’m going to to recode it in the way you described. Doing it the way you described also allows me to add a comma-delimited list of all VPN containers thus supporting more than one VPN client running simultaneously on Cloudron (my hacky code only allows for a single OpenVPN client). I need to add the container name to the DB and the internal IP of the running vpn client container. Both are essential. Then when any user chooses to connect to the VPN then that specific app will restart and be configured to route all outgoing traffic to it. The only caveat in all of this is that though technically an unlimited amount of web apps can connect to the vpn client, a limitation is that the web apps can’t share the same exposed port as any of the others. This is gotten around in Docker by binding randomized ports to the exposed port. But when you connect to a VPN Client, you have to be running on the same IP so you lose the ability to Docker “bind.” There may be a way around this using Docker Connect -link argument. But I think the same caveat would apply and that would only solve the problem of having the app not have to do a quick restart to connect. But I’ll make sure. ️
  • App Dev label on user profile on these forums.

    5
    4 Votes
    5 Posts
    816 Views
    marcusquinnM
    @Lonk community karma