Giter Site home page Giter Site logo

adlnet / tla Goto Github PK

View Code? Open in Web Editor NEW
14.0 10.0 8.0 17.34 MB

Codebase for the ADL Initiative's Total Learning Architecture (TLA) reference implementation. Once matured and implemented, the TLA will enable personalized, data-driven, and technology-enabled lifelong learning across the DoD, other Federal Government agencies, and beyond.

Home Page: https://adlnet.gov/projects/tla/

License: The Unlicense

Shell 3.48% Dockerfile 1.15% JavaScript 69.42% CSS 7.51% HTML 0.67% Python 0.86% EJS 16.91%
tla xapi cass dave datasim ps4tla fluent tdt

tla's Introduction

TLA Reference Implementation

Codebase for the ADL's TLA reference implementation. This project is under development as we migrate the 2019 repository to an open-source environment. โš ๐Ÿ› 

For more information about the TLA project, visit adlnet.gov/projects/tla.

Current resource checklist:

  • โœ… Keycloak server
  • โœ… Kafka Cluster
  • โœ… Basic Experience Index
  • โœ… LRS w/ Kafka Forwarding
  • โœ… Content Hosting Server
  • โœ… Basic Learner Profile
  • โœ… Basic LEM Services
  • โŒ Competency Processor / Server
  • ๐Ÿ”จ Landing Page

Automated SSL Renewal w/ Dockerized Certbot

ADL services are typically deployed with Docker, with HTTP served by the usual pairing of Nginx with SSL certificates provided by Certbot. While this has provided a clean way of configuring machines without explicit host OS installs of either, it does complicate the automated SSL renewal usually provided by Certbot.

Instead of the default Certbot cronjob, we run a modified version of our manual SSL renewal script.

TL;DR

  1. git clone https://github.com/adlnet/auto-ssl ~/auto-ssl
  2. cd ~/auto-ssl
  3. Open the root crontab sudo crontab -e
  4. Paste the following lines:
PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin
0 2 * * 6 ~/auto-ssl/renew.sh <project path>

replacing <project path> with the proper folder path (i.e. ~/tla/adl-auth). That's it.

More Detail

This cronjob is specified with time 0 2 * * 6, meaning it will run:

  • 6: On Saturdays
  • *: Every Week
  • *: Every Month
  • 2: At 2AM
  • 0: and 0 minutes

the values for which can obviously be adjusted for whatever your use case may be.

The path argument supplied by <project path> tells the script where to locate the corresponding docker-compose.yml file for whichever server's SSL is being automated. Additionally, this output can be found at ~/renew.log and the script can be manually run just via

sudo ~/auto-ssl/renew.md <project-path>

to ensure that everything is working properly -- you should see something like this

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certificates are not due for renewal yet:
  /etc/letsencrypt/live/tla-dev-auth.usalearning.net/fullchain.pem expires on 2021-06-01 (skipped)
No renewals were attempted.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Note: If crontab is not being run as the root user, you'll need to add them to the Docker group:

sudo usermod -aG docker $USER

tla's People

Contributors

adl-trey avatar argenrost avatar floriantolk avatar rajkowski avatar vbhayden avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.