A web application to visualize skills, motivate self-development, and foster a culture of collaboration and knowledge sharing.
- Visual Skill Recording – Track your skills and proficiency levels in visual form
- Self-Development Awareness – Immediately see growth opportunities, available help & trainings
- Personal Learning Plans – Create time-framed development roadmaps
- Expert Discovery – Find people with specific skills willing to share knowledge
- Peer-to-Peer Training – Request or offer training for specific skills at any level
| Component | Technology |
|---|---|
| Runtime | Node.js |
| Framework | Express.js |
| Database | MongoDB |
| Web Server | Nginx |
| SSL | Let's Encrypt |
-
Install dependencies:
npm install
-
Initialize Database: Ensure MongoDB is running, then seed the database with initial data:
npm run db:seed
-
Run the Application:
- Development mode (with auto-reload):
npm run dev
- Production mode:
- Development mode (with auto-reload):
cd ~ mkdir skilltree && cd skilltree wget https://raw.githubusercontent.com/sicambria/skilltree/master/install/skilltree_install_debian9.sh chmod +x skilltree_install_debian9.sh nano skilltree_install_debian9.sh # Configure before running ./skilltree_install_debian9.sh
**Option 2: Docker (Beta)**
```bash
# Build images
docker build --no-cache -t localhost/skilltree-mongodb:latest ./docker-build/mongodb/
docker build --no-cache -t localhost/skilltree-nginx:latest ./docker-build/nginx/
docker build --no-cache -t localhost/skilltree-nodejs:latest ./docker-build/nodejs/
# Run containers (in order)
docker run -d -p <IP>:27017:27017 localhost/skilltree-mongodb
docker run -d -p <IP>:3000:3000 -e DBADDRESS=<IP> localhost/skilltree-nodejs
docker run -d -e BACKEND=<IP> -p 0.0.0.0:80:80 localhost/skilltree-nginx
After installation, configure /etc/nginx/sites-available/default:
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/YOUR_DOMAIN/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem;
location / {
proxy_pass http://localhost:3000/;
}
}
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}For local development, a .env file is used to store environment-specific settings. This file is ignored by Git.
Default credentials for local testing:
- Username:
admin- Password:
admin
- Password:
- Domain: Register a domain (e.g., via Freenom)
- Security: Update
config.jswith a long, random secret key - Database: Configure MongoDB connection (local or MongoDB Atlas)
We welcome contributions! You can help by:
- Extending the list of skills and trees
- Improving code quality and test coverage
- Creating new features
- Spreading the word about SkillTree
Please read our Contributing Guidelines before submitting PRs.
This project is dual-licensed to ensure both systemic openness and software freedom:
- Source Code: Licensed under the GNU Affero General Public License v3.0 (AGPLv3).
- Textual Content & Data: All curriculum, documentation, and systemic data are licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0).