Skip to content

Repository files navigation

OyasaiServer Platform

おやさい鯖の開発を行っているモノレポです。インフラからプラグインまで、幅広く開発しています。

オープンソース・クローズドコントリビューションです。貢献に興味がある方は Discord1に参加して、サーバーに慣れてきたらぜひ運営チームに声をかけてください。

脆弱性を発見した場合も Discord1でご連絡ください。

はじめに

Important

Windows ユーザーはWSLをインストールしてください。全ての作業は WSL 内で行います。

開発には Nix を使用しています。Nix の使用を推奨しますが、基礎的なプラグイン開発のみの場合、Nix を使用しない開発も可能です。

Nix を使用した開発

Nix

  1. nixos.org から Nix をインストールしてください。マルチユーザーを推奨しますが、シングルユーザーでも問題ありません。インストール後にターミナルを再起動してください。

  2. いくつかの実験的要素を有効化する必要があります。

    experimental-features = nix-command flakes
    

    この行を、マルチユーザーの場合は /etc/nix/nix.conf に、シングルユーザーの場合は~/.config/nix/nix.confに追加してください、

  3. このレポジトリ内で nix flake show と実行してください。エラーが出なければ成功です。

  4. nix develop と実行してください。これが開発シェル (devshell)、Java など開発に必要なツールが全て入っています。

  5. Nix を使用してくると、キャッシュが溜まっていきます。定期的にnix-garbage-collect -dと実行して、キャッシュをクリアしてください。

フォーマット

nix fmt

フォーマットされていないコードは受け付けられません。

Nix を使用しない開発

Warning

Nix を使用しない開発は非推奨です。限定的なプラグイン開発のみ可能です。開発チームは正式にサポートしません。

Java

Java (JDK) 25をインストールしてください。

javac --version # javac 25 と出れば成功

フォーマット

./gradlew fmt

フォーマットされていないコードは受け付けられません。Nix を使用しない開発では、Kotlin ファイルのみフォーマット可能です。

プラグイン

./pluginsで開発を行います。

ビルド

全てのプラグインを並列でビルドするには、レポジトリのルートから:

./gradlew build --parallel

特定のプラグインのみビルドしたい場合は:

./gradlew :plugins:<plugin-name>:build

<plugin-name>をビルドしたいプラグインの名前に変更してください。

Nix でビルドする場合は:

nix build .#oyasai-plugins -L

全てのプラグインが並列でビルドされますが、passthru経由で独立したプラグインにアクセスできます。

依存

Gradle Version Catalog を使用して、プロジェクト内のバージョンを一貫させています。依存関係を変更したい場合は、./gradle/libs.versions.tomlを編集してください。

依存関係を変更した場合(依存を追加・削除、バージョンの変更、など)、依存のロックが必要です。

./gradlew lock

gradle.lockが再生成されます。

パッケージ

./packages以下はそれぞれビルド可能なパッケージです。Docker イメージ、実行可能なバイナリ、Gradle Plugin 等、Nix でビルド可能な様々なパッケージが入っています。

nix build .#<package-name>

でビルドできます。

Footnotes

  1. https://discord.gg/Pq8PHhZRrG 2

About

OyasaiServer monorepo

Resources

Stars

5 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages