インドネシア発、ニューヨーク・シンガポールサーバ提供の DOM Cloud Hosting についてまとめています。

2021年4月、ニューヨークにサーバが追加され、.io ドメインが採用されています。
しかし、無料プランでは直接独自ドメインを適用できず、
現在有料プランのまともな支払い方法が存在していません。
今のところはまともな使用はせず、試用や開発向けに留めておくのがおすすめです。


目次


公式サイト

2021年4月より 英語公式サイトは新ドメイン domcloud.io を導入しています。
インドネシア語は domcloud.id と 1 文字の違いで、しかも o と d なので、
URL に注意して参照して下さい。


DOM Cloud Hosting について

2020 年にサービスが開始されたばかりで、まだ利用者も情報も少ないサービスです。
Webmin・ssh・FTP と伝統的なレンタルサーバの使用方法が可能でありながら、
テンプレート機能で Git から容易に展開できたり、
様々なプログラミング言語での動作が可能にした、現代に合わせた仕様も備えています。

2021年4月よりニューヨークサーバが追加されています。
提供元がインドネシアで、そこに近いシンガポールとの 2 ヶ所になりました。

Web サーバは nginx で、PHP・Node.js・Ruby・Python の動作に対応し、
MySQL も提供されているため、様々な用途で使用できます。
FTP(FTPS・sftp 対応)・ssh による接続の他、デプロイ機能があり、
.zip ファイルや Git からの clone による展開とコマンド実行に対応しています。

現在支払い方法がインドネシア向けのみのため、
事実上使えるのは無料プランのみと考えて良さそうです。

  • サブドメイン - 使用可能(サーバ別にドメイン割り当て)
  • 独自ドメインの割り当て - 使用不可能(有料プランのみ使用可能)
  • ストレージ - 256M バイト
  • データ転送量 - å¹´ 15G バイト=月 1.25G バイト
  • データベース - 1

このプラン設定はホスト(ドメイン)毎です。 アカウント全体ではありません。
無料ぷらんでは 5 ホストまで作成できる事をページ運営者が確認できています。

海外利用を想定して英語サイトも設置されていて、
最安値プランが年 50000 ルピア・US$5 です。(月ではなく、年です)
ホスト(ドメイン)単位で、独自ドメインが必要な分契約が必要になりますが、
試しに支払って試用したい人もいるかもしれません。
海外向け支払い方法拡充に期待したいところです。


サーバと提供ドメイン

2021年4月よりサーバが 2 ヶ所になりました。
このサーバに合わせて無料で使用できるドメインも決まります。

サーバの場所 使用できるドメイン名
nyc - New York SUBDOMAIN.domcloud.io
sga - Singapore SUBDOMAIN.dom.my.id

日本からの場合、Singapore の方がレスポンスがよくなりますが、
ドメイン名が .id で完全な ccTLD(国コードドメイン名)のため、
日本では検索結果上位に出にくくなる恐れがあります。
特に開発サイトや試験動作には Singapore を選択するのが良いでしょう。

New York は .io ドメインで、これも ccTLD ですが、
Google は .io ドメインを gTLD 同様に扱うドメインに定めています。
したがって、国コードの影響を受けません。
GitHub Pages が SUBDOMAIN.github.io を提供するなど、よく使われています。
世界中不特定多数向けの英語サイトを公開するのは New York が良いでしょう。

 多地域、多言語のサイトの管理  ジェネリック トップレベル ドメイン | Google 検索セントラル
🎈 独自ドメイン・ドメイン名  国コードトップレベルドメイン ccTLD | ふうせん🎈 FU-SEN


テンプレート

 domcloud/dom-templates | GitHub

DOM Cloud Hosting の特徴として、
Git や .zip ファイルで公開された URL よりサイト展開を行ったり、
nginx の設定、シェルコマンドを実行できるテンプレート機能が備わっています。
FTP・ssh を用いずに Web からテンプレートを用いてサイトの公開が可能です。

設定が nginx 関連のみの場合はすぐに起動しますが、
git・.zip からの展開、コマンドが入る場合は、その分時間を要します。
テンプレートの実行で public_html 内は消去されてから展開されます。
必要な場合は前もって ssh や FTP でバックアップを行って下さい。
デンプレート動作中はファイルが一時的になくなるので、
その間の参照は nginx の 403 表示になります。

フォーマットは .yml です。

features

features:
- ssl
- mysql
- posgres

SSL・MySQL・PosgreSQL を有効にします。

ssl を含める事で 🎈 Let’s Encrypt の発行・更新が行われますので、
Let’s Encrypt で SSL 化できれば十分な場合は必ず指定して下さい。

mysql と postgresql は使用するデータベースの選択です。

nginx

nginx:
  ssl: enforce
  index: index.html
  error_pages:
  - 404 /404.html

Web サーバ nginx 関連の制御を変更できます。

  • ssl - enforce で SSL 必須、on で http も有効にできます。
  • index - 省略時のファイル参照。index.php など。複数指定できます。
  • error_pages - ステータス ルートからのファイル で指定します。
  • locations - ファイルがない場合に index.php を参照する場合は次になります。
  locations:
  - match: /
    try_files: $uri $uri/ /index.php$is_args$args 

root

URL の公開を public_html 以外の場所にできます。
静的サイトジェネータに使えそうです。

root: public_html/public

指定した root の場所は後に Deploy が実行されても維持されます。
他の構成を行った後に HTML へ戻す場合は root: public_html を含めて下さい。

ファイルの展開

source: ソースのURL
directory: 取得・解凍後の展開ディレクトリ
commands:
- コマンド
- コマンド

source は .zip ファイル、末尾が .git の場合は git clone します。

HTML ファイルなどを公開する状態にした ディレクトリ フォルダを
.zip ファイル 名前.zip にして、
他のサーバ.example.com にアップロードした場合は次で展開表示できます。
実際には半角英数を用いて下さい。

source: https://他のサーバ.example.com/名前.zip
directory: ディレクトリ

public_html が commands が実行されるカレントディレクトリです。

テンプレートの公開

公開する場合は、テンプレートを用いて複数の同じ構成を作成したい場合、
次のリンクを作成すると便利です。

https://portal.domcloud.id/user/host/create?from=テンプレートURL

これを参照すると、テンプレートが適用された New Host の画面になります。
テンプレートURL は DOM Cloud Hosting 内の URL で動作しないようです。
GitHub に公開している場合は RAW 表示の URL や GitHub Pages の URL にします。


テンプレートの例

.zip ファイル

.zip ファイルを展開し、directory 下を root へ移します。
フォルダ部分を圧縮し、そのフォルダを directory すると使いやすいです。

source: https://サーバ.example.net/ファイル.zip
directory: フォルダ

Git プロジェクト

git clone します。

source: https://github.com/ユーザー/プロジェクト.git

HTML ファイルなどをそのまま表示

はじめて使う時は指定不要ですが、
過去に root を指定していた場合はそのディレクトリを維持するので、
必ず root を入れておく事をおすすめします。

root: public_html

Hugo

 Hugo
🎈 Hugo | ふうせん🎈 FU-SEN

Hugo 0.82.0 の場合は次になります。 releases より最新バージョンのリンクを得ます。

root: public_html/public
commands:
- git submodule init
- git submodule update
- curl -L https://github.com/gohugoio/hugo/releases/download/v0.82.0/hugo_0.82.0_Linux-64bit.tar.gz -o hugo.tar.gz
- tar zxvf hugo.tar.gz
- ./hugo

MkDocs

 MkDocs
🎈 MkDocs | ふうせん🎈 FU-SEN

プロジェクトを公開していますので、こちらも参考にして下さい。

🎈 fu-sen/DOMCloud-MkDocs | GitHub

root: public_html/site
commands:
- pip install --user -r requirements.txt
- mkdocs build

requirements.txt にビルドに必要な pip パッケージを入れて下さい。

mkdocs
mkdocs-bootswatch
mkdocs-minify-plugin

ホストの登録

New Host で次を入力・選択します。

  • Portal Username - 5 文字以上。そのままサブドメインになります。
  • Portal Password - 任意入力できません。ランダム生成のみで、再生成できます。
  • Server Location - 2021å¹´3月現在 sga - Singapore A のみです。
  • Template -  テンプレート を入れて、最初から展開した状態で起動できます。
  • Plan - 無料プランは Freedom です。
  • Domain - 無料プランは設定できません。サーバの選択によってドメイン固定です。

そのまま待つと 1 分もしないうちにサーバが起動します。起動すると画面が変化します。

なお、無料でも複数サブドメインでホスト登録可能です。


サーバ使用中の表示

その後はこの画面を見るようになります。

  • Detail - サーバ状態を表示します。ストレージ・転送量はリアルタイムです。
  • Invoice - 無料プランでは特に気にする必要ありません。
  • Login - Webmin・データベース・ssh・FTP の設定が表示されます。
    パスワードはいずれも  ホストの登録 で表示されていたパスワードです。
  • DNS - 無料プランでは IP アドレスの表示のみです。
  • Deploy -  テンプレート を実行できます。public_html 内を削除し展開されます。
  • Nginx - nginx の設定変更が可能です。 domcloud/dom-nginx | GitHub

Q&A

SSL は適用されますか?

無料提供のドメインでは 🎈 Let’s Encrypt を発行するので、
https で表示する事が可能になっています。
仕組み上、新規ホスト設定から発行されるまでは若干時間を要します。

しばらく時間が経過しても、発行されずに https で表示されていない場合、
該当ドメインから Login の「Webmin」にある Buka Portal へ入ります。
ログイン画面になる場合は、前の画面でユーザー名・パスワードを確認できます。
左サイドバー Virtualmin にある Server Configration - SSL Certificate の
上タグ Let’s Encrypt をクリックし、Request Certficate で手動発行できます。

 Install SSL | Panduan Hosting

この手動によるインストール方法は公式マニュアルに記載があるのですが、
現在このマニュアルはインドネシア語しか用意されていません。

デフォルトでは http も有効にしているため、
https を強制する場合はテンプレートまたは Nginx の設定で次を追加します。

nginx:
  ssl: enforce

.htaccess は使用できますか?

.htaccess は Apache の設定ファイルです。
DOM Cloud Hosting では Web サーバに nginx が使われているため、使用できません。

FTP を使用したくありません! 他の方法はありますか?

FTP と記載していますが、SFTP・FTPS が有効です。ssh または SSL で暗号化されます。

また、 テンプレート を用いて、
他の場所から .zip ファイル、または git clone で展開できます。
ssh も使えるので、他にもできる事は多いでしょう。

パスワードが必要になりましたが、ホスト生成時にパスワードをメモっていません。分かりますか?

ホスト一覧から該当のホストを選択した後、Login を表示し、
右下 Show Password で表示できます。
そのためメモる必要はなく、必要時に参照できるようになっています。

Host を作成しましたが、全くログインできず、デプロイも失敗します。

ssh などのログインに失敗するケースがある事を確認しています。
一度 Host を削除し、作成しなおしてみて下さい。
削除後すぐに同じ名前で作成しなおせます。
原因は調査中ですが、生成しているパスワードは記号付なので、
何か関係しているかもしれません。

何度か新規生成しなおしても同じ状態になる場合、
そのサーバ全体で問題が発生している可能性が高いです。
(そのサーバで運営するサイトも参照できない等の問題が発生しています)
他のサーバを試すか、時間をおいて再度行ってみて下さい。

Webmin の動作がおかしいです。

どのホストでも Webmin の URL は共通です。
左サイドバーしたにログアウトがあるので、ログアウトした上で、
該当のユーザー名・パスワードを入力してログインしなおして下さい。
複数のホストを起動しちいる場合はログアウトしておくのがおすすめです。

誤ってサブドメインを作成しました。変更できますか?

無料プランでは変更ができません。
従って削除して、新規で作成しなおす必要があります。
削除したドメインはすぐ新規ホストで使用可能です。

有料プランでは変更ができるようになっています。
独自ドメインへ設定する事を想定しているかと思われます。

検索結果に表示されますか?

 site:.dom.my.id 検索結果 | Google

普通にクローラーが収集して検索結果に反映する対象になります。
.dom.my.id は提供している国であるインドネシア語の検索結果が多いです。
.domcloud.io は 2021年春に使用が開始されたので、まだ数が少ないでしょう。

検索結果に表示されないようにするため、
次の内容を入れた robots.txt を root 指定のフォルダに含めて下さい。
特に指定していない場合は public_html 内に入れます。

User-agent: *
Disallow: /

Let’s Encrypt の代わりに ZeroSSL を使用できますか?

🎈 zerossl-s.dom.my.id

ページ運営者が ZeroSSL での発行・自動更新ができる事を確認しています。
ZeroSSL が自動更新までできるレンタルサーバ・Web サービスは珍しいので
これが実現できる DOM Cloud のメリットは大きいです。

  1. ZeroSSL を使用した事がない場合は ZeroSSL のサイトでアカウントを登録して下さい。
    アカウントに登録されたメールアドレスが発行時に必要となります。
     ZeroSSL
  2. DOM Cloud で適用するホストを作成します。テンプレートは初期状態でも構いません。
    もちろんすでに作成しているホストを使用する事もできます。
  3. ssh にログインし、acme.sh を用いて ZeroSSL の証明書を発行します。
    他のクライアントは root 権限を要します。acme.sh はユーザー権限で発行可能です。
     acmesh-official/acme.sh | GitHub
  4. Webmin にログインし、発行した ZeroSSL を設定します。
    また cron で自動更新するよう設定します。1 日 1 回が理想的でしょう。
  5. テンプレートを使用する場合は次の指定を削除します。
features:
- ssl

テンプレートで ZeroSSL の発行も可能です。新規作成時が理想的です。
メールアドレス name@example.net を変更し、Template に次だけを入れて下さい。

commands:
- cd ~
- git clone https://github.com/acmesh-official/acme.sh.git
- cd acme.sh
- ./acme.sh --register-account -m nameï¼ example.net --server zerossl
- ./acme.sh --issue -d ${DOMAIN} -w ~/public_html --server zerossl

~/.acme.sh/DOMAIN 内に証明書 DOMAIN.cer と DOMAIN.key が入ります。
数分経過すると Deploy でその詳細を確認できます。
実際に Web で使用したいテンプレートはこの Deploy で実行できます。

Wenmin でこれを設定すれば ZeroSSL で表示できるようになります。
cron も Webmin で設定できます。コマンドは次のようになります。1 日 1 回が理想です。

/home/user/acme.sh/acme.sh --cron --home /home/user/.acme.sh > /dev/null`

静的サイトジェネータなどを使用し root の場所が puclic_html から変わる場合は
~/.acme.sh/DOMAIN/DOMAIN.conf の次の行も変更して下さい。
証明書の更新で使われるので、変更を忘れると証明書が期限切れになります。

Le_Webroot='/home/user/public_html

メールアドレスに期限前のル通知が届きます。ZeroSSL は更新済みでも送ってきます。
届いた段階で Web を参照し、証明書が更新されているのを確認して下さい。