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

227 Topics 2.2k Posts

Subcategories


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

    31 Topics
    250 Posts
    JOduMonTJ

    @marcusquinn said in Poll: Freelance Availability for Retainers:

    I feel like all this should have been done 20 years ago and Sys Admin been a professional rate expectation like any other profession - but only Microsoft seem to have cracked that, at great cost to freedoms.

    RedHat and SUSE also cracked it..

    So how it goes ?
    I'm also in IT since forever; start programming at 8 years old in BASIC then building network with IPX/SPX, ...
    anyway
    I also had this kind of idea, like where old Geek back wise kids to gain confidence and clients;
    it was in 2020 when the C.H.A.T.O.N.S. started.

  • Addon variables erased after restart?

    Solved
    3
    0 Votes
    3 Posts
    204 Views
    ?

    @girish hah, I didn’t realize there was an update! Thanks!!! I’m glad I wasn’t crazy there and it was a platform issue. I redid my package like 4 times thinking I was overriding the environment vars somehow

  • 2 Votes
    11 Posts
    680 Views
    murgeroM

    @jodumont If you run the node file for cloudron directly (add it to your PATH) you don't need the set-executionpolicy bit. Node is separate from powershell and as such it can run without that.

  • PMS and mysql

    Solved
    3
    0 Votes
    3 Posts
    270 Views
    ultravioletU

    @nebulon Thanks thought that might be the answer.

  • Create an SQL dump from a cloudron app postgres db

    Solved
    3
    0 Votes
    3 Posts
    296 Views
    ruihildtR

    Thanks, that's perfect.

  • 1 Votes
    6 Posts
    487 Views
    girishG

    @jimcavoli I think that makes sense. Let me see if I can get the recvmail addon working again, should be straightforward. For your suggestion of having a "selector" in the email UI, we did exactly that for sendmail addon in the previous release. So, we can do the same for recvmail as well I guess. Let me investigate.

  • Custom Lamp App Cloudron Build Error

    Moved Solved
    15
    0 Votes
    15 Posts
    985 Views
    arshsahzadA

    @girish Now It's working, thanks for your help

  • Addon request: blob storage (s3)

    13
    4 Votes
    13 Posts
    713 Views
    infogulchI

    @moocloud_matt As soon as someone comes in reporting a real case that their NIC is saturated and it's slowing down their server I'd be interested in pursuing a solution. I've never seen such a real case on these forums (though I may just be misinformed) so I'd have to tilt towards YAGNI until one appears.

    Object storage is not magic, it's just data like everything else. If it's just used to serve file attachments for an app with 25 users I wouldn't expect it to be a bottleneck.

  • Run docker service in Docker container

    6
    0 Votes
    6 Posts
    460 Views
    murgeroM

    @roru2k20 I have a package already that has code-server, would you like to get access to the repo?

  • Pyston speeds up Python

    5
    0 Votes
    5 Posts
    318 Views
    MooCloud_MattM

    @atridad
    it's not so easy, you need to compile all the C extensions modules that you are using. For example, are not compatible libraries because there's no way to easily compile them are tensorflow, pytorch.

    But in generaly Yes is compatible with all the python code because it's a fork of its default interpreter/compiler CPython.

  • 0 Votes
    1 Posts
    149 Views
    No one has replied
  • This topic is deleted!

    2
    0 Votes
    2 Posts
    6 Views
  • Zabbix - Appdev Log

    28
    0 Votes
    28 Posts
    1k Views
    BrutalBirdieB

    @jasimkp expected since I never finished packaging the app fully.

    So right now the zabbix app is not functional.

    ps: please use code blocks for copy-pasting logs.

    121795:20210614:100301.800 Starting Zabbix Server. Zabbix 5.4.1 (revision ecb5b3378c). 121795:20210614:100301.800 ****** Enabled features ****** 121795:20210614:100301.800 SNMP monitoring: YES 121795:20210614:100301.800 IPMI monitoring: YES 121795:20210614:100301.800 Web monitoring: YES 121795:20210614:100301.800 VMware monitoring: YES 121795:20210614:100301.800 SMTP authentication: YES 121795:20210614:100301.800 ODBC: YES 121795:20210614:100301.800 SSH support: YES 121795:20210614:100301.800 IPv6 support: YES 121795:20210614:100301.800 TLS support: YES 121795:20210614:100301.800 ****************************** 121795:20210614:100301.801 using configuration file: /etc/zabbix/zabbix_server.conf 121795:20210614:100301.831 current database version (mandatory/optional): 05040000/05040000 121795:20210614:100301.831 required mandatory version: 05040000 121795:20210614:100301.864 server #0 started [main process] 121796:20210614:100301.865 server #1 started [configuration syncer #1] 121797:20210614:100301.971 server #2 started [housekeeper #1] 121798:20210614:100301.972 server #3 started [timer #1] 121799:20210614:100301.973 server #4 started [http poller #1] 121801:20210614:100301.973 server #6 started [history syncer #1] 121800:20210614:100301.974 server #5 started [discoverer #1] 121808:20210614:100301.978 server #13 started [task manager #1] 121810:20210614:100301.978 server #15 started [poller #2] 121812:20210614:100301.980 server #17 started [poller #4] 121814:20210614:100301.982 server #19 started [unreachable poller #1] 121816:20210614:100301.983 server #21 started [trapper #2] 121818:20210614:100301.984 server #23 started [trapper #4] 121819:20210614:100301.986 server #24 started [trapper #5] 121821:20210614:100301.987 server #26 started [alert manager #1] 121823:20210614:100301.987 server #28 started [alerter #2] 121824:20210614:100301.988 server #29 started [alerter #3] 121831:20210614:100301.991 server #35 started [lld worker #1] 121802:20210614:100301.992 server #7 started [history syncer #2] 121804:20210614:100301.993 server #9 started [history syncer #4] 121805:20210614:100301.993 server #10 started [escalator #1] 121806:20210614:100301.994 server #11 started [proxy poller #1] 121807:20210614:100301.994 server #12 started [self-monitoring #1] 121803:20210614:100301.994 server #8 started [history syncer #3] 121809:20210614:100301.995 server #14 started [poller #1] 121811:20210614:100301.997 server #16 started [poller #3] 121813:20210614:100301.998 server #18 started [poller #5] 121815:20210614:100301.999 server #20 started [trapper #1] 121817:20210614:100302.000 server #22 started [trapper #3] 121820:20210614:100302.001 server #25 started [icmp pinger #1] 121822:20210614:100302.001 server #27 started [alerter #1] 121825:20210614:100302.002 server #30 started [preprocessing manager #1] 121830:20210614:100302.003 server #34 started [lld manager #1] 121833:20210614:100302.003 server #36 started [lld worker #2] 121835:20210614:100302.003 server #38 started [history poller #1] 121839:20210614:100302.004 server #40 started [history poller #3] 121834:20210614:100302.008 server #37 started [alert syncer #1] 121838:20210614:100302.008 server #39 started [history poller #2] 121842:20210614:100302.010 server #41 started [history poller #4] 121843:20210614:100302.010 server #42 started [history poller #5] 121844:20210614:100302.011 server #43 started [availability manager #1] 121810:20210614:100302.475 enabling Zabbix agent checks on host "Zabbix server": interface became available 121801:20210614:100353.012 item "Zabbix server:zabbix[process,ipmi poller,avg,busy]" became not supported: No "ipmi poller" processes started. 121801:20210614:100353.012 item "Zabbix server:zabbix[process,java poller,avg,busy]" became not supported: No "java poller" processes started. 121795:20210614:100359.163 Got signal [signal:15(SIGTERM),sender_pid:123063,sender_uid:0,reason:0]. Exiting ... 121801:20210614:100359.163 syncing history data in progress... 121801:20210614:100359.166 syncing history data done 121795:20210614:100401.190 syncing trend data... 121795:20210614:100401.214 syncing trend data done 121795:20210614:100401.214 Zabbix Server stopped. Zabbix 5.4.1 (revision ecb5b3378c).
  • Custom app container startup arguments

    17
    0 Votes
    17 Posts
    919 Views
    fbartelsF

    @girish said in Custom app container startup arguments:

    these variables can then be configured by UI ? Also, I guess you are expecting these variables to become exposed as environment variables to the app?

    I like the way this is implemented in the univention app center. The format of the settings (there they use the ini format) is explained in https://docs.software-univention.de/app-provider-5.0.html#app-settings:reference. It defines different types of settings and allows to template default values (even custom drop downs). The values are then stored in a file in the container and scripts can be triggered inside and outside of the container to react on changes. Outside is probably not necessary here.

  • Help needed to package app

    15
    0 Votes
    15 Posts
    844 Views
    XCSX

    @marcusquinn Thanks a lot for the comments, really useful!

    I have actually received several similar suggestions regarding the userTrack name. I thought about it for a long time, but for now I have no plans of changing it. A big reason is that when people are Googling for "user tracking" they will stumble upon userTrack, which is one of the most privacy-friendly solutions for "tracking" users (self-hosted, cookieless, hashed IPs, multiple privacy settings, etc.). This is in some way similar to getting "earthIsFlat dot com" and posting on it content that proves the earth is not flat.

    Another reason why I am still using the name is because it's self-hosted, so the web administrator can actually name the user-facing scripts whatever he wants.

    I agree that a more user-friendly name could help, but currently the existing brand power and SEO benefits make this change unlikely to happen.

    I highly recommend looking at the EspoCRM, Wordpress, Matomo open-source, premium add-ons business-models

    I have considered and tried many pricing models over the years. Working on userTrack for over 9 years I have also always watched other similar platforms and their business model and always debated whether going open-source would help or kill the project. For example, Matomo is really awesome and it's open-source, but their focus is NOT on the open-source part. Being a business, their focus is to attract users to their premium offering so their open-source version drops in quality/features (some core features are only available for the cloud plans for a very high cost).

    Open-source is not free of cost for users, they pay you with their time, testing and feedback

    This is true, but keep in mind that paying users also pay with their time, testing and feedback too.

    Don't cut off that source of improvement, just get better at managing a public Git*** repo and issues, embrace the community spirit, and I'm sure you will have great success - including here

    Doing open-source well is REALLY hard. Take Matomo for example, which is a huge organization, yet their repo has thousands of open issues and tens of unmerged Pull Requests. Although this seems like good activity, in the end I feel like it also means many human-hours of effort have been wasted trying to create, analyze, accept/reject all those suggestions. All this while the user-facing progress is overall slow and the platform starts to feel outdated.

    I also recommend watching

    .

    I am not saying in any way that userTrack will never ever be open-sourced, but for my current goals with the project this is currently a no-go (working on userTrack as a shared/paid-source project for over 9 years has worked really well and most of the customers are extremely happy with the product). I want to mention that it's not about the money, it's mostly that switching userTrack to open-source would move my focus away from my envisioned end-goal for the product and self-hosting ecosystem.

    I wouldn't consider anything with compiled or obfuscated code in though - and would spend 5 times the amount to have it decompiled and published

    userTrack's source-code was actually entirely unobfuscated and visible up until v3 when I rewrote the entire application in TypeScript and React. Because those technologies require a building process, which means dev tools and maintaining a dev documentation, I realized that I wouldn't be able to provide a proper developer experience while focusing on improving the product. My goal now is to create an awesome product that just works, without having to fiddle with code (so the target audience also includes non-programmers).

    That being said, the server side (PHP, MySQL) and tracking (JS tracker) source code of userTrack is completely visible and unobfuscated. The only obfuscated part is the JS of the interface (dashboard UI) only because changing it would require me to provide numerous extra development tools and write extensive documentation. My plan is to soon add a way to extend userTrack (eg. via plugins), so you can still customize the dashboard if you want but without having to learn and setup a complex dev environment.

    Thanks again a lot for sharing your opinions, it's really useful to know how different communities have different opinions on how a product should be in order to be useful for them.

  • 0 Votes
    7 Posts
    352 Views
    jeauJ

    @girish yes 👍

  • 1 Votes
    10 Posts
    439 Views
    robiR

    As we get Sysbox into Cloudron as a default runc, that will enable many more of these use cases.

  • Cross-app dependencies

    5
    0 Votes
    5 Posts
    229 Views
    infogulchI

    we usually find that these extensions are usually very specific and sometimes it is way more work to write a general system than just hard coding it

    One of the things I recognized right away about the way you guys develop Cloudron is a laser focus on implementing practical, minimal, incremental solutions instead of chasing maximum general power right out of the gate. It leads to a more stable system that I don't have to constantly fuss over -- thank you for that! I agree that this is probably the right approach for matrix plugins as well, at least for now.

    I think the way issue 569 was resolved is a good example of this.

    I think it makes more sense to continue the matrix discussion on that thread, which I just replied to. Thanks for taking the time to read and respond. 🙂

  • Visual Studio Code App

    Locked
    2
    3 Votes
    2 Posts
    383 Views
    girishG

    Moved the discussion to https://forum.cloudron.io/topic/1709/code-server-vs-code-online

  • Lunatic

    1
    1 Votes
    1 Posts
    166 Views
    No one has replied
  • Cross-App Shared Storage and Jupyter

    2
    1 Votes
    2 Posts
    133 Views
    girishG

    First, can you upload the jupyter app info to https://git.cloudron.io/cloudron? It seems to be missing.

    The name is a bit different since it's based on the upstream hub project - https://git.cloudron.io/cloudron/jupyterhub-app

    Are the rest of the questions somehow related to Jupyter? I will try my best to answer them but I am missing the context. If you can give me the use case for each of the questions below, I can help further.

    Is there some good way to just flag certain directories as to be preserved?

    Only /app/data is preserved. Even symlinking won't work since the backup logic does not follow symlinks. So far, we are yet to encounter an app that cannot be covered with a single directory.

    Can we create our own addons? How hard would that be?

    addons are part of the platform. they are not hard at all, they are just docker containers with a "service" API. But they require quite a bit of work and testing. What new addon are you thinking of?

    Could a modified version of "proxyAuth" let you spin up separate per-user instances of an app?

    I think I understand what you are asking for. For example, there are some "single user" apps. Would be nice to somehow spin multiple instances of these "single user" apps. IMO, would be best to somehow make those apps multi-user 😉 Given most of the apps are opensource, time can be spent contributing upstream. A workaround is of course install an instance of an app for each user...

    Is cross-app file sharing a thing? Something like a shared mounted drive?

    See Voilumes. You can create a directory on the server and create a volume. Then this volume is mounted into any number of apps you want.