Made with Node.js, Express, Prisma, written in Typescript.
Made with MUI's components, React and create-react-app.
-
Fork this project
-
Make sure your NodeJS and yarn versions are up to date
-
If you are using Windows, make sure to use Git Bash as your terminal
-
Setup your local Postgres databases (labrute + etwin)
-
Copy
.env.sampleto.envand adapt the variables -
Optional: Create an
eternaltwin.local.tomlconfig file for Eternaltwin. You don't need it to start LaBrute, but it may be useful for more advanced usage. (An example is provided in the eternaltwin.local.toml.sample file) -
Install dependencies:
yarn install(This should also setup your database from theschema.prismafile and the migrations) -
Make sure to initialize your etwin database by running
yarn eternaltwin db sync -
Start the server, client and etwin local server with
yarn dev -
Important: Disable your adblocker for the local development environment, as it may block fingerprint requests
-
Commit and push your changes
-
Create a pull request to merge your fork into
main
- Run
yarn db:sync:dev
-
Edit
server/src/seed.ts -
Run
yarn db:seed
-
Set the environment variables
-
Install dependencies:
npm ci(This should also compile and built everything needed) -
Sync your database with
yarn db:sync:prod -
Start the server with
yarn start -
Deploy the frontend using a static server of your choice like Nginx
-
Environment variables can be overriden without restarting the server by setting them in the database
Configtable
- Make sure to run
yarn core:exportafter creating/deleting files in thecorepackage, as it will update the indexes accordingly
-
Requirements: install ffmpeg on your Pc, node v18 minimum
-
Run the script :
yarn sfx:generateif you use git bash andyarn sfx:wsl:generateif you use WSL
- After editing any of the main Google accessible pages, run
yarn sitemap:generateto update the sitemap
├── client
│ ├── build # Compiled frontend
│ ├── public
│ │ ├── i18n # Folder containing all the translations
│ │ └── ... # Any other static file
│ └── src
│ ├── components # Reusable components
│ ├── hooks # React hooks
│ ├── layouts # Layouts
│ ├── theme # Theme variables
│ ├── utils # Utility functions
│ └── views # Views
├── core # Shared ressourcs for both front and back end
│ ├── src
├── prisma # Prisma types definitions for both front and back end
│ ├── src
└── server # Back end
├── prisma # DB
└── src
├── controllers # Controllers
├── utils # Utility functions
└── ...
This project uses a dual licensing structure:
- Code (TypeScript, JavaScript, configuration files, etc.): Licensed under PolyForm Noncommercial 1.0.0
- Assets (images, sprites, textures, sounds, and other media): Licensed under CC BY-NC-SA 4.0
Both licenses prohibit commercial use. You are free to use, modify, and distribute this project for personal, educational, or non-profit purposes, but any commercial use is forbidden.
This project is NOT available for use in any Web3, cryptocurrency, blockchain, NFT, or distributed ledger technology projects.
Any use in connection with cryptocurrencies, blockchain technologies, NFTs, DeFi, DAOs, or any other web3-related projects is strictly forbidden. This includes but is not limited to:
- Cryptocurrency exchanges, wallets, or payment systems
- NFT marketplaces, minting platforms, or collections
- Blockchain networks or distributed ledger implementations
- Decentralized finance (DeFi) protocols or applications
- Decentralized autonomous organizations (DAOs)
- Smart contracts or dApps on any blockchain
- Any project that integrates with, promotes, or facilitates cryptocurrency or blockchain technology
Violation of this restriction will be considered a breach of the license terms.