Lewati ke konten
Corsace Documentation
DiscordGitHubTwitchTwitterYouTube

Memulai

Untuk menggandakan repositori:

Apabila kamu ingin membantu untuk menerjemahkan Corsace, mintalah akses pada situs https://translate.corsace.io dan bergabunglah ke server Discord Corsace

*Gunakan hak admin pada konsolmu pada saat menjalankan perintah.

Instal node-modules:

OSCmd
WSL/Unixgit clone https://github.com/Corsace/Corsace
Windows*git clone -c core.symlinks=true https://github.com/Corsace/Corsace

*Gunakan hak admin pada konsolmu pada saat menjalankan perintah.

Pada repositori yang kamu fork, kamu dapat mengubah tautan github sesuai kebutuhanmu.

Instalasi

Catatan: Pastikan kamu menggunakan node versi 16.6.0 atau lebih tinggi agar berbagai fitur Discord yang terdapat pada repositori ini dapat berjalan dengan baik.

Instal node-modules:

npm i

Paket

The callback URL should be set to:

Paket utama:

Paket lainnya:

Konfigurasi Awal

Gandakan config/default.json ke config/user/$USER.json, dengan $USER merupakan nama pengguna sistem (yang dapat kamu akses melalui process.env.USER atau USERNAME milik node).

Pada terminal, jalankan node dan ketik process.env.USER untuk mencari tahu nama penggunamu.

Ke depannya, dokumentasi ini akan merujuk pada nilai config/user/$USER.json personal pada berkas config milikmu sebagai config.

API osu!

config.osu.v1.apiKey

Kamu dapat memperoleh kunci API v1 pada bagian “API Lawas” yang terdapat pada halaman pengaturan akun di https://osu.ppy.sh/home/account/edit.

config.osu.v2.clientId
config.osu.v2.clientSecret

You will need to create a “New OAuth Application” in the “OAuth” section from the same osu! account settings page containing the API v1 key at https://osu.ppy.sh/home/account/edit.

Add [config.corsace.publicUrl]/api/login/osu/callback to the Application Callback URLs section in the popup.

Create and seed the whole Corsace database using: NODE_ENV=development npm run -- typeorm migration:run -d ormconfig

Apabila sudah, kamu akan memperoleh Client ID dan Client Secret yang akan perlu untuk kamu salin ke berkas config milikmu pada kolomnya masing-masing.

config.osu.bancho

Kamu dapat memperoleh kata sandi IRC password at the bottom of the same osu! accounts settings page at https://osu.ppy.sh/home/account/edit.

Apabila kamu menggunakan akan osu! khusus bot, pastikan kamu mengatur nilai parameter botAccount ke true; apabila tidak, atur nilai ini ke false.

Discord

config.discord

Pengaturan

Langkah ini merupakan langkah pengaturan yang paling memakan waktu. Kamu akan memerlukan:

Developer Mode yang Aktif

Centang opsi yang terdapat pada

User Settings > Appearance > Advanced > Developer Mode

Opsi ini akan memungkinkan kamu untuk mengklik kanan ID pengguna, role, channel, dan lain sebagainya dan menyalin ID mereka.

Server Discord

Buat server Discord baru apabila kamu belum memiliki server. Proses ini hanya akan memerlukan satu channel. Buat role “staff” dan berikan role ini kepada dirimu sendiri.

Klik kanan nama servermu dan pilih “Copy ID”. Salin ID ini ke config.discord.guild.

Klik kanan nama servermu dan pilih “Copy ID”. Kamu dapat membuat role untuk berbagai kebutuhan pada config, ATAU kamu juga dapat menyalin ID role ini pada baris config berikut untuk memberikanmu kuasa penuh akan segala sesuatunya.

config.discord.roles.corsace.corsace
config.discord.roles.corsace.core
config.discord.roles.corsace.headStaff
config.discord.roles.corsace.staff

yang dilanjutkan dengan menyalin ID kamu pada seluruh role “staff” lainnya pada config.

Aplikasi Discord

Tuju https://discord.com/developers/applications dan buat aplikasi baru melalui menu “New Application”.

Klien

Kamu akan perlu untuk menambahkan “Client ID” dan “Client Secret” kepada config sebagai berikut:

discord: {
    ...,
    clientId: "<Client ID>",
    clientSecret: "<Client Secret>",
}

Client ID dan secret ini dapat ditemukan pada tab OAuth2 milik aplikasi Discord.\

OAuth2

Tuju bagian OAuth2 pada bot dan tambahkan URL redirect berikut:

config.corsace.publicUrl + /api/login/discord/callback

Tambahkan juga URL redirect yang mengandung Client ID milik bot milikmu dengan format sebagai berikut:

https://discordapp.com/oauth2/authorize?&client_id=<CLIENT ID>&scope=bot&permissions=8

Ikuti tautan ini untuk menambahkan bot milikmu ke dalam server.

Bot

Tuju bagian Bot dan salin token bot milikmu. Sisipkan token ini pada config.discord.token.

Pastikan kamu telah mencentang Server Members dan Message Content pada daftar pilihan yang tersedia pada menu Privileged Gateway Intents sebelum memulai bot. Apabila tidak, bot kamu tidak akan berjalan dan kamu akan dihadapkan dengan pesan error [DISALLOWED INTENTS].

Webhook GitHub

Langkah ini sepenuhnya opsional, dan hanya akan berguna apabila kamu benar-benar ingin melacak rekam jejak aktivitas fork GitHub milikmu di Discord dan memanfaatkan webhook GitHub milik Corsace.

Pada channel Discord yang ingin kamu gunakan sebagai tempat untuk menerima notifikasi, buat webhook baru melalui Settings -> Integrations -> Create Webhook, salin URL webhook tersebut, dan sisipkan pada config.github.webhookUrl di configmu. Buat kata sandi dan tempatkan kata sandi ini pada config.github.webhookSecret.

Pada Github, tuju pengaturan repositori dan buat webhook baru. Tulis URL berikut pada kolom yang tersedia:

config.corsace.publicUrl + /api/github

Tentukan tipe konten ke application/json beserta dengan secret webhook milik kata sandi yang kamu buat sebelumnya.

Database

config.database

Pengaturan

Terdapat dua cara untuk mengatur database, baik melalui Docker atau secara manual.

Melalui Docker (Direkomendasikan)

Kami menyediakan berkas docker-compose.yml yang akan bertindak selayaknya berkas produksi. Kamu dapat memulai layanan database dengan menggunakan perintah: docker-compose up -d database atau npm run database.

Database ini akan merespon permitaan pada 127.0.0.1:3306 dengan nama database, nama pengguna, dan kata sandi corsace.

Pengaturan MariaDB Manual

Apabila kamu tidak ingin menggunakan Docker, kamu akan perlu untuk mengistal MariaDB dan membuat database kosong yang dapat kamu namai sesuka hati.

Untuk membuat database ini, kamu hanya perlu untuk menjalankan:

mysql -u root -p
MySQL> create database <new_db_name>; 

Pastikan kamu memperbarui config.database dengan nama dan informasi kredensial database yang akan kamu gunakan.

Menghasilkan Seed Database

Berikan seed kepada seluruh database Corsace melalui perintah: NODE_ENV=development npm run -- typeorm migration:run -d ormconfig

Penyimpanan Objek/S3

Kami menggunakan media penyimpanan objek yang kompatibel dengan S3 untuk menyimpan dan melayani paket beatmap, yang seluruhnya terkonfigurasi dalam config.s3.

Walaupun proyek ini diutamakan untuk Cloudflare R2, kamu dapat menggunakan layanan penyimpanan objek S3 lainnya selama layanan tersebut mendukung unggahan multi-bagian dan URL pre-signed.

Kami menggunakan tiga bucket:

  • team-avatars merupakan bucket publik yang menyimpan avatar tim, yang dapat dilayani oleh CDN tanpa autentikasi
  • mappacks merupakan bucket publik yang menyimpan paket map publik, yang dapat dilayani oleh CDN tanpa autentikasi
  • mappacks-temp merupakan bucket pribadi yang menyimpan paket beatmap privat yang tidak ditujukan untuk akses publik

Paket beatmap yang dihasilkan akan terlebih dahulu diunggah ke bucket ini, di mana para pengguna akan kemudian diberikan akses melalui URL yang telah ditandatangani sebelumnya (pre-signed URL).

Paket beatmap yang bersifat privat tidak ditujukan untuk disimpan secara permanen. Kamu dihimbau untuk mengatur agar paket beatmap ini akan dihapus secara otomatis setelah 1 hari.

Paket beatmap yang ke depannya akan dirilis secara publik akan dipindahkan ke bucket mappacks.

Cloudflare R2

Tuju halaman dasbor Cloudflare R2. Aktifkan paket Cloudflare-mu apabila belum aktif (hati-hati untuk tidak melebihi batas penggunaan pada paket gratis).

Buat bucket mappacks dan team-avatars dan aktifkan subdomain R2.dev mereka, atau hubungkan domain khusus untuk masing-masing bucket.

Buat bucket mappacks-temp dan tambahkan peraturan agar objek otomatis terhapus setelah 7 hari (kosongkan kolom prefix apabila diminta).

Setelahnya, tentukan nama host ke <cloudflare account id>.r2.cloudflarestorage.com dan peroleh kredensial S3 dari https://dash.cloudflare.com/?to=/:account/r2/api-tokens. Pastikan kamu memberikan izin Edit kepada token alih-alih izin Read yang diatur secara default.

Centrifugo

Kami menggunakan Centrifugo untuk menampilkan notifikasi secara real-time. Kamu dapat menemukan dokumentasi seputar Centrifugo di sini.

Pengaturan

Pada Unix: Jalankan perintah npm run centrifugo untuk memulai server Centrifugo. Secara default, server ini akan tersedia pada http://localhost:8001 selama kamu tidak mengubah nilai port pada berkas konfigurasi.

Pada WSL/Windows ATAU apabila metode di atas tidak bekerja: Instal berkas biner (.exe) dari daftar rilisan terbaru dan tambahkan ke folder root proyek ini. Setelahnya, jalankan perintah npm run centrifugo:local untuk memulai server Centrifugo. Apabila kamu ingin mengubah nomor port yang digunakan, ubah nilai parameter ‘-p’ pada script yang terkait di berkas package.json dan URL API config milikmu.

Langkah Berikutnya

Apabila kamu ingin mengembangkan frontend web, kamu disarankan untuk mengikuti instruksi pada kedua dokumen berikut secara berurutan:

Untuk pengembangan dokumentasi, kamu dapat mengunjungi halaman ini.

Untuk pengembangan backend yang spesifik, kamu dapat mengunjungi halaman Menjalankan Lingkungan yang terkait melalui menu Server/Panduan yang terdapat pada sidebar.