Files
wiki/Catalogue-Self-Hosted/apps/app-onedev.md
T
2026-06-09 18:40:21 +02:00

120 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: OneDev
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, development, forge, ci-cd, kanban]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Development, https://github.com/theonedev/onedev]
---
# 💻 OneDev
> Plateforme DevOps tout-en-un — forge Git + CI/CD + Kanban + package registry + code review, le tout écrit en Java, dans une seule application auto-hébergeable.
## 📋 Informations Générales
| Attribut | Valeur |
|----------|--------|
| **Nom** | OneDev |
| **Slug** | onedev |
| **Description** | Plateforme DevOps intégrée (Git + CI/CD + Kanban + packages + code review) |
| **Site officiel** | https://onedev.io |
| **Repository** | https://github.com/theonedev/onedev |
| **Stars** | 15 030 ⭐ |
| **Licence** | MIT (Community) + Commercial (Entreprise) |
| **Langage principal** | Java |
| **Catégorie** | Development |
| **Tags** | [catalogue, development, forge, ci-cd, kanban] |
## 📝 Description
**OneDev** est une **plateforme DevOps tout-en-un** écrite en Java par l'ingénieur chinois **Robin Shen** (aka `theonedev`). Le positionnement est clair : **remplacer GitLab CE / Gitea + Woodpecker + Wekan** par **une seule application Java auto-hébergeable** qui couvre l'ensemble du cycle dev (Git, CI/CD, kanban, registry de packages, code review, wiki).
Fonctionnalités principales : **forge Git** (clone/pull/serveur SSH Git natif), **CI/CD** (YAML DSL propriétaire, agents K8s/Docker/SSH), **Kanban** intégré (tableaux avec custom fields, automation), **code review** (diff côte-à-côte, suggestions, protected branches), **package registry** (Maven, npm, PyPI, Docker, NuGet, Debian, RPM, Generic, Helm, Go), **wiki** (Markdown, OCR d'images), **issue tracking** (custom workflows, automation), **symbol search** (indexation du code, navigation cross-repo).
**Modèle de licence** : MIT pour la **Community Edition** (toutes les fonctionnalités cœur sont disponibles), avec une **édition commerciale** payante (`OneDev Enterprise`) qui ajoute SSO/SCIM, support prioritaire, et quelques fonctions d'audit avancées. Pour un self-host MIT, on dispose de l'essentiel. RAM requise : 12 Go pour un usage équipe.
Cas d'usage : équipe dev de 550 personnes cherchant une alternative à GitLab CE plus simple à installer (un seul JAR, pas de Kubernetes), plus riche en CI/CD que Gitea, et avec un kanban intégré.
## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
version: "3.8"
services:
onedev:
image: 1dev/server:latest
container_name: onedev
restart: unless-stopped
ports:
- "6610:6610" # web UI
- "6611:6611" # SSH Git
volumes:
- ./data:/opt/onedev
- ./backup:/opt/onedev/backup
environment:
- TZ=Europe/Paris
# Optionnel : reverse-proxy devant
```
### Installation manuelle
```bash
# Téléchargement du JAR auto-suffisant (~250 Mo)
wget https://code.onedev.io/onedev/server/~raw/master/release/onedev-X.Y.Z.zip
unzip onedev-*.zip -d /opt/onedev
cd /opt/onedev && sudo ./bin/server.sh start
# Premier accès : http://localhost:6610
# Assistant de bootstrap : créer l'admin, choisir le port SSH, configurer le directory des repos
```
L'application est un **fat JAR** avec base H2 embarquée (peut basculer sur PostgreSQL/MySQL pour la production). Pas de dépendance externe obligatoire.
## ⚙️ Configuration
- **Server URL** : `Administration > System Settings > Server URL` — l'URL publique HTTPS.
- **SSH** : `Server Settings > SSH Port` (6611 par défaut) — expose le daemon SSH intégré pour `git@onedev.example.com:user/repo`.
- **Mail** : configurer SMTP (`System Settings > Email`) — invitations, notifications PR.
- **Agents CI** : `Jobs > Agents` pour enregistrer des agents Kubernetes/Docker/SSH externes (sinon OneDev utilise un runner intégré).
- **Database** : H2 par défaut, basculer sur PostgreSQL via `bin/convert-db.sh` pour les instances >5 Go de données.
- **Backups** : `Administration > Backup` (interface web), backup complet de l'état (repos + base + cache).
## 🔗 Alternatives
- **GitLab CE** — Concurrent direct, plus connu mais beaucoup plus lourd (4 Go RAM minimum) et orienté K8s.
- **Gitea + Woodpecker CI + Wekan** — Stack « tout en briques » équivalente mais à assembler et maintenir.
- **Sourcegraph** — Plus orienté code search / intelligence code, ne couvre pas la CI/CD.
- **Bitbucket / Azure DevOps** — Solutions cloud Atlassian/Microsoft, équivalentes enterprise mais propriétaires.
## 🔒 Sécurité
- **HTTPS obligatoire** : web UI + API — placer un reverse-proxy (Traefik/Caddy) devant.
- **SSH Git** : le port 6611 doit être exposé pour `git@…` — limiter par IP ou via VPN.
- **2FA** : natif (TOTP), à imposer pour tous les comptes admin.
- **Permissions RBAC** : OneDev a un système de permissions fin par projet, à configurer dès la création d'équipe.
- **Mises à jour** : surveiller la page releases, OneDev publie des CVE correctives fréquentes.
- **Sauvegardes** : utiliser le mécanisme intégré (`Backup > Create Backup`) qui capture repos + base + LFS ; tester la restauration régulièrement.
## 📚 Ressources
- [Site officiel](https://onedev.io)
- [Documentation](https://docs.onedev.io)
- [Repository GitHub](https://github.com/theonedev/onedev)
- [Selfh.st — OneDev](https://selfh.st/apps/?tag=Development)
- [OneDev vs GitLab](https://docs.onedev.io/intro/why-onedev/)
## 🔗 Pages Liées
- [[cat-development]] — Catégorie Development
- [[app-gitea]] — Forge Git open source (sans CI/CD intégré par défaut)
- [[app-gogs]] — Forge Git ultra-légère (sans CI/CD)
- [[app-code-server]] — Web IDE à coupler avec OneDev
- [[app-traefik]] — Reverse-proxy HTTPS recommandé
- [[securisation-home-lab]] — Bonnes pratiques
- [[recettes-docker-compose]] — Templates Docker