Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
自宅 PaaS でメンテナンスフリーな個人開発
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
HORIUCHI Akihiko
December 26, 2025
Technology
29
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自宅 PaaS でメンテナンスフリーな個人開発
#tech-midnight で発表しました。
HORIUCHI Akihiko
December 26, 2025
More Decks by HORIUCHI Akihiko
See All by HORIUCHI Akihiko
What is LB? / LBaaS? / Managed LB?
hiconyan
0
96
Managed Load Balancer のつくりかた
hiconyan
0
1k
ベアメタルのつくりかた
hiconyan
1
1.4k
Other Decks in Technology
See All in Technology
5分でわかるDuckDB Quack
chanyou0311
4
260
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
180
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
140
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7.8k
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
120
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
590
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
120
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2.6k
4人目のSREはAgent
tanimuyk
0
250
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
120
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
470
Featured
See All Featured
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
200
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The browser strikes back
jonoalderson
0
1.3k
Building Adaptive Systems
keathley
44
3.1k
エンジニアに許された特別な時間の終わり
watany
107
250k
The SEO identity crisis: Don't let AI make you average
varn
0
500
Discover your Explorer Soul
emna__ayadi
2
1.1k
Odyssey Design
rkendrick25
PRO
2
710
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
280
Transcript
自宅 PaaS で メンテナンスフリーな個人開発 Akihiko Horiuchi (@hiconyan) 2025/12/26 @ #tech-midnight
https://hiconyan.page/ 2
• いくつか Ruby や Node.js で作った個人開発の Web アプリがあり、これまでは Heroku の上で動かしてきた
◦ 家計簿、温湿度計、フォトアルバムなど ◦ Basic Dyno ($7 / 月) + Redis Mini ($3 / 月) の組み合わせのアプリが 2 つ ◦ その他もろもろで約 $30 / 月 • しかし、円安の影響で料金がかさんできたた ◦ ミニ PC を買って Dokku を入れ、そっちに移行することにした ◦ ただし、なるべく管理は楽にして、個人開発に注力したい ▪ メンテナンスフリー (OS やランタイム / ライブラリのバージョンアップなど) ▪ ステートレス / ポータビリティ (環境が壊れてもすぐに作り直せる) Background / Motivation 3
• Platform as a Service (PaaS) ◦ PaaS は、ソフトウェアを構築および稼動させるための土台となるプラットフォームを、インターネット 経由のサービスとして提供する
◦ 具体的には、インフラ / ミドルウェア / ユーザインタフェースなどのシステムを開発する手段となる ツールや、開発したシステムを運用するための環境など • Buildpack ◦ リポジトリに含まれる情報からランタイムやフレームワークを特定し、そのベスプラに則ってコンテナ イメージをビルドしてくれるもの ◦ Heroku が最初に開発し、その後 Pivotal も対応したが、現在は Cloud Native Buildpacks として標準 化されている • ちなみに… ◦ SDPF でも (ECL2.0 時代に) Cloud Foundry ベースの PaaS メニューがあったけど、サービス終了済み ◦ Pivotal が開発していたが VMWare に買収され、VMWare は Broadcom に買収された What is PaaS? Buildpack? 4
• Heroku ◦ 2007 年にアメリカで創業し、2010 年に Salesforce に買収された ◦
ソフトウェアは「Dyno」と呼ばれるコンテナの上で動き、Ruby / Python / Node.js / Go などがサポー トされている ◦ 公式のアドオンとしてマネージドな Postgres / Redis などのミドルウェアがあり、ダッシュボードや CLI から 1 クリックでインストールできる ◦ 料金はコンテナやミドルウェアの性能 (プラン) と、それを使った時間で決まる ▪ 無料枠があったけど 2022 年に廃止された • Dokku ◦ 2013 年頃に開発がはじまったオープンソースの PaaS ▪ Shell Script で実装されている (最近、Go でリライトしているらしい) ◦ ソフトウェアは Docker 上で動き、コンテナイメージは Heroku と同じく Buildpack で作られる ▪ 最近、マルチノードをサポートするために K3s (軽量な K8s) 上でも動かせるようになったけど、 試したことはない ◦ 公式のプラグインとして MySQL / Postgres / Redis / RabbitMQ などのミドルウェアがあり、CLI か ら 2 コマンド程度でインストールできる What is Heroku? Dokku? 5
• ミニ PC として Minisforum の UN100D を約 3 万円で購入して、Ubuntu
24.04 をインストール ◦ CPU: Intel N100 / メモリ: 16GB / SSD: 256GB • 外から SSH / HTTP でアクセスできるようにするために Cloudflare Tunnel を使うことにした (無料) ◦ ドメインの NS レコードを Cloudflare に向けておかないといけないけど、SSL も終端してくれる Infrastructure 6
• パッケージのセキュリティアップデートを自動適用して、自動再起動もして欲しい ◦ → unattended-upgrades を使って実現する ▪ 【Ubuntu】セキュリティアップデートの自動適用 | 開発者ブログ
| 株式会社Skrum ▪ 必要であれば 17:00 JST に再起動 (適当) • ランタイム / ライブラリを自動バージョンアップして、CI が通ったらデプロイまで欲しい ◦ → GitHub Actions で頑張る (Appendix を参照) ▪ 毎週日曜日の 09:00 JST に自動バージョンアップ • ランタイムのパッチバージョンアップ • bundle update / npm update • Pull Request を作って auto-merge を有効化 ▪ CI は 壊れたら家族に怒られる 壊れたら困るアプリだけ真面目に書く • 自分しか使わない 壊れても困らないアプリは壊れたら直す • Unit Test は RSpec + Integration Test は Newman (Postman) ▪ Pull Request がマージされたら (main に Push されたら) Dependency Graph を更新 • Trivy で SBOM を作って GitHub にアップロード • 脆弱性が出たら GitHub の Notifications で教えて貰える Maintenance Free 7
• Dokku は ミドルウェア系のプラグインも豊富 だけど、Redis 以外は使わない ◦ データベースを使うと、バックアップのことを考えないといけなくなる ▪ →
Google Spreadsheet をデータベース代わりにする • 家族も分析できるし、アプリの開発を止めてもデータは残る • 書き込みには 2 〜 3 秒かかるけど、Redis にキャッシュしているので読み込みは 1 秒くらい ▪ → 画像などのアセットは AWS S3 にアップロードする • 画質や画像サイズを工夫すれば、$1 未満に治まる • クリーンインストールできる / 羃等に環境構築できるようにしたい ◦ → Shell Script で頑張る (Appendix を参照) ▪ 個人開発に Ansible は too much なので ▪ Shell Script は 200 行ちょっとで済んだ • パッケージの最新化と OS の初期設定 (SSH や TZ など) • cloudflared と docker & dokku 、mackerel-agent のインストールと設定 Stateless / Portability 8
• Pull Request が作成 / 更新されたら Review App を Dokku
にデプロイ ◦ Heroku だと Review Apps の設定をしておくだけで、自動でできるんだけど… • Pull Request がマージされたら (main に Push されたら) アプリを Dokku にデプロイ ◦ Heroku だと GitHub Integration の設定をしておくだけで、自動でできるんだけど… • Pull Request がマージされたら Review App を削除 ◦ 以下同文 → GitHub Actions で頑張る (Appendix を参照) Continuous Delivery 9
• その他にも色々と工夫していて… ◦ Ruby on Rails は使わずに Sinatra を使う (手に馴染むので)
◦ ログイン機能は作らない (username と secret token で認証するだけ) ◦ PWA (Progressive Web Apps) でネイティブアプリっぽく動かす ▪ CSS / JavaScript / Web フォントはプリコンパイルして端末にキャッシュしておく • 今後やってみたいこと… ◦ K3s スケジューラを使ってマルチノード化してみたい ▪ ただし、イメージレジストリを用意する必要がある ◦ ミドルウェアの自動バージョンアップもできるようにしたい ▪ dokku redis:upgrade するだけなので In addition ... / To be continued ... 10
https://gist.github.com/hico-horiuchi/64ce86f701b2d8c46b5cb89bed0372de • GitHub Actions ◦ update_dependencies.yaml ◦ sbom.yaml ◦ ci.yaml
◦ cd.yaml ◦ garbage_collect.yaml • Shell Script ◦ setup_un100d.sh Appendix 11