Chevereto
-
Dear all,
I have crafted the official Docker provisioning for Chevereto. The images are available here: https://hub.docker.com/r/chevereto/chevereto
These provide httpd-php and php-fpm images with a bootstrap script that runs on container creation, so it installs the software once and just spawn services from there.
Let me know if this helps to get Chevereto on Cloudron.
-
@rodber I've just finished the very basic initial Cloudron app package for it. It still does not pre-provision an admin account and it has to symlink a few folders into the writeable directories, this is based purely on what the app complained about, I dont' really know if, why and when they have to be written by the app https://git.cloudron.io/cloudron/cheveretofree-app/-/blob/master/Dockerfile#L32
If you want to test this, just clone that repo and run
cloudron build && cloudron install
essentially. Well of course only if you have the cloudron cli setupSince in Cloudron the database only becomes active when the app is initialized but we still want all static assets to be part of the image, I wasn't quite sure how to use the installer.php script only for the initial admin setup.
-
@nebulon my bootstrap script gets you until the install form where the user will be prompt under HTTP to submit account details to proceed with the installation. It doesn't carry the installation as that process has account limitations (password length enforcement, forbidden usernames) but if you want to automate that bit you could simply detect the first run based on the container placeholder and execute the submitInstall installer command.
The installation at that step is just build the database, it doesn't touch the filesystem. As you may noticed, I left the installer.php available to use it as tooling on top of the images look at /chevereto folder in the container.
I suggest you to implement Chevereto on Cloudron using/forking my Docker images as I will constantly maintaining it, specially in regards to the PHP provisioning. That's why I provide separately Apache and PHP-FPM images, so you stop worrying about PHP regardless which flavor you like better. Use
php-fpm
if you want to handle the server, simply plug the process. Use Apache HTTP if you want to rely inmod_php
.Regarding your implementation, I can't recommend to use linking for the
app/settings.php
file, I recommend you to use env variables for that purpose. If user needs to sneak a setting it should be made by overriding the env variables, not working on the same file used for app/settings.php dist. If the user needs to add something at "settings level" it should be made with a file made for that sole purpose. -
Hey there, I've some great news.
We now have a container builder repository, here: https://github.com/chevereto/container-builder
What it does is that it uses github infra to build your own Chevereto paid edition image and upload it to the container registry of your choice. From there you can run your Chevereto image anywhere.
Does Cloudron allow users to provide their own container images? If that's feasible our paid users could use your panel
Let me know if you want more details about this.
-
@rodber thanks for sharing this. Cloudron does support to install custom images, but this is currently more targeted at app developers during package development and testing. So the flow is not ideal for regular users.
I haven't looked in more detail what is involved to get the paid version, is the paid version a different code-base or just a matter of supplying a license in a specific file?
If it is the latter, then we can likely build the package in a way that the user can provide a purchased license, which would also allow for easier migration from free to paid without having to migrate previously added pictures. -
@nebulon paid version is a different code base but it works with the same system requirements. One way to provide it is by each user creating its own image.
The alternative is this, the bootstrap version: https://github.com/chevereto/docker which you can upgrade, the application is just mapped to a local bind dir.
-
I think that I will just write a guide on my docs on how to deploy the custom Chevereto image. I feel that my intervention here is going nowhere... I just noticed that I went from bootstrap to container registry and now again we are talking about bootstrap.
I've the code and will, you know where to reach me. I'm always available.
Thanks anyway.
-
@rodber sorry for this taking so long, but I feel we are a bit talking past each other.
To take a step back, on Cloudron all apps run in a read-only filesystem, the app code has to be provided in an immutable image. So an app package must contain all the code already and cannot download or install itself during first run. There is however a read/write folder provided at /app/data mount point if the app needs this. Sometimes those are config files, data or also plugins installed later.
Since you mentioned that both free and paid versions are a different code base, then they also would have to be different app packages currently.
It is not quite clear to me unfortunately what the implications of the various mentioned methods bootstrap/container-builder/custom image/container registry mean in this context. Packages for our users, once published would reside in our company namespace at docker.io to ensure consistency and availability for as long as we support an app.
I will take another look at where we stand currently for the free version as a start residing at https://git.cloudron.io/cloudron/cheveretofree-app
-
@nebulon I decided to try out Chevereto using self-hosted Caprover.
I noticed this announcement :
We are deeply sorry to inform that we will stop maintaining Chevereto-Free on 2021-12-31 and we won't produce any more releases for it.
We are very sad for doing this, but kindly note that we are just a small 2-person team and we can't afford to gift this edition any longer. We are now focused exclusively in our paid edition, thanks for your support.
Many thanks for using our software! Hope you enjoyed the experience.
Totally understand and respect the decision by Chevereto team.
However I think this makes it a poor candidate for adding to Cloudron. Although Chevereto is very nice app and I was excited to see this in AppWishlist, no-one wants a frozen version. -
@timconsidine actually depends on their licensing model. We are not at all against paid apps delivered through Cloudron. I understand the need to make a living as a small team pouring your time into a great project. Although in this case I guess, the packaging initiative should come from the upstream app from now on. Of course we are happy to assist, it still looks like a solid good app
-
Well, it seems that I can stir this a little bit.
By when I participated here I had this dilemma regarding editions in Chevereto, that's all over as since 2022-11-30 I've been pushing Open Source Chevereto edition. Here the very first release: https://github.com/chevereto/chevereto/releases/tag/4.0.5 (you can learn more here: https://rodolfoberrios.com/2022/12/01/chevereto-goes-free/)
I also have this container registry with about 28K downloads for Chevereto: https://github.com/chevereto/chevereto/pkgs/container/chevereto and I recently started this DockerHub mirror here: https://hub.docker.com/r/chevereto/chevereto
Chevereto free edition is now available on Pikapods, Vultr Marketplace, DigitalOcean Marketplace and more. I think that it will be a great addition to Cloudron, I mean, come on.
-
And there is an online demo: https://demo.chevereto.com/
And a Docker: https://github.com/chevereto -
-
@rodber thanks for making Chevereto! It'd be great to have it on Cloudron.
I just read your blog post https://rodolfoberrios.com/2022/12/01/chevereto-goes-free/
I note that:
Chevereto free edition is for personal usage, this edition doesn't include guest uploads, external storage, spam fight, multi-user, moderation tools and anything that could suit a non-personal service provisioning.
Fair enough.
Are all those restrictions removed/ features added if one purchases at self-hosting licence for $36/year? I think that is probably the case, but I'm not sure as it's a little unclear.
Thanks for clarifying!
-
Well, it seems that I can stir this a little bit.
By when I participated here I had this dilemma regarding editions in Chevereto, that's all over as since 2022-11-30 I've been pushing Open Source Chevereto edition. Here the very first release: https://github.com/chevereto/chevereto/releases/tag/4.0.5 (you can learn more here: https://rodolfoberrios.com/2022/12/01/chevereto-goes-free/)
I also have this container registry with about 28K downloads for Chevereto: https://github.com/chevereto/chevereto/pkgs/container/chevereto and I recently started this DockerHub mirror here: https://hub.docker.com/r/chevereto/chevereto
Chevereto free edition is now available on Pikapods, Vultr Marketplace, DigitalOcean Marketplace and more. I think that it will be a great addition to Cloudron, I mean, come on.
Just some feedback: This is the first time I'm finding out about your software and it looks really nice, might even have a use case for it!
However: reading through some of these comments here, then your website in the pricing, faq and blog section, trying to find out what in the end the differences between the free and pro plan are, I eventually found out on the GitHub page. Might want to just copy and paste that list on the website lol
-
@jdaviescoates Yes, that's right. You get access to all extensive features, check the list here: https://chevereto.com/features#list
Chevereto has two editions (Free and Pro) where Pro has all features included. There may be more editions in the future, like a "Hobby" tier or even an "Enterprise" edition with extra stuff like SSO/LDAP. Will run a survey later this year to determine that offering.
-
@andreasdueren Sure, that's totally needed. The differences aren't listed on the website yet and the table you saw at GitHub appeared just two days ago: https://github.com/chevereto/chevereto/commit/c43666f8d51c4c26c03b41ee1f68f978b72edc90
I didn't add the comparison table before because I had the intention to let users to try the software on their own and explore it, but I noticed that is so feature rich that such process may take months and it is annoying when you are on a rush.
Thanks for the feedback.
-
This is great news @rodber ! We can look into providing a package. I see that there are two distinct packages for paid and free https://v4-docs.chevereto.com/application/installing/installation.html is there a way to migrate somehow between them or would we have to provide two app packages for both editions?
Also is there any description on how to use version pinned packages in a basic LAMP environment?
Further I guess our package startup script would use the cli installer somehow to preconfigure the app with say database creds and all, or is it sufficient to configure the env properly and run some extra steps like database migration? -
Hi @nebulon great to see you here.
Ideally you will want to have two container images, one for each edition, because the software packages are different. An alternative could be to provision a special license for Cloudron from which you can build the image and make it available only for your network. I could also provide a private container registry and let the user deal with licensing directly from us, but to move in that direction I need to see some traction first.
Unless you are up to deal with the app layer persistence in which case the process can be made directly from the Chevereto dashboard. For non-docker based provisioning the user can enter the key directly and the system will download and extract the Pro edition filesystem:
I can workaround a lot here, I'm the factory after all.
For basic LAMP there's no special requirements, you require a bunch of libs (imagick, ffmpeg, etc) and from there is just bind the website to the public path. To learn about the HTTP server requirements you can check from line 6: https://github.com/chevereto/docker/blob/4.1/Dockerfile#L6
Perhaps for video uploading you will require to increase the post limits, the usual stuff.
-
@rodber Having multiple packages is fine but in some ways this is your choice to make (we follow whatever the upstream app requires).
It's fine if both the editions are different but still data compatible. If the editions are data compatible, maybe it makes sense to have a single package that has the code for both. This way a user starts with the free edition. Then later when they provide a license the package can switch to the paid edition. This is how we do it for apps like mattermost which have the team edition and enterprise in one package (in mattermost case, the data is compatible and they have documented how to migrate between editions).
I think the important thing for cloudron package itself is: we need to be able to pin the app to a specific version. This, in turn, means that the app source needs to be "available" at build time and not at install time.