- Make sure you have Emacs with treesitter support:
M-:
(treesit-available-p)
RET
should returnt
- Make sure you have installed python treesitter grammar
When I first set up Listmonk it was to use with Amazon SES. At the time Amazon would give you free 62,000 emails/mo if you sent them from an EC2 instance. So EC2 was the best server to use. In mid 2023 Amazon ended that, so now you can use whatever server you like, which makes things much easier. It shouldn't be too hard to convert these directions to another server host of your choice.
I used Hetzner with another build, and once my free EC2 year ended the AWS t2.micro cost me $14/mo. Hetzner has better specs and costs me $5/mo, so I added an nginx vhost and moved listmonk to the same server. Here's a $20 credit for Hetzner.
There is also the possibility to use the 1-click installers for their featured hosts: https://listmonk.app/ - listed under "Hosting providers". I'm not familiar with any of them but there are lots of new guides
The short answer is that you need to set up your own web server (Hetzner, AWS, DigitalOcean, etc.), install email software on it (Listmonk, Mailwizz, Mautic), and use an SMTP like Amazon SES. It's not that hard. If you're on Windows, Putty and FileZilla will be your main programs to access your server. When using CSV files for your contacts, you want to use UTF-8 format.
There are some detailed guides below for Sendy and Listmonk. But even if you have/want to hire someone to set it up for you, they should be able to do so for under $60 (check Fiverr). So it's still the most affordable option.
When I searched for this I had a very hard time finding a right answer because all the results were SEO blogs advertising their newsletter services (Mailchimp, Convertkit, etc.), which is not the same thing.
My use case is that I have a
Q1. The metric node_cpu_temp_celcius
reports the current temperature of a nodes CPU in celsius. What query will return the average temperature across all CPUs on a per node basis? The query should return {instance=“node1”} 23.5 //average temp across all CPUs on node1 {instance=“node2”} 33.5 //average temp across all CPUs on node2.
node_cpu_temp_celsius{instance="node1", cpu="0"} 28
node_cpu_temp_celsius{instance="node1", cpu="1"} 19
node_cpu_temp_celsius{instance="node2", cpu="0"} 36
node_cpu_temp_celsius{instance="node2", cpu="1"} 31
#!/bin/bash | |
# | |
# Extracts the source code of any Docker tag! | |
# Inspired by Sambhav Jain's post on DEV: https://dev.to/sambhav2612/reverse-engineering-a-docker-image-i8c | |
# Simply pass: | |
# 1. The desired Docker image tag you want to get the source code for | |
# 2. The target folder to put the source code in | |
# | |
# Example usage: | |
# ./export-source-from-docker-tag.sh gcr.io/google-samples/gb-frontend:v4 docker-source |
# Put this function to your .bashrc file. | |
# Usage: mv oldfilename | |
# If you call mv without the second parameter it will prompt you to edit the filename on command line. | |
# Original mv is called when it's called with more than one argument. | |
# It's useful when you want to change just a few letters in a long name. | |
# | |
# Also see: | |
# - imv from renameutils | |
# - Ctrl-W Ctrl-Y Ctrl-Y (cut last word, paste, paste) |
# We use PROMPT_COMMAND and the DEBUG trap to generate timing information. We try | |
# to avoid clobbering what we can, and try to give the user ways around our | |
# clobbers, if it's unavoidable. For example, PROMPT_COMMAND is appended to, | |
# and the DEBUG trap is layered with other traps, if it exists. | |
# A bash quirk is that the DEBUG trap is fired every time a command runs, even | |
# if it's later on in the pipeline. If uncorrected, this could cause bad timing | |
# data for commands like `slow | slow | fast`, since the timer starts at the start | |
# of the "fast" command. |