diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c3bbff2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +_site/* + +Gemfile.lock diff --git a/README.md b/README.md index e63565d..63b93f4 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # .github -Project Readme +Project Readme \ No newline at end of file diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 472eeb8..0000000 --- a/_config.yml +++ /dev/null @@ -1,6 +0,0 @@ -title: Linguly Docs -description: Linguly, an open source language learning platform -theme: jekyll-theme-minimal -baseurl: "" # leave empty unless using a subpath -url: "https://linguly.github.io/.github" -markdown: kramdown \ No newline at end of file diff --git a/_pages/intro.md b/_pages/intro.md deleted file mode 100644 index 7206489..0000000 --- a/_pages/intro.md +++ /dev/null @@ -1,132 +0,0 @@ -# Linguly, Language Learning Platform - -Linguly is a language learning platform to serve different methods of language learning as a core architecture. It is providing the ground to easily switch between different methods and use them - -## Why? - -*What is the problem we want to solve here?* - -With the rapid improvement in language models and AI, a lot of language learning possibilities have been unlocked. -We believe that the way we were traditionally learning language has been changed and new methods can be improved in different ways. -Still finding an optimum tool to be the best language learning companion is not easy and it might be different for each individual. -Therefore, a flexible platform to configure and try different methods can help us easily developing and experimenting new methods. -To tackle the issue thoroughly, this platform should have: - -- flexible Interfaces (Interaction methodology) -- flexible Agents (Method's logic) -- flexible Language Model Access - -## What? - -Based on these three flexibility idea, we have defined the initial architecture as following: - -### Architecture Overview - -![Linguly Architecture Overview](../linguly_architecture_overview.svg) - -### Linguly Core - -[Linguly Core](https://github.com/Linguly/linguly-core) is the central place to shape the platform. It contains the [Agents](https://github.com/Linguly#agents) which are configurable using YAML files. -Agents' capabilities are limited to the definition of each type which can be extended by the [contributors](https://github.com/Linguly#how-to-contribute). - -### Agents - -Agents are our language learning methodology logic. In each Agent we can define: - - - which [interfaces](https://github.com/Linguly#interfaces) can be connected - - which [models](https://github.com/Linguly#models) to be used - - what data to be stored and what to be read from the [shared context](https://github.com/Linguly#shared-context) - - how to interact with the user - -We can define and extend Agent's type and categories by developing them. -However, each Agent is an instance of those types which has been configured using the YAML files. -In this way, we can make them easily configurable and extendable by any user. -> **NOTE**: Initially we need a PR and redeployment for each new YAML file but later when we introduce the `Linguly Lab`, those can be configured via a separate interface. - -### Interfaces - -Interfaces are not only the provision of Agents in different devices and entry points, but also making experimenting/experiencing different interaction methodologies possible. -Not all interfaces will be able to serve all Agents' capabilities and vice versa. But they all should provide these basic functionalities: - -- user login -- showing the list of available Agents for the interface -- switch between interfaces -- link to this page to get to know other interfaces and options :) - -#### Current Interfaces - -- [Telegram Interface](https://github.com/Linguly/telegram-interface) - - No [Linguly Live](https://github.com/Linguly#linguly-live) instance yet - -### Models - -Agents should have access to different language models based on their capabilities. -These models might be hosted open source models or a connection to the external models. -The 'Model Proxy' will manage the connection and interaction with different models. - -### Shared Context - -Shared Context is a set of information shared between Linguly Agents to recognize a user's [language state](https://github.com/Linguly#language-state) and [learning goals](https://github.com/Linguly#learning-goal) in order to adjust the learning experience accordingly. -> The `DB Proxy` pictured in the architecture will be the connector switch to enable us trying different types/instances of Dbs. However, in the initial implementation it will be simplified. - -#### Learning Goal - -To begin a learning journey you can define a goal. -Interfaces should allow you to switch between goals and act accordingly to serve the new goal. - -Each goal may include: - -- Language -- Language type (for business, for study, ...) -- Language level -- Deadline (optional, not supported initially) - -#### Language State - -Here we try collecting information to tell agents what is your current level/progress according to your previous interactions with any agent. -It can include user manual input as well. - -State may include: - -- Current Language Level (manual input) -- Language Proficiency test result (from test Agents) -- Words/Statements state -- grammar state (optional) - -### Linguly Live - -For each interface, we are hosting a free version to be used by the community. These instances has named as Linguly Live. -If you want to host a private instance to own your data you can follow the instructions in each repo and deploy them. - -## How? - -Linguly is an open-source project so it requires passionate people who share the same goal. We want to work together to build a solution that will benefit the society and people to be empowered and learn languages efficiently. - -There will be a core team of main contributors to plan the project and manage its daily requirements. However, it is open to everyone to [contribute](https://github.com/Linguly#how-to-contribute) and help us grow together. - -### University Alliances - -This project has designed in a way to be suitable for variety of academic projects and experiments in language learning area. So if you found useful for your project, feel free to [contact](https://github.com/Linguly#contact-us). We will be super happy to support and collaborate. - -### How to contribute? - -If you wish for a feature or change, have same passion and want to help, or just want to learn and try something, feel free to: - -- [contact us](https://github.com/Linguly#contact-us) -- create a new issue -- pick an issue and start working on it - -### How to support financially? - -Currently, we are covering the basic costs ourselves with **no donation option**. However, we might set up donation options when the project grows to a certain level. -So if you want to support us now: - -- talk about this project with your friends and colleagues -- use it and give us feedback -- share your experience in social media -- contribute in the development! - -## Contact Us - -- Send an email to: linguly.contact@gamil.com -- Start a [discussion](https://github.com/orgs/Linguly/discussions) diff --git a/_pages/setup/firewall-setup.md b/_pages/setup/firewall-setup.md deleted file mode 100644 index 7f85308..0000000 --- a/_pages/setup/firewall-setup.md +++ /dev/null @@ -1,63 +0,0 @@ -# Firewall Setup -## Configure Firewall Rules - -To achieve the desired firewall rules, follow these steps: - -1. **Allow SSH Traffic** - - Allow SSH traffic on port 22: - ```sh - sudo ufw allow 22/tcp - ``` - -2. **Allow Application Ports for Coolify** - - Allow traffic on ports 6002, 6001, and 8000: - ```sh - sudo ufw allow 6002/tcp - sudo ufw allow 6001/tcp - sudo ufw allow 8000/tcp - ``` - - > **NOTE**: 8000 can be removed if you are using your domain to access the dashboard. - -3. **If you want to use the domain to access the dashboard** - Add 443 and 80 and remove 8000: - ```sh - sudo ufw allow 443/tcp - sudo ufw allow 80/tcp - sudo ufw delete allow 8000/tcp - ``` - -3. **Enable the Firewall** - - Enable the firewall to apply the rules: - ```sh - sudo ufw enable - ``` - -4. **Verify Firewall Status** - - Check the status to ensure the rules are correctly applied: - ```sh - sudo ufw status - ``` - -The expected output should include: - -```terminal -Status: active - -To Action From --- ------ ---- -22/tcp ALLOW Anywhere -6002/tcp ALLOW Anywhere -6001/tcp ALLOW Anywhere -443/tcp ALLOW Anywhere -80/tcp ALLOW Anywhere -22/tcp (v6) ALLOW Anywhere (v6) -6002/tcp (v6) ALLOW Anywhere (v6) -6001/tcp (v6) ALLOW Anywhere (v6) -443/tcp (v6) ALLOW Anywhere (v6) -80/tcp (v6) ALLOW Anywhere (v6) -``` diff --git a/_pages/setup/how-to-setup.md b/_pages/setup/how-to-setup.md deleted file mode 100644 index 35a0677..0000000 --- a/_pages/setup/how-to-setup.md +++ /dev/null @@ -1,41 +0,0 @@ -# How to host Linguly from scratch - -Here we are trying to document a step-by-step guid to self host a Linguly instance using [Coolify](https://coolify.io/). -It doesn't mean that this is the only way to host it but only a recommendation and guide to make it easier. - -## 1- Where to run? - -First step is to decide if you want to run it on an own system/running locally or deploy it on a server you own to access it easier from everywhere. - -For the first option you can follow the local setup guides to run each app locally. - -However, in this guide we are focusing on running them on a server using Coolify. - -If you don't own a server, you can get a VPS (Virtual Private Server) from one of the well known providers such as: - -- [Contabo](https://contabo.com/desktop/DE/en/vps/) -- [Hostinger](https://www.hostinger.de/vps) -- [Ultahost](https://ultahost.com/vps-hosting) - -Minimum of 4 vCPU, 6GB RAM, 50GB Storage should be generally enough. - -At the end, all we need here to continue to next steps is an IP and root password of the VPS server to do SSH. - -## 2- Setup Coolify - -Follow the quick installation from Coolify to install it in your server: -- https://coolify.io/docs/installation -- if you need further help for the firewall setup you can follow [this guide](./firewall-setup.md) -- after the installation is done you can follow the steps [in this video](https://www.youtube.com/watch?v=taJlPG82Ucw&t=232s) to setup the domain for your Coolify instance - -- add Linguly's [Telegram Interface](https://github.com/Linguly/telegram-interface) and [Linguly Core](https://github.com/Linguly/linguly-core) using [the Github app integration](https://youtu.be/taJlPG82Ucw?feature=shared&t=1898) or just clone the latest - - configure the `BOT_TOKEN` and `LINGULY_CORE_BASE_URL` for the telegram interface using the environment variable - > **NOTE**: `LINGULY_CORE_BASE_URL` can be your Linguly Core container name plus the exposed port e.g. `http://-:3001` - ![](./images/container-name.png) - ![](./images/environment-variables.png) - -## 3- Setup an LLM Model - -In order to setup LLAMA models you can follow the steps [here](setup-ollama.md) to use ollama APIs. - -Otherwise if you have an API, you can setup in the linguly environment variables. diff --git a/_pages/setup/images/container-name.png b/_pages/setup/images/container-name.png deleted file mode 100644 index d6632e8..0000000 Binary files a/_pages/setup/images/container-name.png and /dev/null differ diff --git a/_pages/setup/images/environment-variables.png b/_pages/setup/images/environment-variables.png deleted file mode 100644 index e1142ac..0000000 Binary files a/_pages/setup/images/environment-variables.png and /dev/null differ diff --git a/_pages/setup/setup-ollama.md b/_pages/setup/setup-ollama.md deleted file mode 100644 index d65c30f..0000000 --- a/_pages/setup/setup-ollama.md +++ /dev/null @@ -1,18 +0,0 @@ -# Setup Ollama for BasicModel - -One of the easiest way to host an open source model and connect to Linguly is to host a model from Ollama library in Coolify. - -## How to? - -### 1. Download and Run a Model Using Ollama - -1. Add ollama-with-open-webui in Coolify resources to a docker network same as your Linguly service. -1. Go to the terminal and connect to ollama api -1. Use the following command to download a desired model: `ollama pull llama3.2:3b` - 1. To check the result you can use `ollama list` - 1. If you want to run and test the model in terminal: `ollama run llama3.2:3b` - - -## For Local Tests - -You can install ollama locally from [here](https://ollama.com/download) and then `pull` a model similarly. diff --git a/_posts/2025-01-26-welcome-to-docs.md b/_posts/2025-01-26-welcome-to-docs.md deleted file mode 100644 index e26fb4f..0000000 --- a/_posts/2025-01-26-welcome-to-docs.md +++ /dev/null @@ -1,14 +0,0 @@ -```markdown ---- -title: "Welcome to Linguly Docs!" -date: 2025-01-26 ---- - -# Welcome to Linguly Docs! - -Welcome to the official documentation blog for Linguly, your go-to language learning platform. We're excited to have you here and can't wait to share more about our journey, features, and how you can get involved. - -## What is Linguly? - -Linguly is a flexible and innovative language learning platform designed to adapt to various learning methods. With advancements in AI, Linguly provides a versatile environment for experimenting with different language learning techniques. - diff --git a/index.md b/index.md deleted file mode 100644 index b210dbb..0000000 --- a/index.md +++ /dev/null @@ -1,9 +0,0 @@ -# Welcome to Linguly Docs - -## Pages -For detailed information, check the following sections: -- [Introduction](./_pages/intro.md) - -## Posts -To see our posts, check the following links: -- [Welcome](./_posts/2025-01-26-welcome-to-docs.md) \ No newline at end of file diff --git a/profile/README.md b/profile/README.md index ac6b982..a52c56b 100644 --- a/profile/README.md +++ b/profile/README.md @@ -1,3 +1,8 @@ +--- +layout: page +title: About Linguly +permalink: /about/ +--- # Linguly, Language Learning Platform Linguly is an **open-source** language learning platform to serve a variety of language learning methods as a core architecture, focusing on transparency and flexibility.