libaws
Portainer
Our great sponsors
libaws | Portainer | |
---|---|---|
56 | 335 | |
440 | 28,426 | |
- | 2.1% | |
8.0 | 9.8 | |
29 days ago | 6 days ago | |
Go | TypeScript | |
MIT License | zlib License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libaws
-
The worst thing about Jenkins is that it works
cloud is so good now it’s hard to justify not doing something bespoke. ec2 spot is insanely cheaper than turnkey cicd, and better in almost every way.
i’m delighted to pay 30% over infra cost for convenience, but not 500%. and it better actually be convenient, not just have a good landing page and sales team.
this month i learned localzones have even better spot prices. losangeles-1 is half the spot price of us-west-2.
for a runner, do something like this, but react to an http call instead of a s3 put[1].
for a web ui do something like this[2].
s3, lambda, and ec2 spot are a perfect fit for cicd and a lot more.
1. https://github.com/nathants/libaws/tree/91b1c27fc947e067ed46...
2. https://github.com/nathants/aws-exec/tree/e68769126b5aae0e35...
-
Cloud, Why So Difficult?
like linux, cloud is a lot to learn, but worth it.
like linux, cloud is best kept simple, or it can become brittle and confusing.
like linux, cloud has a lot of cool things like zfs, that should be appreciated but rarely used.
like linux, using go makes your life a lot easier. the aws go sdk is the documentation.
like linux, you have to learn a lot and then find the core utility you actually care about. for me it is:
-
Kubernetes Is Hard
the good new is, for the 95% of projects that can tolerate it, aws the good parts are actually both simple and easy[1].
it’s hard to find things you can’t build on s3, dynamo, lambda, and ec2.
if either compliance or a 5% project demand it, complicated solutions should be explored.
-
Rapid growth, lessons learned and improvements at Fly.io
i also wanted a good cli for aws, and built one:
https://github.com/nathants/libaws
companies like fly are fantastic.
they provide a good service, and they put market pressure on aws.
-
From Go on EC2 to Fly.io: +fun, −$9/mo
cool transition and fun writeup!
for low, intermittent traffic sites, go on lambda might be a better comparison:
https://github.com/nathants/libaws/tree/master/examples/simp...
-
Ask HN: What is the most barebone back end solution?
lambda + s3. add ec2 spot if you need it.
just make sure you understand how billing works. mostly it’s just egress bandwidth is expensive.
do something like this:
https://github.com/nathants/aws-gocljs
or with less opinions:
https://github.com/nathants/libaws/tree/master/examples/simp...
welcome to cloud, glhf!
-
Ask HN: Cool side project you have written using Golang
aws ux for retaining both hair and sanity.
-
Static site hosting hurdles
aws has too many knobs, presumably to satisfy the union of the needs of all the enterprise customers. that said, lambda+s3+dynamodb+ec2 are pretty good once you tape over all the knobs that aren't needed. i work with them like this[1].
these days i build on aws and r2. aws for the nuts and bolts, r2 for high bandwidth egress. it's a perfect match.
- Simple website approach and cost
-
Learning Go as a Python Developer: The Good and the Bad
i dragged my feet on go for a long time. i also thought that skipping go and moving to rust was the play. a few years later, i still write python often, but i don’t build systems with it. python i now use like bash, to glue things together and automate random things. it’s a fantastic language and i will never drop it.
the verbosity of go is the biggest hurdle for a pythonista. the thought of giving up context managers, decorators, iterators, comprehensions, exceptions, coroutines, it’s unthinkable. in comparison go is ugly. your aesthetic mind screams in protest.
write go full time. dive in. as months pass, not only will those aesthetic objections fade, your mental model from python cleanly transforms to go. go is what mypy tried to be. the cost was aesthetic changes. the benefit is worth it.
the zen of python says if it’s easy to explain it might be a good idea. this is go, and it is.
i rebuilt a reasonably sized project from python[1] to go[2] over the last few years. i also have a system that i maintained both python[3] and go[4] implementations for, sharing a test suite in python.
go, like python, is fantastic. use both in whatever amount works for you. don’t read about them, build with them. you won’t regret it.
1. https://github.com/nathants/cli-aws/tree/bb78e529e7d1d3f95ac...
2. https://github.com/nathants/libaws
Portainer
- Cómo instalar Docker CLI en Windows sin Docker Desktop y no morir en el intento
-
Docker CI/CD with multiple docker-compose files.
I am currently running Portainer, but webhooks (GitOps) appear to be broken ( [2.19.0] GitOps Updates not automatically polling from git · Issue #10309 · portainer/portainer · GitHub ) and so I cannot send webhook to redeploy a stack. So, looking for alternatives. Using this as a good excuse to learn more about docker and CI/CD etc.
-
Ask HN: How do you manage your “family data warehouse”?
A Synology NAS running Portainer (https://www.portainer.io/) running Paperless NGX (https://github.com/paperless-ngx/paperless-ngx)
This works better than I can possibly tell you.
I have an Epson WorkForce ES-580W that I bought when my mother passed away to bulk scan documents and it scans everything, double-sided if required, multi-page PDFs if required, at very high speed and uploads everything to OneDrive, at which point I drag and drop everything into Paperless.
I could, thinking about it, have the scanner email stuff to Paperless. Might investigate that today.
Paperless will OCR it and make it all searchable. This setup is amazing, I love living in the future.
-
Bare-Metal Kubernetes, Part I: Talos on Hetzner
> I've come to the conclusion (after trying kops, kubespray, kubeadm, kubeone, GKE, EKS) that if you're looking for < 100 node cluster, docker swarm should suffice. Easier to setup, maintain and upgrade.
Personally, I'd also consider throwing Portainer in there, which gives you both a nice way to interact with the cluster, as well as things like webhooks: https://www.portainer.io/
With something like Apache, Nginx, Caddy or something else acting as your "ingress" (taking care of TLS, reverse proxy, headers, rate limits, sometimes mTLS etc.) it's a surprisingly simple setup, at least for simple architectures.
-
What are some of your fav panels and why?
casaos it just makes things like backups, offsite syncing and many other nas related things so much easier to manage. And gives you a proper nas like experience similar to that in which you'd fine on companies like tnas or synology. I actually also use it as a replacement for portainer when i don't need the more advanced features it offers
-
Kubernetes Exposed: One YAML Away from Disaster
> I moved to docker swarm and love it. It's so much easier, straight forward, automatic ingress network and failover were all working out of the box. I'll stay with swarm for now.
I've had decent luck in the past with the K3s distribution, which is a bit cut down Kubernetes: https://k3s.io/
It also integrates nicely with Portainer (aside from occasional Traefik ingress weirdness sometimes), which I already use for Swarm and would suggest to anyone that wants a nice web based UI: https://www.portainer.io/
Others might also mention K0s, MicroK8s or others - there's lots of options there. But even so, I still run Docker Swarm for most of my private stuff as well and it's a breeze.
For my needs, it has just the right amount of abstractions: stacks with services that use networks and can have some storage in the form of volumes or bind mounts. Configuration in the form of environment variables and/or mounted files (or secrets), some deployment constraints and dependencies sometimes, some health checks and restart policies, as well as resource limits.
If I need a mail server, then I just have a container that binds to the ports (even low port numbers) that I need and configure it. If I need a web server, then I can just run Apache/Nginx/Caddy and use more or less 1:1 configuration files that I'd use when setting up either outside of containers, but with the added benefit of being able to refer to other apps by their service names (or aliases, if they have underscores in the names, which sometimes isn't liked).
At a certain scale, it's dead simple to use - no need for PVs and PVCs, no need for Ingress and Service abstractions, or lots and lots of templating that Helm charts would have (although those are nice in other ways).
-
What kind of Alpine user are you?
The control panel is called Homepage. I like it more than Heimdall. To manage Docker I use Portainer.
-
Portainer kind of screwed me after updating a container -- Any other alternatives to managing your containers?
Synology use a custom version of Docker in their NAS products, which we've noted has issues with environment variables. We have this issue open around it, but unfortunately we haven't been able to come up with a fix as of yet and Synology seem to be reluctant to engage with us on it.
-
Risk of self-hosting smaller projects
Here are hundreds of others that did though: https://github.com/portainer/portainer/issues/8452
What are some alternatives?
Yacht - A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.
swarmpit - Lightweight mobile-friendly Docker Swarm management UI
podman - Podman: A tool for managing OCI containers and pods.
OpenMediaVault - openmediavault is the next generation network attached storage (NAS) solution based on Debian Linux. Thanks to the modular design of the framework it can be enhanced via plugins. openmediavault is primarily designed to be used in home environments or small home offices.
CasaOS - CasaOS - A simple, easy-to-use, elegant open-source Personal Cloud system.
podman-compose - a script to run docker-compose.yml using podman
octoprint-docker - The dockerized snappy web interface for your 3D printer!
authelia - The Single Sign-On Multi-Factor portal for web apps
Harbor - An open source trusted cloud native registry project that stores, signs, and scans content.
watchtower - A process for automating Docker container base image updates.
Docker Compose - Define and run multi-container applications with Docker
lens - Lens - The way the world runs Kubernetes