多くの無料ホスティングは、Web アドレスにアクセスがないとアプリをスリープさせます。Bot にはアクセスがないので、Discord から静かにオフラインになってしまいます。Javer はそうしません。
無料のアプリが、アクセスがないことを理由に止められることはありません。無料プランでも Bot は昼も夜も Discord につながったままです。
Javer は Bot だと判断してバックグラウンドワーカーとして動かします。keep-alive のスクリプトも、ダミーの Web ページも、誤った「応答なし」の警告もありません。
Bot がクラッシュしても自動で再起動します。クラッシュが続く場合は、止まる直前に出力された行とともに、理由をパネルに表示します。
保存フォルダはアップデートしても消えません。SQLite のファイルや JSON の設定の置き場所に使えます。パスは JAVER_STORAGE に入っています。
トークンはコードではなく、パネルに入れます。
DISCORD_TOKEN などの環境変数を追加します。Bot は起動時にそれを読み込みます。
zip、公開 Git の URL、連携した GitHub リポジトリ、またはコマンドラインの javer deploy。
Javer が依存パッケージをインストールして Bot を起動し、バックグラウンドワーカーとして表示します。ログはリアルタイムで見られます。
それぞれのライブラリで書いた最小限の Bot です。どちらもこのままデプロイできます。
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once('ready', () => console.log(`Logged in as ${client.user.tag}`));
client.login(process.env.DISCORD_TOKEN);import os
import discord
client = discord.Client(intents=discord.Intents.default())
@client.event
async def on_ready():
print(f"Logged in as {client.user}")
client.run(os.environ["DISCORD_TOKEN"])Javer は次の順番で探し、最初に見つかったものを起動します。
| Bot にあるもの | Javer がすること |
|---|---|
Procfile に worker: python bot.py | そのとおりに起動 |
start スクリプトか main のある package.json | それを起動 |
server.js・app.js・index.js・main.js・bot.js | Node.js で起動 |
app.py・main.py・server.py・wsgi.py・application.py・bot.py | requirements.txt を入れて起動 |
discord.js・discord.py・py-cord・nextcord・disnake・hikari・Eris・Oceanic・Discordeno は自動で Bot と判断します。ダッシュボードや Flask の keep-alive など、Web ページも返す Bot は Web アプリとして扱い、そのページが応答しなくなればお知らせします。
いくつかのサーバーで動く小規模な Bot なら 512 MB でおおむね足ります。音楽 Bot、大きなギルド、画像や音声を扱う Bot は 1 GB 以上が目安です。
表示価格は米ドル建てです。円は目安で、為替レートにより変動します。お支払いは米ドルで請求され、カード会社の為替手数料がかかる場合があります。
わかりにくいところがあれば、お問い合わせください。ここに追加します。
はい。Javer Webhost の無料プランなら、Discord Bot を 1 つ、メモリ 512 MB・0.25 vCPU・ディスク 2 GB で 24 時間動かせます。クレジットカードは不要で、期限もありません。無料のアプリが、アクセスがないことを理由に止められることはありません。
はい。discord.py を書いた requirements.txt を入れて、ファイル名を main.py・bot.py・app.py のいずれかにするか、Procfile に worker: python ファイル名.py と書いてください。py-cord・nextcord・disnake も同じように動きます。
いいえ。Javer は Procfile か依存パッケージから Bot だと判断し、バックグラウンドワーカーとして動かすので、Web ページを返すことを求めません。ほかのホスティング向けに書いた keep-alive のスクリプトは不要です。
パネルで設定する環境変数に入れてください。たとえば DISCORD_TOKEN です。コードでは Node.js なら process.env.DISCORD_TOKEN、Python なら os.environ["DISCORD_TOKEN"] で読み込みます。トークンをコードに直接書かないでください。
保存フォルダに置いたデータは消えません。そのパスは環境変数 JAVER_STORAGE に入っています。それ以外のファイルは、デプロイのたびに新しいものに置き換わります。
自動で再起動します。クラッシュが続く場合はパネルにそう表示され、止まる直前に出力された最後の行を確認できます。