[HN Gopher] CapRover: Build your own PaaS ___________________________________________________________________ CapRover: Build your own PaaS Author : vincent_s Score : 382 points Date : 2020-06-09 09:28 UTC (13 hours ago) (HTM) web link (caprover.com) (TXT) w3m dump (caprover.com) | bovermyer wrote: | I like the idea, but I will not support the use of nginx. | jchook wrote: | Care to elaborate on this? Which http server do you use? | CSMastermind wrote: | HAProxy is what we switched over to at work. I'm not informed | enough to give you the pros and cons of each. | bovermyer wrote: | See my other comment for my reasoning. | | On the second point, I vary between Caddy and Traefik, | depending on the use case. | naavis wrote: | Is there something wrong with nginx? | bovermyer wrote: | I can't trust something that may now be under the control of | the Russian state. | goliatone wrote: | Would you mind to elaborate? I haven't heard anything about | Nginx being "compromised" before | dubcanada wrote: | But you're fine with Caddy or traefik "that may now be | under the control of the United States"? | | All 3 of these are open source on github with widely used | code bases that are free to view and read as you want. | bovermyer wrote: | The US government hasn't raided the homes of the primary | developers of those, though. | | I'll admit that the open source nature limits the damage | a state actor can do, though. | dubcanada wrote: | That you know of ;) | | If you are going to go full paranoid, you can't pretend | that the media is 100% trueful at every aspect, | especially when it comes to internal US affairs. | bovermyer wrote: | Which is why I'm only 1/8th paranoid, not full paranoid. | =P | | Also, while every media source is biased, if you review | enough angles on a given story, you can arrive at some | semblance of a true account. | ellimilial wrote: | Yeah, the difference is at least some of the media can at | least attempt to be truthful with limited chances of | accidental novichok exposure, falling through the window | or accidentally falling on a knife multiple times. etc. | unixhero wrote: | The code is open, and is being analyzed by the entire | world. This seems paranoid. | wiradikusuma wrote: | Can I say it's a poor man's Kubernetes? | zerubeus wrote: | Sort of yes, for personal projects and small business I would | go for something like this or dokku and try to split services | as much as I can, rather than managing k8s in my own | wiradikusuma wrote: | But if the K8s cluster is managed by cloud (e.g. AWS, Google, | even DO), is this/Dokku still worth it (easier)? | zerubeus wrote: | Yes dokku still worth it | https://news.ycombinator.com/item?id=23460066 and most | importantly much easier | harpratap wrote: | K8s does not deal with CI/CD of your source code, nor can it | automagically package your code out of the box. You need to | compile your source and bundle it in the form of a docker | image, host it and provide access to K8s to pull it. K8s is | like Linux kernel, it's not usable for most people unless you | package it with GNU utilies and other components people expect | out of a distro. | Nextgrid wrote: | Curious as to how this compares to Dokku | (http://dokku.viewdocs.io/dokku/)? | vincent_s wrote: | Dokku is best if you only need a single repo support, caprover | if you will have multiple apps, and or multiple servers. | dblock wrote: | How so? I use dokku on A DigitalOcean server for a dozen | apps. AFAIK cluster support is different (it exists). What | else? | coffeeri wrote: | There is someone working recently on swarmlet | (https://github.com/swarmlet/swarmlet) - a Dokku inspired | Docker swarm solution. | | Swarmlet seems to be very young and not production ready. | Still, I am exited to see how this project will evolve with | time. | MrCheese wrote: | CapRover has support for multi-server deployments using Docker | Swarm. It also has a nice dashboard with built-in monitoring | and such. There is a marketplace of sorts with single-click | deployment for certain applications. | | Dokku on the other hand has support for buildpack deployment as | well as Procfile support for running multiple processes. | | I prefer Dokku. The main reason is that I only need a single | server for my apps and running Docker Swarm adds complexity. | | I wrote about some other differences in my blog: | https://www.mskog.com/posts/heroku-vs-self-hosted-paas/ | sequoia wrote: | Fantastic write-up, thanks!! | josegonzalez wrote: | Dokku supports multi-server deployment via Nomad and | Kubernetes as well. | | - https://github.com/dokku/dokku-scheduler-kubernetes | | - https://github.com/dokku/dokku-scheduler-nomad | StavrosK wrote: | Do these work well? I've never heard of either. | dgb23 wrote: | Their copy writing is funny and honest, I like it! | | When it comes to operations I often feel overwhelmed, even | though I've done DevOps and automation work in the past. | | Most of the things I'm working on professionally don't need the | "scale" part, but the "robustness" and especially "ergonomics" | parts. When I look at most infrastructure solutions, then I | often get a combination of "this is too complex" and "I don't | need this". | | So I was drawn to solutions like Heroku at some point, but | there you cannot even do the most basic thing: persistently | writing to the filesystem. So you are forced to introduce | system level complexity and coordination for such a fundamental | feature. | | Naturally I tend to prefer simple tools that enable things | rather than constrain them. | | Side note: I think when the "code has to run on some computer" | problem is finally solved, then we likely see an explosion in | productivity in our industry. | vincent_s wrote: | Background info: https://www.freecodecamp.org/news/how-i-cut-my- | heroku-cost-b... | omk wrote: | Looks solid. I am all set for the wave of fully controlled PaaS | solutions coming our way. Most of the innovation has stayed | locked behind closed rooms at AWS, Microsoft or one of the major | cloud companies. This brings in more control and an extra | dimension to optimize. | peterwwillis wrote: | Can some developers explain to me why they don't want to set | things up themselves? If you already know how to do it, it's not | very time consuming. If you don't yet know how to do it, learning | how it all works only benefits your understanding of the service | you're providing, and empowers you to fix it. It's almost like | learning a new trade, and can give you a new perspective how your | code runs. | | Maybe it's because there's so much arduous research required to | finally figure out what magic commands to run to get something to | work. Would having a set of HOWTOs that just explain the steps to | set up each component work as well for you as a turn-key | solution? (It would be great if we could start a trend of people | writing a _HOWTO.md_ after writing their _README.md_ ) | thrownaway954 wrote: | it isn't about how time consuming it is, it's about consistency | with the deploys and consistency with the environments. you | want your development and production environments to match. | gnud wrote: | CapRover was mentioned in the thread about the coinbase stack [1] | - I guess that's why it's popping up here now. | | As I said in that thread - this looks interesting, but the | installation instructions put me off a bit. Open a port on your | server, and don't change the default password `captain42` - then | run a cli tool from your dev machine. | | 1: https://news.ycombinator.com/item?id=23460066 | greaber wrote: | How does CapRover work with databases? Does it replace something | like RDS? | zerubeus wrote: | ahaha I like how this comes after the thread about k8S | https://news.ycombinator.com/item?id=23460066 | monkeydust wrote: | (non dev) looking to run my own installation of | https://github.com/excalidraw/excalidraw for team. Could I use | this app? Straightforward to do? How would I estimate the costs? | lapnitnelav wrote: | As long as you have a (sub) domain you can use and a bit of | free time, you could go to your favourite cheap 'cloud' | provider, i.e. Digital Ocean, Scaleway, ... | | Spin up a cheap instance (DO has a preconfigured image ready to | go), git pull and caprover deploy to test. I am pretty sure | even the cheapest ones will be able to run that. | netmonk wrote: | I find it surprising that they choose nginx as routing/reverse | proxy while Traefik does the job very seamless in a matter of | minute with benefit of docker container tag for live | configuration. and with full integration of letsencrypt. | Smerity wrote: | I have been using CapRover and love it. I donate to their | OpenCollective[1]. | | For those noting "why don't you just use Linux / k8s / ...", that | feels close to the original complaints re: Dropbox on Hacker | News[2]. I've run clusters hundreds of nodes in size myself but | CapRover gives me the pleasure of not having to sweat the small | details. You can get this from other platforms but usually | there's a dollar cost tied to each option. When I'm experimenting | I don't want to have a dollar cost attached. | | Deploys are trivial. The default nginx setup is most of what I'd | want to do. LetsEncrypt is a single button click. Monitoring is | included by default. If I need to scale up, everything I'm | pushing is Docker containers. If I want to experiment, there's | great fun in looking at the included "One click apps / databases" | and just playing around. | | CapRover is just a lovely freeing experience that will do what | you need :) | | [1]: https://opencollective.com/caprover | | [2]: https://news.ycombinator.com/item?id=8863 | GordonS wrote: | Have you used Dokku before, or did you look at it before | settling on CapRover? (I'm just starting to look at both) | StavrosK wrote: | I'm a very happy Dokku user, I've been using it for years | with no problems, though CapRover seems very interesting. | xu6ahb8E wrote: | For those who have even simpler needs (like side projects, or 1 | dev projects), I found using simply docker and git to be plenty | enough. | | Basically, you can create a bare git repository on your server | (`git init --bare`), and put a `hooks/post-receive` script within | it that will clone sources in a temporary directory, build the | docker image and rotate containers. That way, you can `git push` | to build and deploy, and it's easy to migrate server. | | The added bonus is that you now have a central git repos that can | act as backup, so you don't need github or gitlab. | | The main painpoint, which I find dokku interesting for (and I | assume caprover too) is zero-downtime deployment. But well, if | this is critical, you probably need something more extensive. | mcdoh wrote: | Similar to this? | https://www.digitalocean.com/community/tutorials/how-to-use-... | xu6ahb8E wrote: | Here is an example of post-receive script I use for that: | #!/usr/bin/env bash export APP=appname | export DOCKER_OPTS="" unset GIT_DIR rm -rf | /home/username/apps/$APP cd /home/username/apps && \ | git clone /home/username/git/$APP && \ cd $APP && \ | echo building image && \ docker build -t $APP . | if [[ "$?" != "0" ]]; then echo "error while building | image." exit 1 fi echo "Stopping | previous container..." docker stop $APP | echo "Starting new container..." sleep 1 docker | run -d --name $APP --rm $APP | [deleted] | dugmartin wrote: | FYI, you can avoid the $APP directory removal and clone by | doing: | GIT_WORK_TREE=/home/username/apps/$APP git checkout master | xu6ahb8E wrote: | Yes, that's true, thanks for mentioning it. It comes from a | time when I did not use docker so I wanted to get rid of | build artifacts, but building within docker, this is not a | problem anymore. | c17r wrote: | If you need to use your "old way" for something else, you | can use 'git clean -fdx' which will remove all files and | directories that git does not track. | phaemon wrote: | You should at least use `set -u` in this script, otherwise, | at some point, you'll fail to set $APP and end up running: | rm -rf /home/username/apps/ | | Guess how I learned this lesson? :) | Operyl wrote: | Ooooh, I need to start documenting my war stories. They'll | make for a fun read at some point years down the line. | antoniomika wrote: | I actually developed a system similar to this but used docker | compose as an alternative to Procfiles and nginx+le to handle | dynamic virtual hosting. It's actually a golang app that will | automatically provision git repos with the necessary hooks and | also allow you to exec into a container directly over SSH. I | had the thought of using docker stack to achieve zero downtime | but haven't had a chance to try that out. Happy to open source | it if anyone is interested in using it. | njsubedi wrote: | Please open source it | dzolvd wrote: | Would love to see it! | jensneuse wrote: | please do! | babaganoosh89 wrote: | Caprover doesn't do zero-downtime deployment currently fyi | rcarmo wrote: | That is what Piku (https://github.com/piku) is all about. You | can easily deploy containers through it as well. | Legogris wrote: | I can not not read this as CA Prover and thinking it has | something to do with PKI. | rcarmo wrote: | Shameless plug: If you don't want to use containers or are using | resource-constrained Linux boxes, have a go at | https://github.com/piku :) | onion2k wrote: | Slightly nitpicky, but is something a PaaS if you run it | yourself? _Anything_ as a Service isn 't a service if you're | running it yourself. It's just ... infrastructure. | bomdo wrote: | Not nitpicky at all - this is an important distinction to | highlight for pointy-haired decision makers. | | This product is undoubtedly the P in PaaS, but there is no | service behind it. If your company uses this as an alternative | to a real Heroku/AWS/xyz PaaS, you must have engineers at hand | for 24/7 ops, scaling servers and fixing bugs. In my opinion, | this is quite risky for anything running in production and | should not survive a cost-benefit analysis. | 1337shadow wrote: | > should not survive a cost-benefit analysis | | I completely disagree, the difference of price between | dedicated servers and even EC2 instances is completely | amazing. | | This is what you get for less than $200/month with a | dedicated server: | | 1x AMD EPYC 7281 CPU - 16C/32T - 2.1 GHz, 2 x 1 To NVMe, 96 | Go DDR4 ECC, unmetered 750 Mbps | | In one of my companies the AWS bill is just completely | insane, we have like half that hardware, with a really small | bandwidth, which is metered, for more than $800/month, which | is fine while we're on free credits. | | I love working for cloud companies, it's a lot of fun, but | when it comes to my money then I never go for anything but a | dedicated server. | zeveb wrote: | Yes, hardware as a service will always be much more | expensive than hardware you own. But it may be less | expensive than the team you will require to run that | hardware at an acceptable service level. It very likely | will be less expensive than the opportunity cost of running | your own hardware. | | As an example of the latter bit, if you are running your | own hardware and need to add another host and you do not | have a spare lying around, then you need to order one. It | has to be shipped. Someone has to unpack it. Someone has to | make sure that the data centre has sufficient power. | Someone has to install it, its power and its network | cables. Each of these steps takes time, but also each step | is an opportunity for friction. | | By contrast, with a service, you would just add a new host. | Five minutes later you are up and running. That gives you | an operational nimbleness that you wouldn't otherwise have | had. | parliament32 wrote: | I love how there's this myth that servers and services | just blow up every 10 minutes 24/7 and unless you have a | legion of ops personnel you're going to get hours of | downtime each year. | | Servers, for the most part, just work. In DC climate- | controlled environments, hardware failures is | _exceedingly_ rare. Apart from harddrives, most hardware | will happily tick along for a decade, if not longer. | | Sane production-grade OSes (read: not Ubuntu) will also | happily run for literal years with zero human | intervention. For obvious reasons, it's a bad idea to not | patch your systems, but things will continue to "just | work" pretty much forever unless you're running really | shitty code. | | For renting vs buying servers, there's upsides and | downsides. Buying gear is far far cheaper if you plan to | be around for more than a year, but renting dedicated | servers gives you a lot more flexibility -- to provision | a new server, you hit a button in their online panel, | wait 15 minutes, then let your deployment strategy take | care of the rest. | | I find it almost mind-boggling that AWS and friends have | convinced people that it's normal to spend ridiculous | amounts of money for fairly "meh" service specs in what's | essentially VMs. | mm89 wrote: | The points you make are fine but I think the experience | becomes more painful linearly with the number of servers | you manage, since you're N times more likely to see | something happen that takes down a server. It just | happens more frequently. At some point that becomes often | enough that you don't want to deal with it anymore. | parliament32 wrote: | I don't think you understand the sheer scale you need to | be experiencing a failure more often than once a month. | By my anecdotal experience you'd need at least 1k servers | for that to happen... and if your company is big enough | for $2MM capex for servers alone you can handle $100 | remote hands and 30 minutes of engineer time. | | Not to mention that at that scale you have plenty of | redundancy and, if your ops team knows what they're | doing, automagic failover / HA. Anything that happens can | easily "wait till Monday", no need for 24/7 anything. | pathseeker wrote: | If it's often enough to be noticeable, your scale is | large enough to pay someone to be ops full time. | sweeneyrod wrote: | Certainly hardly anyone should be physically managing | their servers. The relevant comparison is between getting | 1GB RAM in the form of a $50/month Heroku dyno and | getting it with a $2/month VPS (actually with Hetzner | that will get you 2GB, they don't go below 1GB). | ricardobeat wrote: | That example is not realistic. You rent dedicated servers | from a provider that will always have extra hardware at | hand, and handle all of those steps; you don't rent | hardware yourself and run it in your basement :) | zeveb wrote: | What you just described is a kind of hardware service! | vidarh wrote: | Or you rent managed servers or colo space from one of the | many hosting providers that also offers cloud services, | and pick and choose. That lets you migrate your base load | to colo or managed servers over time, while you still | have the nimbleness of being able to scale up and down | dynamically if you want or need to. | | And my experience from providing devops services to | clients on a contract basis is that the clients who use | cloud services tends to need more, not less, devops | assistance. | raphaelj wrote: | All these things are relative. | | When you got applications that don't require high | availability while needing a very low cost per CPU, | dedicated servers just make sense. We are running a cluster | of a few high-CPU dedicated servers for our data-science | team, and it just makes sense: we don't need 99.99%+ | availability, and the servers we rent are cheaper than the | equivalent AWS storage cost alone ... The op cost of | managing these is exactly the same as managing equivalent | EC2 instances. We don't need backups either. | | On the other side, we got some low-CPU web services that | require high availability, redundancy and reliable backups. | For these I just use Heroku. It's extremely reliable and | easy to operate, while only costing about $100/month (a few | hobby dynos + a fully managed PgSQL DB). Sure it's probably | 5x more expensive than a dedicated server with 10x the | performance, but I don't have to worry about backups, | availability and scalability. And these apps just don't | need this 10x faster CPUs anyway. | pathseeker wrote: | >web services that require high availability, redundancy | and reliable backups. For these I just use Heroku. | | How do you handle Heroku outages then? | raphaelj wrote: | Heroku outrage free was 99.9999%+ over the past 60 | days[1], I'd have a hard time achieving this with a | single dedicated server. | | [1] https://status.heroku.com/ | c17r wrote: | PaaSS - Platform as a Self Service | 1337shadow wrote: | Nope, you have IaaS (Infrastructure as a Service) like | OpenStack, and PaaS (Platform as a Service) like OpenShift, | KelProject, CapRover ... | | The idea is that you ask OpenStack a VM and it will give it to | you, dealing with the lower level details for you. | | PaaS means that you ask it to deploy a service and it will | deploy it for you, dealing with lower level details for you. | ghaff wrote: | Neither you nor the parent are wrong but I'd argue that you | don't really see IaaS or PaaS used all that much for on-prem | platforms these days. (And the definition of PaaS was always | a bit fuzzy--something like an abstraction that is in between | IaaS and SaaS. | | You're probably more likely to see OpenStack called a private | cloud or on-prem cloud than "IaaS" these days. And OpenShift | is usually called a Container Platform rather than a PaaS. | 1337shadow wrote: | The definitions have always been pretty clear to me, but | all right then, thanks for the heads up, I guess CapRover | people and I are also what we call "old school devops" | these days. | | "Container platform" seems pretty vague to me, PaaS means | something I know right away. | | I mean, k8s is a container platform too isn't it ? But | you'll need to build what we called a PaaS on top of it | yourself (or use something like Kelproject, OpenShift ...) | ghaff wrote: | Yeah, the terminology isn't always super-clear. Yes, k8s | is a container platform. OpenShift, depending upon how | you use it, can span a range from being an integrated k8s | distribution to something a lot more like what was | commonly called a PaaS with developer tools, CI/CD | pipeline, registry, etc. | | PaaS isn't a verboten term or anything like that. But it | turns some people off because it was most associated with | services/products/projects that mostly focused on a | simplified developer experience at the cost of | flexibility. | 1337shadow wrote: | Well, for me PaaS is a software built uppon bricks like | an image registry (also present in IaaS), authentication | registry (also present in IaaS), developers tools ie. to | log into a system (also present in IaaS). But, with the | IaaS you get an infrastructure of bare virtual systems, | emulating a physical world, and with PaaS you get | deployments of code. A PaaS works on a IaaS, but can also | run on baremetal, it doesn't matter for the PaaS in | general. With PaaS, you don't need to define bare system | provisioning, PaaS does it for you, many IaaS teams ended | up implementing their own PaaS one way or another, back | in the days you are refering to I guess. | | k8s for me is a framework, OpenShit, Rancher, KelProject | would be "distributions" of k8s, just like Linux kernel | and distributions including it. | | As a person who writes technical requirements and | implementation document, it strikes to me when I'm asked | to document implementation of a "SaaS" that there will be | paid accounts and billing. | | Maybe CapRover will provide paid accounts on managed | servers in which case they would be creating a SaaS with | their PaaS solution. | | But again I'm not talking from a "managerial" perspective | of the definitions, rather from a technical one. I | suppose at this stage CapRover is trying to attract | technical users rather than managerial ones (unless they | have something to sell for cash but I didn't see it on | their site or just missed it) | ashnehete wrote: | I was just thinking the same thing - maybe we can call it self- | hosted PaaS. | baq wrote: | maybe you want to decouple sysadmins from devops? sufficiently | large orgs with sufficiently large on-prem infra have these | kinds of problems. | jordanbeiber wrote: | "Service" to me is just "delivery of something with a specific | scope and a defined contract", not so much about who delivers | said "service". | | Many IT depts would do themselves a massive favor to deliver | actual services instead of "just infra and some stuff thrown on | top" and call it service delivery. | | Tools like in this link can help, but a big part is simply | about automation and delegation/self provisioning. | dubcanada wrote: | You can't just decide that words mean different things to | "you". | | Platform as a Service or anything "as a Service" means | someone else provides it as a service (ie subscription). The | Platform part is all this is offering. So it is not a | Platform as a Service. | jordanbeiber wrote: | Yes, "someone else" - be it delivered internally from one | team to others or b2b. | | It is not necessarily hard tied to a business model, but of | course I understand that this is the common usage. | | It's really about abstractions and consumability. | | This is my interpretation of the NIST meaning of aaS. | cbetti wrote: | The distinction you are drawing sounds to me like the | difference between "managed" and "unmanaged." | | My read on whether something is a service or not is, can I make | a request of the thing in simple terms, and have the thing | carry out all the messy details on my behalf? | idoby wrote: | I just read it as short for "cloud infra project with controls | modeled after popular PaaS products" | vincent_s wrote: | Yeah, it's more like a PaaS alternative | fullito wrote: | I can recommend in getting in k8s with something like microk8s | from ubuntu: | | You will learn k8s and you will get the same thing as they do but | with open components, industry standards and a whole industry | moving in this direction. | | I have already microk8s running at home with argocd. I have never | had IaC that quick and that simple setup. | | With traefik you can have your domains as well. Then just go to | gitlab (or now to github, haven't checked out yet if i wanna | migrate back) and register your microk8s cluster as a | buildrunner. | | Thats it you are set. Quite future proof setup, modern, stable, | easy to use. | MrCheese wrote: | How does the deployment process differ from CapRover/Dokku? | | Deploying a simple app with a database with Dokku is something | like: 1. Run command to create a database of your | choice(Postgres, MySQL, Redis etc) 2. Run command to create | application 3. Run command to link the database to the | application 4. Push to the Dokku repo to deploy the | application. | battery423 wrote: | Both can solve the same issue and both are similiar as they | orchestrate your platform. | | Kubernetes is just the future, used by much more people and | you have the additional benefit of learning kubernetes which | might help you in your job/day to day business etc. | | If you are already thinking of operating CapRover/Dokku, i | would strongly considering using kubernetes instead. | zerubeus wrote: | Don't bother k8s is like the lvl of the dragon in front of | something like dokku, If you don't really look for auto | scaling, or you are running a business alone, don't go for | k8s | hardwaresofton wrote: | Another great alternative in this space is dokku[0]. Haven't | tried CapRover recently but it looks fantastic. | | [0]: https://github.com/dokku/dokku | Longwelwind wrote: | I've been using Dokku for a side-project, and it's a really | nice tool! My only gripe with it is that it's not easy to | deploy an existing docker image. You have to pull it, then | transmit it over ssh with "docker save" and "docker load".[1] | | Migrating the docker image building from the dokku server to a | CI would be easier to do without this. On top of that, | deploying an existing software into your machine would be | easier. | | [1] | http://dokku.viewdocs.io/dokku/deployment/methods/images/#de... | xu6ahb8E wrote: | dokku is also meant to build a custom image on deploy : | rather than using heroku's buildpacks, you can put a | Dockerfile at the root of your project and it will be used | instead. | | So basically, you could put a Dockerfile file container just | FROM and MAINTAINER, referring the image you want to use in | the FROM, and dokku will download and execute it on `git | push` (provided it can access to the image repository). | viraptor wrote: | I've recently learned about exoframe as well, but haven't tried | it yet. https://github.com/exoframejs/exoframe | chasd00 wrote: | i used dokku a couple years ago for a side project. It worked | really well ( especially the newer versions ). It was super | nice when the letsencrypt plugin came out, SSL support with | trusted CA signed certs built right in! | explodingcamera wrote: | Does Caprover support multiple "ingresses"? In that I can have an | external load balancer balancing between my clusters servers? I | can't seem to find any info on that in their docs. | mromanuk wrote: | Should be possible it uses Docker Swarm, which can handle | multiple ingress. https://docs.docker.com/engine/swarm/ingress/ | | You can expose some ports on different nodes and point your | external LB (for ex. cloudflare) | wilsonfiifi wrote: | Caprover is a great tool to have in one's kit but coming from | Dokku [0] i think it lacks a certain flexibility when deploying | applications with worker processes. You can get around this by | creating multiple "captain-definition" files in your project but | i prefer Dokku's adherence to Heroku's "Procfile" approach. | However Caprover's web admin/dashboard and docker swarm features | are a nice touch. [0] | https://github.com/dokku/dokku | sandGorgon wrote: | this makes me so happy - to see a PAAS on Docker Swarm! | | However, I wish the caprover had built this experience on top of | kubernetes (or k3s) instead of Swarm. The future of Swarm is | really unknown and the ecosystem is undoubtedly behind k8s. | mromanuk wrote: | but swarm is much more simpler, I'm concerned about future too. | Aeolun wrote: | Since someone was happy with this before, I'd like to recommend | https://github.com/exoframejs/exoframe again for a more console | oriented way of doing this same thing. | risyachka wrote: | Can I deploy apps on different machines with this? E.g. can I run | my app on 3 servers with a load balancer? | mromanuk wrote: | Yes, that is easy and work right out of the box. You should | deploy it with 3 nodes and lat the manager work as the LB (is a | single point of failure, though). A more complex solution would | be deploying it with an external LB EDIT: Rephrased | chris_st wrote: | I'd be interested to know how people who use this kind of thing | (or Dokku, etc.) keep their OS, database, applications, etc. up | to date, for security reasons if nothing else. | progx wrote: | You update your image, stop the container, start the container | (with the new image). That's all. | | You can create complex containers that could update with | security fixes without restarting. But it is easier to update | an image e.g. once per week/day and auto restart the | containers. | chris_st wrote: | Cool, thanks for the info! | | I wonder about the underlying instance's OS, though... in the | past, for home servers, I've set up cron jobs to get OS | updates and reboot, but that seems wrong for a web server I'd | like to be always up. | | Maybe create a new instance, update the OS, install the app, | switchover? Is there automation for this kind of thing? | mikepurvis wrote: | I've been using portainer for managing a handful of basic | containers on my home server (zoneminder, deluge, jellyfin, | unifi controller). Overall I really like it, but some kind of | feature to do this is probably the #1 thing I'm missing. It | even lets you launch "stacks" from a compose file in a git | repo, but doesn't have any facility to remember that info or | do a redeploy, so you're basically starting from scratch | every time: | | https://github.com/portainer/portainer/issues/1753 | unixhero wrote: | Looks like an open, free, very very early re-implementation of a | solution such as Cloudron.io . | | Very cool! | ev0xmusic wrote: | Give a try to Qovery (qovery.com) for a very simple Container as | a Service platform for developers | shuringai wrote: | how is this any different than setting up grapahana, nginx-proxy | with letsencrypt companion etc with docker-compose and just | replace my app image? | lessname wrote: | I wonder what happens if something (like mysql) crashes for some | reason or something like that happens, would something like that | be easier to handle? | julianwachholz wrote: | it will restart the container if the docker healthchecks fail | ryanmarsh wrote: | A friend often tells me "you're only ever one CloudFormation | template away from your ideal PaaS". | danr4 wrote: | I'm using CapRover on a personal server of mine and it's pretty | awesome. I use it for side projects and tinkering and tooling | (analytics, bitwarden). it's very stable with lots of "one click | app deploys" of popular open source software. | | Combined with portainer (which u can install with caprover) I'm | improving my docker knowledge. I'd recommend it for someone | starting out with containers and "home labs". | pinfisher wrote: | Is there anything like this for non web based applications? | Looking for hosting for some Python apps pre-procssing data | before delivery to clients. | mromanuk wrote: | Caprover can run non-web too, from databases to apps | rcarmo wrote: | Have a look at piku (https://github.com/piku). I built it | especially for that kind of thing. | julianwachholz wrote: | The web-app integration is completely optional and you can | disable it for each app individually. | | E.g. your database can be an app that doesn't have any web | frontend. | dabeeeenster wrote: | You could probably use something like this or dokku? They don't | only host web based apps. | [deleted] | dan_can_code wrote: | This tool looks really cool. The section where it listed reasons | for using it really struck a chord with me. I am not the most | comfortable using all the Linux tools when it comes to setting up | servers / system administration. This product looks to be a | really good bridge between devs who dev primarily, and those with | skills in deployment. Super cool. Thanks for sharing, I will be | using this! | esquire_900 wrote: | Isn't that a setup waiting for disaster to happen? Everything | is happily running up to a serious production problem, at which | point you miss the experience to debug and fix it. | dan_can_code wrote: | Then I will have to learn then. I feel most productive and | comfortable working on a hobby project if I don't need to | spend all of my time dotting the i's and crossing the t's | with cli and configuration files. I just want to build. I | don't see the value investing my time learning the ins and | outs of tooling that I will use maybe a few times when it | makes minimal impact, as it comes with an opportunity cost | for me elsewhere. That's just me though, I have no gripes | with people who love to tinker with their set ups. It just | isn't my thing. | esquire_900 wrote: | And that's the problem; by then it's too late (i.e. never | took the time to backup the db). It's about finding the | balance, writing a PHP app shouldn't involve studying C | compilers and CPU design. But I think these tools | (whichever you decide to use) are such an essential part of | what you're building that "outsourcing" them as much as | possible might be a bit ignorant. | | That being said, as long as it works, it works. And if your | app is small enough never to get into the grey waters, all | the better. | dan_can_code wrote: | I absolutely agree, were it something commercial these | things would need to be considered. | | Are there any tools you recommend looking into, were I to | take the next step? I don't plan on depending on CapRover | to fill gaps in my knowledge for too long, but for now | this product really is a good start for me. | esquire_900 wrote: | No problem in depending on CapRover, as long as you are | at least somewhat familiar with the tools it sets up for | you. Combine that with some crude generic UNIX skills | (quickly analyze cpu/ram/disk usage, search in logs, | transfer files, modify configs etc.) and you're way | better prepared. | | Ironically it's best learned "on the job" (for me at | least); just try to deploy your app from scratch. Play | around with nginx/apache, letsencrypt, your db stack, | packages installation etc. and get a working product. | | I'm no expert by far in any of this, but think that | knowing "just enough" about these tools really helped | along the way. Up to the point where I can now use | CapRover like tools with some degree of confidence, | closing the full circle ;) | JackFr wrote: | Well, I wouldn't say I miss it .... | Nextgrid wrote: | There's also the issue of security. How do you know there's | not a big security hole and it's just a matter of time before | your data gets stolen or your server becomes part of a botnet | or starts serving illegal content? | | The same thing applies with these turnkey admin panels like | cPanel or Plesk and which is why I don't recommend getting | anywhere near those. | [deleted] | [deleted] | jaggs wrote: | I can see exactly why this exists. It won't suit hard core roll | your own developers - any more than WordPress theme generators | suit DIY web developers - but for those who may be light on | skills and time, this could be a superb way to get an MVP going | really quickly and easily. Very nice tool to fill a gap. | appleflaxen wrote: | this is a bit like sandstorm.io, which is also an open source | platform for web applications. I've used it for a couple of | years, and love it. It's cool to see other people exploring the | same software space. | 97-109-107 wrote: | Quick tip on messaging on the homepage - replace _a developer | who..._ with the feature highlighted (ie simplicity, batteries | included, etc) | julianwachholz wrote: | I have been using CapRover for about half a year now on my | personal server running multiple projects. It does what you'd | expect and the configuration format is pretty easy to use, using | any docker image directly works without any extra steps, just | enter the image name and it'll do the rest. I'm pretty happy with | it and will probably stay with it for the time being. | | It's not the best for hosting many static pages, as you'll need a | HTTP server for each site anyway. | | But my main gripe is that there is only single factor | authentication and you can't easily secure it more other than | using a strong password and a hidden subdomain. (because of | webhooks, acme, etc. I guess) | liotier wrote: | How does it handle upgrades ? | mromanuk wrote: | for me it was seamlessly and I needed to jump a few minor | versions. | sneak wrote: | Single factor is more than fine in the case where you know the | admin (yourself) is going to use a 30 char random password and | use a password manager that won't autofill it on phishing | domains. | 867-5309 wrote: | > you'll need a HTTP server for each site | | isn't that what virtualhosts are for? | znpy wrote: | he's still in the early 90s | babaganoosh89 wrote: | If you have a vpn, you can edit the nginx config for the admin | panel and make it only accept connections from your vpn ip | address. | yig wrote: | What does PaaS stand for? The website doesn't say. Platform? | Product? | chasd00 wrote: | Platform as a service. It's like a step up in abstraction from | IAS, infrastructure as a service. The lines begin to blur near | the edges though, it's a marketing thing really. Just like | "cloud" means many different things to many different people | but it's a simple one syllable word perfect for brochures. | [deleted] | [deleted] ___________________________________________________________________ (page generated 2020-06-09 23:00 UTC)