feat: easy setup scripts

This commit is contained in:
zkldi
2024-05-11 19:50:13 +01:00
parent d0811e44e0
commit 5720bf00c1
7 changed files with 177 additions and 48 deletions
+1 -1
View File
@@ -4,4 +4,4 @@ RUN pip install mkdocs-material==9.5.17
COPY docs ./
CMD ["mkdocs", "serve"]
CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"]
+11 -1
View File
@@ -22,9 +22,19 @@ There are way more features that Tachi has, and you can read about all of them [
## Setup
Tachi maintains a setup guide that is easy to follow even if you've never programmed before.
Check the [Documentation](https://docs.tachi.ac/contributing/setup) for how to set Tachi up.
You can then check the component-specific guides to see how to run those components and contribute back.
You can then check the component-specific guides to see how to run those components and contribute back!
## Quick Setup For Nerds
Already know what you're doing?
Install docker + docker-compose and use `./run.sh start` or `./run.bat start` to start Tachi.
Other commands you might want to execute are included inside the `run` file.
## Repository Info
+15 -7
View File
@@ -3,18 +3,18 @@ services:
mongo:
container_name: mongo
image: mongo:5
restart: always
restart: unless-stopped
ports:
- '27017:27017'
- "27017:27017"
volumes:
- tachi-volume:/data/db
redis:
container_name: redis
command: redis-server --save 60 1 --loglevel warning
image: redis:6
restart: always
restart: unless-stopped
ports:
- '6379:6379'
- "6379:6379"
volumes:
- tachi-redis:/data
tachi-server:
@@ -35,7 +35,7 @@ services:
volumes:
- ./:/app
ports:
- '8080:8080'
- "8080:8080"
environment:
REDIS_URL: redis
MONGO_URL: mongo
@@ -53,7 +53,7 @@ services:
volumes:
- ./:/app
ports:
- '3000:3000'
- "3000:3000"
tachi-seeds:
container_name: tachi-seeds
build:
@@ -74,7 +74,15 @@ services:
MONGO_URL: mongo
PORT: 8080
NODE_ENV: "dev"
tachi-docs:
container_name: tachi-docs
build:
dockerfile: Dockerfile.docs
ports:
- "3001:8000"
volumes:
- ./:/app
volumes:
tachi-volume:
tachi-redis:
tachi-logs:
tachi-logs:
+16 -12
View File
@@ -34,16 +34,7 @@ However, for Windows users we recommend installing the [Windows Terminal](https:
With a terminal open you can proceed to the next steps!
## 1. Getting Node and Docker.
You'll need `node` and `npm` in order to run Tachi. Install this from [the official NodeJS website](https://nodejs.org).
!!! info
If you are on linux, NodeJS will be provided by your package manager instead.
You may wish to use that instead. It honestly doesn't matter all too much.
Check that the install has worked by running `npm -v`. If you get an error message saying that `npm` was not found, try restarting the terminal.
## 1. Getting Docker.
To set everything else up for local development, we'll use [Docker](https://docker.com).
@@ -118,7 +109,17 @@ You should now be properly authenticated!
## 4. Start Tachi!
With a terminal open inside the `Tachi` folder you just cloned, run `npm start`.
With a terminal open inside the `Tachi` folder you just cloned, run this command:
=== "Windows"
```bat
run start
```
=== "Linux, MacOS"
```sh
./run.sh start
```
The frontend will be running on `http://127.0.0.1:3000`.
The backend will be running on `https://127.0.0.1:8080`.
@@ -131,6 +132,9 @@ The backend will be running on `https://127.0.0.1:8080`.
the browser that you trust these certificates. Otherwise, all client requests to
the server will silently be chomped by the browser.
!!! tip
Open the `run.bat` or `run.sh` files in vscode to see what other commands are available.
## 5. Editor Plugins
If you're using VSCode as your editor (I *really* recommend it!) You'll want a couple
@@ -144,7 +148,7 @@ Namely, Install the ESLint plugin, and enable "Format On Save" in your settings.
It's ridiculously convenient, and there's a bunch of other stuff that VSCode helps with.
## 8. OK, Now what.
## 6. OK, Now what.
Now that you've got a working version of Tachi running on your local PC, you should go check out the [component-specific contribution guides](./components.md)!
+31 -27
View File
@@ -3,6 +3,10 @@ site_description: Documentation for Kamaitachi, Bokutachi and related things.
site_author: zkldi
site_url: https://docs.tachi.ac
watch:
- "docs/"
- "mkdocs.yml"
theme:
name: material
features:
@@ -35,43 +39,43 @@ nav:
- "contributing/components/seeds.md"
- Cookbook:
- "contributing/cookbook/iidx-mdb.md"
- "contributing/cookbook/sdvx-mdb.md"
- "contributing/cookbook/bms-tables.md"
- "contributing/cookbook/iidx-mdb.md"
- "contributing/cookbook/sdvx-mdb.md"
- "contributing/cookbook/bms-tables.md"
- Supporting New Games:
- "game-support/index.md"
- Common Config:
- "game-support/common-config/index.md"
- "game-support/common-config/metrics.md"
- "game-support/common-config/metric-groups.md"
- "game-support/common-config/match-types.md"
- "game-support/common-config/versions.md"
- "game-support/common-config/index.md"
- "game-support/common-config/metrics.md"
- "game-support/common-config/metric-groups.md"
- "game-support/common-config/match-types.md"
- "game-support/common-config/versions.md"
- "game-support/server-impl.md"
- "game-support/client-impl.md"
- Game Information:
- "game-support/games/iidx-SP.md"
- "game-support/games/iidx-DP.md"
- "game-support/games/museca-Single.md"
- "game-support/games/chunithm-Single.md"
- "game-support/games/bms-7K.md"
- "game-support/games/bms-14K.md"
- "game-support/games/gitadora-Gita.md"
- "game-support/games/gitadora-Dora.md"
- "game-support/games/jubeat-Single.md"
- "game-support/games/maimaidx-Single.md"
- "game-support/games/popn-9B.md"
- "game-support/games/sdvx-Single.md"
- "game-support/games/usc-Controller.md"
- "game-support/games/usc-Keyboard.md"
- "game-support/games/wacca-Single.md"
- "game-support/games/pms-Controller.md"
- "game-support/games/pms-Keyboard.md"
- "game-support/games/itg-Stamina.md"
- "game-support/games/ongeki-Single.md"
- "game-support/games/iidx-SP.md"
- "game-support/games/iidx-DP.md"
- "game-support/games/museca-Single.md"
- "game-support/games/chunithm-Single.md"
- "game-support/games/bms-7K.md"
- "game-support/games/bms-14K.md"
- "game-support/games/gitadora-Gita.md"
- "game-support/games/gitadora-Dora.md"
- "game-support/games/jubeat-Single.md"
- "game-support/games/maimaidx-Single.md"
- "game-support/games/popn-9B.md"
- "game-support/games/sdvx-Single.md"
- "game-support/games/usc-Controller.md"
- "game-support/games/usc-Keyboard.md"
- "game-support/games/wacca-Single.md"
- "game-support/games/pms-Controller.md"
- "game-support/games/pms-Keyboard.md"
- "game-support/games/itg-Stamina.md"
- "game-support/games/ongeki-Single.md"
- Wiki:
- "wiki/index.md"
Executable
+49
View File
@@ -0,0 +1,49 @@
@echo off
where docker > nul 2>&1
if %errorlevel% NEQ 0 (
echo Docker isn't installed. Please install docker!
pause
exit 1
)
if "%1"=="" (
set "cmd=start"
) else (
set "cmd=%"
)
echo "running %cmd%"
if "%cmd%" == "start" (
docker compose -f docker-compose-dev.yml up --build -d
echo "Go to http://127.0.0.1:3000 to view Tachi!"
echo "Go to http://127.0.0.1:3001 to view Tachi's Documentation!"
) else if "%cmd%" == "stop" (
docker compose -f docker-compose-dev.yml down
) else if "%cmd%" == "logs-server" (
docker logs tachi-server -f
) else if "%cmd%" == "logs-client" (
docker logs tachi-client -f
) else if "%cmd%" == "logs-seeds" (
docker logs tachi-seeds -f
) else if "%cmd%" == "test-server" (
docker exec tachi-server pnpm test
) else if "%cmd%" == "test-seeds" (
docker exec tachi-seeds pnpm --filter ./scripts test
) else if "%cmd%" == "enter-seeds" (
docker exec tachi-seeds bash
) else if "%cmd%" == "sort-seeds" (
docker exec tachi-seeds node scripts/deterministic-collection-sort.js
) else if "%cmd%" == "load-seeds" (
docker exec tachi-server pnpm sync-database-local
) else if "%cmd%" == "validate-db" (
docker exec tachi-server pnpm validate-database
) else (
echo "Unknown command %cmd%: Exiting."
pause
exit 1
)
pause
Executable
+54
View File
@@ -0,0 +1,54 @@
#!/bin/bash
if ! which docker >/dev/null; then
echo "Docker isn't installed. Please install docker!"
exit 1
fi
cmd=${1:-start}
echo "running $cmd"
set -eo pipefail
case "$cmd" in
start)
docker compose -f docker-compose-dev.yml up --build -d
echo "Go to http://127.0.0.1:3000 to view Tachi!"
echo "Go to http://127.0.0.1:3001 to view Tachi's Documentation!"
;;
stop)
docker compose -f docker-compose-dev.yml down
;;
logs-server)
docker logs tachi-server -f
;;
logs-client)
docker logs tachi-client -f
;;
logs-seeds)
docker logs tachi-seeds -f
;;
test-server)
docker exec tachi-server pnpm test
;;
test-seeds)
docker exec tachi-seeds pnpm --filter ./scripts test
;;
enter-seeds)
docker exec tachi-seeds bash
;;
sort-seeds)
docker exec tachi-seeds node scripts/deterministic-collection-sort.js
;;
load-seeds)
docker exec tachi-server pnpm sync-database-local
;;
validate-db)
docker exec tachi-server pnpm validate-database
;;
*)
echo "Unknown command $cmd"
exit 1
;;
esac