Convert Figma logo to code with AI

theonedev logoonedev

Git Server with CI/CD, Kanban, and Packages. Seamless integration. Unparalleled experience.

13,150
849
13,150
0

Top Related Projects

44,785

Gogs is a painless self-hosted Git service

A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility

Quick Overview

OneDev is a self-hosted Git server with CI/CD, Kanban, and issue tracking capabilities. It aims to provide an all-in-one solution for software development teams, offering a user-friendly interface and powerful features to streamline the development process.

Pros

  • Integrated CI/CD, issue tracking, and Kanban boards in a single platform
  • Self-hosted solution, providing full control over data and infrastructure
  • User-friendly interface with a modern, responsive design
  • Supports Docker-based build environments for consistent and reproducible builds

Cons

  • Requires self-hosting, which may be challenging for teams without infrastructure expertise
  • Limited third-party integrations compared to more established platforms
  • Smaller community and ecosystem compared to popular alternatives like GitLab or GitHub
  • May have a steeper learning curve for teams transitioning from multiple specialized tools

Getting Started

To get started with OneDev, follow these steps:

  1. Install Docker on your server
  2. Run the following command to start OneDev:
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd)/onedev:/opt/onedev -p 6610:6610 -p 6611:6611 1dev/server
  1. Access the OneDev web interface at http://localhost:6610
  2. Follow the setup wizard to configure your instance
  3. Create your first project and start using OneDev for Git hosting, CI/CD, and issue tracking

For more detailed instructions and configuration options, refer to the official documentation at https://code.onedev.io/projects/160/blob/main/readme.md

Competitor Comparisons

44,785

Gogs is a painless self-hosted Git service

Pros of Gogs

  • Lightweight and resource-efficient, suitable for low-end hardware
  • Simple setup process with minimal dependencies
  • Cross-platform support, including Windows

Cons of Gogs

  • Limited built-in CI/CD capabilities compared to OneDev
  • Less extensive project management features
  • Slower development pace and fewer updates

Code Comparison

OneDev (Java):

@Editable(name="Git")
public class GitContribution extends Contribution {
    private static final long serialVersionUID = 1L;
    
    private String commitHash;
}

Gogs (Go):

type Repository struct {
    ID            int64  `xorm:"pk autoincr"`
    OwnerID       int64  `xorm:"UNIQUE(s)"`
    LowerName     string `xorm:"UNIQUE(s) INDEX NOT NULL"`
    Name          string `xorm:"INDEX NOT NULL"`
    Description   string
    Website       string
}

OneDev offers a more comprehensive self-hosted DevOps platform with integrated CI/CD, issue tracking, and code review features. It's built in Java and provides a modern, feature-rich interface.

Gogs, written in Go, focuses on being a lightweight, easy-to-deploy Git service. It's ideal for small teams or personal use, especially on resource-constrained systems.

While OneDev excels in providing an all-in-one DevOps solution, Gogs shines in its simplicity and efficiency. The choice between them depends on the specific needs of the project and available resources.

A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility

Pros of GitBucket

  • Written in Scala, which may be preferred by some developers
  • Longer project history and potentially more mature codebase
  • Supports plugins for extended functionality

Cons of GitBucket

  • Less frequent updates and commits compared to OneDev
  • Fewer built-in CI/CD features
  • May have a steeper learning curve for those unfamiliar with Scala

Code Comparison

GitBucket (Scala):

def getRepositoryInfo(owner: String, repository: String): Option[RepositoryInfo] = {
  getRepository(owner, repository).map { repositoryInfo =>
    // Additional logic...
    repositoryInfo
  }
}

OneDev (Java):

@Transactional
@Override
public Project getProject(String projectPath) {
    Project project = projectManager.findByPath(projectPath);
    if (project == null)
        throw new EntityNotFoundException("Unable to find project: " + projectPath);
    return project;
}

Both repositories aim to provide self-hosted Git solutions with integrated project management features. OneDev focuses on a more comprehensive CI/CD pipeline integration, while GitBucket offers a plugin system for extensibility. The choice between them may depend on specific project requirements, team expertise, and desired features.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

**NOTE: ** We develop OneDev at code.onedev.io for sake of dogfooding. Please submit issues and pull requests there

Git Server with CI/CD, Kanban, and Packages

Get Started

🔎 Out-of-box code search and navigation

Language aware symbol search and navigation in any commit. Click symbol to show occurrences in current file. Fast code search with regular expression. Try It

code search and navigation

👮‍ Flexible security and compliance scan

Scan code dependencies, built binaries, or container images to find security vulnerabilities, license violations, or secret exposures. [Tutorial] (https://docs.onedev.io/category/security-and-compliance-scan)

vulnerabilities

🚦 Annotate code with coverage and problems

Code will be annotated with coverage info and problems found in CI/CD pipeline, to facilitate code review. Demo

code annotation

💬 Code discussion anywhere anytime

Select any code or diff to start discussion. Suggest and apply changes. Discussions stay with code to help code understanding. See It In Action

code comment

🔒 Versatile code protection rules

Set rule to require review or CI/CD verification when certain users touch certain files in certain branches. Tutorial

code protection

📋 Automated Kanban to keep team organized

Move tasks manually in Kanban, or define rules to move them automatically when related work is committed/tested/released/deployed. See It In Action

issue board

🛠 Customizable and flexible issue workflow

Custom issue states and fields. Manual or automatic state transition rules. Issue links to sync operations and states. Confidential issues in public projects. Tutorial

workflow customization

📨 Service desk to link emails with issues

Use issues as ticket system to support customers via email, without requiring them to register accounts. Assign different support contacts for different projects or customers. Tutorial

service desk

⏰ Time tracking and reporting

Track estimated/spent time on tasks. Aggregate time from subtasks automatically. Generate time sheets for work statistics and billing. Tutorial

time tracking

💡 CI/CD as code without writing code

An intuitive GUI to create CI/CD jobs. Template for typical frameworks. Typed parameters. Matrix jobs. CI/CD logic reuses. Cache management. Tutorial

ci/cd editor

🚀 Versatile CI/CD executors from simple to scale

Run CI/CD out-of-box in container or on bare metal. Run massive jobs concurrently with Kubernetes or agents. Example1 Example2

job executors

🛠 Tools to debug CI/CD jobs

Command to pause job execution. Web terminal to check job execution environment. Run job locally against uncommitted changes. Tutorial1 Tutorial2

web terminal

📦 Built-in package registries

Built-in registry to manage binary packages. Link packages with CI/CD jobs. Tutorial

package registry

🧩 Deep integration and information cross-reference

Transit issue state via commit, CI/CD, or pull request. Show fixing builds of issue. Query fixed issues or code changes between build/package versions. Example1 Example2

deep integration

🌲 Project tree for easy maintenance

Use tree to organize projects clearly and efficiently. Define common settings in parent project and inherit in child projects. See It In Action

project tree

🐒 Smart query that can be saved and subscribed

Powerful and intuitive query for everything. Save query for quick access. Subscribe to query to get notified of interesting events. Try It

issue query

🎛️ Dashboard for teams and users

Arrange gadgets in custom dashboard to get important information at a glance. Share dashboard with users or groups, or make it public for everyone. See It In Action

edit dashboard

👯 Effortless high availability and scalability

Easy cluster setup. Replicate projects across different servers for high availability, or distribute projects for horizontal scalability. More Info

high availability

🛸 Command palette for quick access

Use cmd/ctrl-k to bring up command palette from anywhere. Search anything and jump to it without digging through menus. Try It

command palette

📈 SLOC trend by language

Inspects git history of main branch to calculate trend of source lines of code by language efficiently. See It In Action

SLOC trends

🕊️ Fast, lightweight, and reliable

Crafted with resource usage and performance in mind. Get all features above with a 1 core 2G mem box for medium-sized projects. Intensively used for more than 5 years, with battle-proven reliability. Performance Comparison

resource usage