A plataforma Open edX é uma plataforma orientada a serviços para criação e entrega de aprendizagem on-line em qualquer escala. A plataforma é escrita em Python e JavaScript e faz uso extensivo do framework Django. No nível mais alto, a plataforma é composta por um monólito, alguns aplicativos de implantação independente (IDAs) e microfrontends (MFEs) baseados no ReactJS.
Este repositório hospeda o monólito no centro da plataforma Open edX. Funcionalmente, o repositório da plataforma edx fornece dois serviços:
A documentação pode ser encontrada em https://docs.openedx.org/projects/edx-platform.
Instalar e executar uma instância Open edX não é simples. Recomendamos fortemente que você use um provedor de serviços para executar o software para você. Eles têm avaliações gratuitas que facilitam o início: https://openedx.org/get-started/
No entanto, se você tiver tempo e experiência, é possível autogerenciar uma instância Open edX de produção. Para ajudá-lo a criar, personalizar, atualizar e dimensionar sua instância, recomendamos o uso do Tutor, a distribuição Open edX baseada em Docker e apoiada pela comunidade.
Você pode ler mais sobre como começar a usar uma implantação de Tutor na página inicial do Site Ops em docs.openedx.org.
O Tutor também possui um modo de desenvolvimento que também o ajudará a modificar, testar e estender a plataforma edx. Recomendamos este método para todos os desenvolvedores do Open edX.
Também é possível ativar uma plataforma Open edX diretamente em um host Linux. Este método é menos comum e principalmente não documentado. A comunidade Open edX só poderá fornecer suporte limitado para isso.
A execução "bare metal" só é aconselhável para (a) desenvolvedores que buscam uma aventura e (b) administradores de sistema experientes que estão dispostos a assumir a complexidade da configuração e implantação do Open edX em suas próprias mãos.
SO: *Ubuntu 20.04
Intérpretes/Ferramentas:
Serviços:
Pacotes de idiomas:
Front-end:
npm clean-install
(produção)npm clean-install --dev
(desenvolvimento)Construção de back-end:
pip install -r requirements/edx/assets.txt
Aplicativo de back-end:
pip install -r requirements/edx/base.txt
(produção)pip install -r requirements/edx/dev.txt
(desenvolvimento) Alguns pacotes Python possuem dependências de sistema. Por exemplo, a instalação desses pacotes no Debian ou Ubuntu exigirá primeiro a execução de sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config
para satisfazer os requisitos do pacote mysqlclient
Python.
Crie dois bancos de dados MySQL e um usuário MySQL com permissões de gravação para ambos e configure o Django para usá-los atualizando a configuração DATABASES
.
Em seguida, execute as migrações:
./manage.py migração de lms ./manage.py lms migrar --database=student_module_history ./manage.py migração de cms
Crie ativos estáticos (para obter mais detalhes, consulte construindo ativos estáticos):
npm execute build # ou 'build-dev'
Baixe localidades e colete ativos estáticos (podem ser ignorados em sites de desenvolvimento):
fazer pull_translations ./manage.py lms collectstatic ./manage.py cms coletor estático
Configure o SSO do CMS (para desenvolvimento):
./manage.py lms manage_user studio_worker [email protected] --unusable-password # NÃO FAÇA ISSO NA PRODUÇÃO. Isso tornará sua autenticação insegura. ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type código de autorização --skip-autorização --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes id_usuário --client-id 'estúdio-sso-id' --client-secret 'estúdio-so-secret'
Configure o SSO do CMS (para produção):
Crie o usuário CMS e o aplicativo OAuth:
./manage.py lms manage_user studio_worker--senha inutilizável ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type código de autorização --skip-autorização --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes user_id
Faça login no administrador do Django (por exemplo, http://localhost:18000/admin/oauth2_provider/application/), clique no aplicativo que você criou acima ( studio-sso-id
) e copie seu "Segredo do cliente".
Em seu arquivo yaml LMS_CFG privado ou em seu módulo de configurações privado do Django:
- Defina
SOCIAL_AUTH_EDX_OAUTH2_KEY
como o ID do cliente (studio-sso-id
).- Defina
SOCIAL_AUTH_EDX_OAUTH2_SECRET
como o segredo do cliente (que você copiou).
Primeiro, certifique-se de que MySQL, Mongo e Memcached estejam em execução.
Inicie o LMS:
./manage.py lms runserver 18000
Inicie o CMS:
./manage.py servidor de execução cms 18010
Isso lhe dará uma plataforma Open edX praticamente sem cabeça. A maioria dos frontends foram migrados para "Micro-Frontends (MFEs)" que precisam ser instalados e executados separadamente. No mínimo, você precisará executar o Authentication MFE, o Learner Home MFE e o Learning MFE para navegar de forma significativa na IU.
O código neste repositório está licenciado sob a versão 3 da AGPL, salvo indicação em contrário. Consulte o arquivo LICENSE para obter detalhes.
Consulte o site Open edX para saber mais sobre o mundo Open edX. Você pode encontrar informações sobre hospedagem, extensão e contribuição para o software Open edX. Além disso, o site Open edX fornece anúncios de produtos, o blog Open edX e outros recursos valiosos da comunidade.
Se você estiver com problemas, temos fóruns de discussão em https://discuss.openedx.org onde você pode se conectar com outras pessoas da comunidade.
Nossas conversas em tempo real estão no Slack. Você pode solicitar um convite do Slack e depois ingressar na equipe do Slack da nossa comunidade.
Para obter mais informações sobre essas opções, consulte a página Obtendo ajuda.
Usamos Github Issues para nosso rastreador de problemas. Você pode pesquisar problemas relatados anteriormente. Se você precisar relatar um bug ou quiser discutir um novo recurso antes de implementá-lo, crie um novo problema.
Contribuições são bem-vindas! O primeiro passo é enviar um contrato de contribuição individual assinado. Consulte nosso arquivo CONTRIBUTING para obter mais informações – ele também contém diretrizes sobre como manter a alta qualidade do código, o que aumentará a probabilidade de sua contribuição ser aceita.
Novos recursos são aceitos. Discutir suas novas ideias com os mantenedores antes de escrever o código também aumentará as chances de seu trabalho ser aceito.
Por favor, leia o Código de Conduta da Comunidade para interagir com este repositório.
Por favor, não relate problemas de segurança em público. Envie um e-mail para [email protected].
Os atuais mantenedores deste repositório podem ser encontrados no Backstage.