
Aletheia
Plataforma de análise de discursos de personalidades públicas e combate a Fake News.
Installation
Fork this repo and clone it locally:
git clone https://github.com/AletheiaFact/aletheia
cd aletheia
Startup Mongo DB via Docker and Ory Kratos:
Install packages:
To run in dev mode
Access http://localhost:3000 in your browser.
FerretDB support
If you want to run FerretDB locally, use the follow script:
docker compose up ferretdb postgres-documentdb
Then change the MongoDB connection string in your config.yaml with:
db:
connection_uri: mongodb://ferretdb:ferretdb@localhost:27018
Configuration
Server
TBD
Platform
The Platform requires a configuration file that can be used to customize aspects of the site depending on your needs.
cp config/localConfig.example.ts config/localConfig.ts
Development DB
Build to production
- The build step should be run as follow:
Configuring Ory
Local environment
Execute the following command to start Ory Kratos using Docker Compose:
docker-compose up kratos kratos-migrate
You can also use the self-service-ui-node and maisluper images to have a better experience debugging Ory.
3. Verify the Ory Kratos Installation
After starting the service, you can verify that it's running by accessing the admin panel:
- Open your web browser and go to http://localhost:4434/admin
- You should see a
404 page not found message, which indicates that the server is running but the requested endpoint does not exist.
4. Configuration Setup
Configuring YAML Files
Copy the Ory configurations from config.example.yaml to your config.yaml and config.seed.yaml:
- Replace the values for
url, admin_url, admin_endpoint, and schema_id with the appropriate values based on your setup in config.example.yaml.
Configuring Environment Variables
Copy the Ory configurations from .env.example to your .env file:
- Update the
NEXT_PUBLIC_ORY_SDK_URL and ORY_SDK_URL variables as specified in the .env.example file.
5. Seed the Database
Run the following command to seed the database with initial data:
6. Verify User Creation
Check if users were created successfully by accessing the identities page:
Ory Cloud
Taking What You Need
- Create an account and a project on https://console.ory.sh/login.
- In Project settings, copy the SDK configuration URL and save it.
- On the same page, in API keys, create a new API key, copy it, and save it.
- Go to User Management in Identity Schema and click on Duplicate Identity Schema. Then, update the current schema to IdentitySchema.JSON and click Save after making the changes:
- Go to SDK Configuration url that you saved and add /schemas in the end of the url then copy the first id on the page and save it.
- If you want to check if it is the right id, at the same url paste after /schemas the / contaning the id that you just copied.
Making The Changes On Your Code
- First you gonna have to change the
authentication_type: to ory on your config.yaml and config.seed.yaml.
- Now take SDK Configuration url and paste on
url: in both pages config.yaml, config.seed.yaml and on ORY_SDK_URL= in your .env too.
- Now Paste the acess token that you saved on
access_token: in your config.yaml and config.seed.yaml and on
ORY_ACCESS_TOKEN= in your .env too.
- Do the same as above, but now with the Schema ID you saved, and paste it into
schema_id and on ALETHEIA_SCHEMA_ID= in .env.
Setting up your own UI to make the right redirects
Enable your TOTP Authenticator App
- On ory console go into Two-Factor authentication section and enable TOTP Authenticator Apps, then save it.
MongoDB Atlas Search
Creating indexes
- On mongoDB cloud go into Database > Your Cluster
- Once you select your cluster goes into the tab Search
- Here you can see all your created search indexes
- Click on CREATE INDEX button
- Select the Visual Editor configuration method and click in Next button
- Name your index, select the collection and click in Next button
- Create your own configurations by clicking on Refine Your Index
- Disable Dynamic Mapping and click in Add Field button in Fields Mapping
- Select your field name, disable dynamic mapping and click in Add Data Type button
- For personality search we select the name field
- For sentence search we select the content field
- For claim search we select the title and date field
- Select your data type and change the configs if you want to
- For claim title, personality name, and sentence content research, we select autocomplete data type, with 10 max grams and 3 min grams
- For claim date field, we select Date data type
- Add another data type if you want to click in the Add another data type icon
- Save your changes
- Review your new search index and click in Create Search Index button
Using Mongo DB Atlas
- Replace your
connection_uri with your MongoDB atlas connection URI in config.yaml
- Bellow of
connection_uri add atlas field with a true boolean
Feature Flag in Git Lab
- Create a GitLab account from the url: https://gitlab.com to be inserted into the project and have permission to access the closed tools
- Access Aletheia's GitLab account via the url: https://gitlab.com/aletheiafact/aletheia
- Click on the Deployments option
- Then click on the Feature Flag option
- Click on Configure, which is in front of the New Feature Flag button
- Appear the settings needed to be inserted into the .env e config.yaml
- The settings are the
api url, instance id and appName
- The
appName that should be inserted is: Local, you must pay attention to the capital letter which makes a difference here
API URL: URL where the client (application) connects to get a list of feature flags.
Instance ID: Unique token that authorizes the retrieval of the feature flags.
Application name: The name of the environment the application runs in (not the name of the application itself).
- Follow the example to put the variables in the right places.
Localstack (AWS)
docker-compose up -d localstack # Run in detached mode
Create a s3 bucket
docker-compose exec localstack awslocal s3 mb s3://aletheia