From b1e9f21b0de2a524579c8efec94e451cee7e7ddf Mon Sep 17 00:00:00 2001 From: Stefano Date: Sun, 26 Nov 2023 18:25:01 +0100 Subject: [PATCH] fix: minor fixes for selfhosting (#196) --- README => README.md | 118 ++++++++++++++++++---------------- apps/download/.env.example | 3 +- apps/tasks/config/_default.js | 6 ++ scripts/buildCook.sh | 2 +- 4 files changed, 71 insertions(+), 58 deletions(-) rename README => README.md (68%) diff --git a/README b/README.md similarity index 68% rename from README rename to README.md index 1305b19f..f75c6af2 100644 --- a/README +++ b/README.md @@ -1,3 +1,4 @@ +# What is Craig? Craig is a multi-track voice recorder for Discord. Craig is divided into three components: The actual recording bot, the web page (for downloading recordings), and the audio processing scripts. @@ -16,68 +17,73 @@ ffmpeg-worker-craig.js. The audio processing scripts require the following command-line tools: -ffmpeg ( http://ffmpeg.org/ ) compiled with libopus support -flac ( https://xiph.org/flac/ ) -oggenc ( https://xiph.org/vorbis/ ) -opusenc ( http://opus-codec.org/ ) -fdkaac ( https://github.com/nu774/fdkaac ) -zip and unzip ( http://infozip.org/ ) +- ffmpeg ( http://ffmpeg.org/ ) compiled with libopus support +- flac ( https://xiph.org/flac/ ) +- oggenc ( https://xiph.org/vorbis/ ) +- opusenc ( http://opus-codec.org/ ) +- fdkaac ( https://github.com/nu774/fdkaac ) +- zip and unzip ( http://infozip.org/ ) Various components of the audio processing scripts require compilation or translation: +```sh cd cook for i in *.c; do gcc -O3 -o ${i%.c} $i; done -for i in *.svg; do inkscape -e ${i%.svg}.png $i; done +for i in *.svg; do inkscape -o ${i%.svg}.png $i; done +``` The self extractors require compilation if you want them: +```sh cd windows; make cd macosx; make - -Finally, the avatar stuff requires ImageMagick. - -If you want EnnuiCastr (browser-based recording) support, you must set -config.ennuicastr to the web address, which must be on the same host as Craig. -EnnuiCastr requires no further modification to work with Craig. - -If you want Ennuizel (browser-based processing) support, you must make it -available at the location linked from the downloader (dl.php), and run ces.sh -in ennuicastr/server. - -More information on Craig can be found at -https://craig.chat/ - - -Craig can integrate with other tools (largely also by Yahweasel) to provide -improved functionality. - -EnnuiCastr ( https://github.com/Yahweasel/ennuicastr/ ) is a browser-based -audio capture tool which records more reliably than Discord, and can be used to -get higher-quality audio if config.ennuicastr is set to an appropriate URL. - -Ennuizel ( https://github.com/Yahweasel/ennuizel/ ) is a browser-based audio -editor which can provide audio processing features too heavy to put on the -server. The 'ennuizel' directory here is the associated client plugin for -Ennuizel as well as the server component, only required when combining Ennuizel -with Craig. - - -No documentation is provided for running your own instances of Craig. A user -has kindly added an installation guide to the wiki on github at -https://github.com/Yahweasel/craig/wiki , but note that this is not maintained -by the author of Craig. - -RUNNING CRAIG IS NOT LIKE RUNNING ANY OTHER BOT. MOST OF THE COMPLEXITY OF -CRAIG IS NOT IN THE BOT ITSELF, BUT IN THE AUDIO PROCESSING. - -IF YOU ARE NOT FAMILIAR WITH C AND UNIX, DO NOT WASTE YOUR TIME OR MINE. IF YOU -DELUDE YOURSELF INTO THINKING YOU WILL HOST CRAIG ON WINDOWS, DO NOT WASTE YOUR -TIME OR MINE. CRAIG IS NOT MERELY BUILT FOR UNIX, CRAIG IS BUILT ON THE UNIX -PHILOSOPHY. - -"THIS ONE TIME I RAN A LINUX VM" IS NOT SUFFICIENT. "I CAN USE PUTTY" WON'T CUT -IT. IF THE WORD "WINDOWS" DOESN'T MAKE YOUR SKIN CRAWL, YOU ARE NOT THE KIND OF -PERSON WHO WILL SUCCEED IN RUNNING CRAIG. - -If you're familiar with C and Unix, it shouldn't be too difficult to get your -own Craig working. Yahweasel is generally happy to help if you have the -requisite background. +``` + +Finally, the avatar stuff requires ImageMagick. + +If you want EnnuiCastr (browser-based recording) support, you must set +config.ennuicastr to the web address, which must be on the same host as Craig. +EnnuiCastr requires no further modification to work with Craig. + +If you want Ennuizel (browser-based processing) support, you must make it +available at the location linked from the downloader (dl.php), and run ces.sh +in ennuicastr/server. + +More information on Craig can be found at +https://craig.chat/ + + +Craig can integrate with other tools (largely also by Yahweasel) to provide +improved functionality. + +EnnuiCastr ( https://github.com/Yahweasel/ennuicastr/ ) is a browser-based +audio capture tool which records more reliably than Discord, and can be used to +get higher-quality audio if config.ennuicastr is set to an appropriate URL. + +Ennuizel ( https://github.com/Yahweasel/ennuizel/ ) is a browser-based audio +editor which can provide audio processing features too heavy to put on the +server. The 'ennuizel' directory here is the associated client plugin for +Ennuizel as well as the server component, only required when combining Ennuizel +with Craig. + + +No documentation is provided for running your own instances of Craig. A user +has kindly added an installation guide to the wiki on github at +https://github.com/Yahweasel/craig/wiki , but note that this is not maintained +by the author of Craig. + +RUNNING CRAIG IS NOT LIKE RUNNING ANY OTHER BOT. MOST OF THE COMPLEXITY OF +CRAIG IS NOT IN THE BOT ITSELF, BUT IN THE AUDIO PROCESSING. + +IF YOU ARE NOT FAMILIAR WITH C AND UNIX, DO NOT WASTE YOUR TIME OR MINE. IF YOU +DELUDE YOURSELF INTO THINKING YOU WILL HOST CRAIG ON WINDOWS, DO NOT WASTE YOUR +TIME OR MINE. CRAIG IS NOT MERELY BUILT FOR UNIX, CRAIG IS BUILT ON THE UNIX +PHILOSOPHY. + +"THIS ONE TIME I RAN A LINUX VM" IS NOT SUFFICIENT. "I CAN USE PUTTY" WON'T CUT +IT. IF THE WORD "WINDOWS" DOESN'T MAKE YOUR SKIN CRAWL, YOU ARE NOT THE KIND OF +PERSON WHO WILL SUCCEED IN RUNNING CRAIG. + +If you're familiar with C and Unix, it shouldn't be too difficult to get your +own Craig working. Yahweasel is generally happy to help if you have the +requisite background. + \ No newline at end of file diff --git a/apps/download/.env.example b/apps/download/.env.example index 2fc9127c..97d94f80 100644 --- a/apps/download/.env.example +++ b/apps/download/.env.example @@ -1,4 +1,5 @@ -API_PORT=3000 +API_PORT=5029 +API_HOST=127.0.0.1 API_HOMEPAGE=https://craig.chat/ ENNUIZEL_BASE=https://ez.craig.horse/ TRUST_PROXY= diff --git a/apps/tasks/config/_default.js b/apps/tasks/config/_default.js index 1ee3ce50..a2ebf082 100644 --- a/apps/tasks/config/_default.js +++ b/apps/tasks/config/_default.js @@ -21,6 +21,12 @@ module.exports = { skipUsers: [] }, + microsoft: { + clientId: '', + clientSecret: '', + redirect: '' + }, + downloads: { expiration: 24 * 60 * 60 * 1000, path: '../download/downloads' diff --git a/scripts/buildCook.sh b/scripts/buildCook.sh index d98d6641..84f2b704 100755 --- a/scripts/buildCook.sh +++ b/scripts/buildCook.sh @@ -1,4 +1,4 @@ SCRIPTBASE=`dirname "$0"` SCRIPTBASE=`realpath "$SCRIPTBASE"` cd "$SCRIPTBASE/../cook" -for i in *.c; do gcc -O3 -o ${i%.c} $i; done && for i in *.svg; do inkscape -e ${i%.svg}.png $i; done +for i in *.c; do gcc -O3 -o ${i%.c} $i; done && for i in *.svg; do inkscape -o ${i%.svg}.png $i; done