惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
IT之家
IT之家
Cyberwarzone
Cyberwarzone
T
Troy Hunt's Blog
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
G
GRAHAM CLULEY
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 叶小钗
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes
The Hacker News
The Hacker News
Jina AI
Jina AI
T
Tor Project blog
V
Vulnerabilities – Threatpost
酷 壳 – CoolShell
酷 壳 – CoolShell
Spread Privacy
Spread Privacy
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Simon Willison's Weblog
Simon Willison's Weblog
Security Latest
Security Latest
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 司徒正美
V2EX - 技术
V2EX - 技术
I
Intezer
The Cloudflare Blog
Cisco Talos Blog
Cisco Talos Blog
SecWiki News
SecWiki News
博客园 - 【当耐特】
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
Google Online Security Blog
Google Online Security Blog
量子位
The Last Watchdog
The Last Watchdog
AI
AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security Affairs
P
Palo Alto Networks Blog
S
Secure Thoughts
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Attack and Defense Labs
Attack and Defense Labs

Dizzy zone

Pangolin Private Resources With Domain Https About Redis is fast - I'll cache in Postgres n8n and large files Malicious Node install script on Google search Wrapping Go errors with caller info BLAKE2b performance on Apple Silicon State of my Homelab 2025 My homelabs power consumption On Umami ML for related posts on Hugo Probabilistic Early Expiration in Go SQLC & dynamic queries Enums in Go Streaming Netdata metrics from TrueNAS SCALE SQL string constant gotcha Moving from Jenkins to Drone My new server: MSI Cubi 3 Silent My thoughts on Ansible® Profiling gin with pprof How I host this blog, CI and tooling Refactoring Go switch statements OAuth with Gin and Goth I made my own commenting server. Here's why. Why I hate OpenApi(swagger) IDE for GO Jenkins on raspberry pi 3 How I started my professional career Kestrel vs Gin vs Iris vs Express vs Fasthttp on EC2 nano Go's defer statement Why I like go Speeding hexo (or any page) for PageSpeed insights Starting a blog with hexo and AWS S3
Self-hosted disqus alternative for 5$ a month
Vik · 2018-01-13 · via Dizzy zone

I was looking for a way to add commenting functionality to the blog. The obvious candidate was Disqus but I did not choose it for 2 reasons:

  • It’s too heavy(at around 200KB)
  • It contains ads

The weight itself would kill my quest for page speed instantly.So I set up to find a way to provide commenting ability on the blog. I knew this would probably lead me to a self-hosted solution but that did not scare me. Requirements were quite simple:

  • It must be cheap(or be hostable under EC2 nano - 512MB RAM for the whole instance)
  • It must be easily customizable

Isso

After a bit of research, I found Isso. After looking at it a bit, I gave it a shot. The running service consumes just under 35MB of RAM(idle). This means even if it doubles its memory consumption under load, the EC2 nano instance should be able to handle this service. Isso also states, that the required JS only comes at “40kb (12kb gzipped)”. This is way better than Disqus. I have some python experience so editing it to suite my needs should not be too hard. I end up sticking with Isso.

The architecture

I start setting it up and hit a few roadblocks on the way, but I’ll explain those in a bit. Here’s what the final architecture looks like on AWS:

Architecture I went with for hosting Isso under AWS.

As I mentioned before everyting runs under EC2 nano. Supervisord runs inside the EC2 instance and ensures that the nginx and Isso are continuously running. If the instance restarts, Supervisord assures that both of them are also started. Nginx is mostly there if I ever decide to use the same instance for some other service and not just comments. For now it only exposes isso and adds a no cache header to the response as I’m using CloudFront. Talking about which, the cloud front distribution is needed because I really wanted my service to be accessible with https. The easy way to do that in AWS is to get a certificate from AWS certificate manager. These can only be applied to AWS resources, so you can’t add it to your instance directly. You could add an application load balancer in front of your EC2 instance but these are costly and will set you back at least 20$ a month. When you consider that the whole instance will set you back 5$ a month the load balancer does not seem worth it. The way to make the ssl cheaper is use a CloudFront distribution. You point it to your EC2 instance and point your Route 53 records to the CloudFront distribution. Now you can communicate with Isso through a secure channel.

Lowering costs

To lower the costs for your EC2 instance to just under 4$(or even cheaper if you commit for a longer period) you can take a reserved instance. Combined with the Route 53(which you are gonna pay for a domain anyway) and CloudFront costs the totals for the comments per month is less than 4.5$/month for me at the moment.

Configuration files

Below you’ll find the all the configuration files I’ve used:

What do you guys think? Is Isso a good choice for self-hosted comments? Do you even self-host your comments? Let me know in the comments below!