The most recent production version can be used here.
The development version can be tried here. This version can break compatibility with past production releases, that is, there is no expectation that recordings made on the development version will remain readable.
Get the current version of c-to-json
to the root of this project. You can retrieve the last compiled version (linux) like so:
curl -O https://codecast.france-ioi.org/next/c-to-json
chmod +x c-to-json
sudo apt-get install libncurses5
Copy config.json.template
to config.json
and edit it.
If not using HTTPS, set session.cookie.secure to false and remove tht https
section.
If you want to use HTTPS, use mkcert to generate your certificate.
If not using oauth2, set "auth" to {}
: you'll be able to use the guest mode only.
To be able to store recordings and play them, you'll need an AWS S3 bucket.
Create an AWS account and then a S3 bucket.
In the "Permissions" section of your bucket, setup this CORS configuration:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
In the "Permissions" section of your bucket, you'll also want to edit "block public access" and disable blocking all public access.
Then generate AWS credentials in "My Security Credentials" > "Access keys" and use these credentiels to fill in the config.json
file.
Create a local MySQL database and import the file db_schema.sql
into it.
Add rows in user_configs
where value is a json object with keys
"s3AccessKeyId", "s3SecretAccessKey", "s3Region", "s3Bucket", and
"uploadPath". The row with user_id 0 is used for guest settings.
Fill the config.json
file with your database credentials.
-
setup codecast-examples project and proxy it to '/examples' also install a cors plugin in your browser to get rid of cors issues.
-
when login in for the first time in development, check the console log for the user_id, which you need to add the db row for the user, that's mentioned above
-
for uploading your own codecast for your dev setup, use "/dev-upload" url, add in backend/server.js, instructions are in there
In order to be able to download the @france-ioi packages, you need to create a github access token (https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) and put in your home directory a ~/.npmrc file with the following content :
registry=https://registry.npmjs.org/
@france-ioi:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=ghp_...YOUR_ACCESS_TOKEN
You can then install and run the project, or update it:
git submodule update --init
yarn install
yarn dev
To build the project for production use, run:
git submodule update --init
yarn install
yarn build
yarn start
1 : Build the offline ZIP :
yarn pack-offline
2 : Install and configure archive-builder
3 : Fill the configuration in /config.json
- builderUrl is the URL of the archive-builder you installed in the previous step.
- builderSecret is the builder secret.
- ownSecret A secret string you can generate with :
node -e 'console.log(require("crypto").randomBytes(32).toString("base64"))'
Documentation for linker : https://github.com/epixode/epic-linker