Convert Figma logo to code with AI

stashed logostash

šŸ›… Backup your Kubernetes Stateful Applications

1,313
86
1,313
112

Top Related Projects

23,736

GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com

44,785

Gogs is a painless self-hosted Git service

Effective June 1, 2021: Phabricator is no longer actively maintained.

Quick Overview

Stash is a self-hosted, open-source platform for organizing and managing your adult media collection. It provides a user-friendly interface for tagging, categorizing, and searching your personal library of adult content, with support for various media types including images, videos, and galleries.

Pros

  • Powerful organization and tagging system for adult media
  • Customizable and extensible through plugins
  • Privacy-focused, as it's self-hosted and doesn't share data with third parties
  • Supports a wide range of media formats and sources

Cons

  • Requires technical knowledge to set up and maintain
  • Limited community support compared to mainstream media managers
  • May consume significant storage space for large collections
  • Potential legal concerns depending on jurisdiction and content

Getting Started

  1. Install Docker on your system
  2. Create a directory for Stash data:
    mkdir -p ~/.stash
    
  3. Run Stash using Docker:
    docker run -d \
      --name stash \
      -p 9999:9999 \
      -v ~/.stash:/root/.stash \
      -v /path/to/your/media:/data \
      stashapp/stash:latest
    
  4. Access Stash in your web browser at http://localhost:9999
  5. Follow the initial setup wizard to configure your media library

Note: Replace /path/to/your/media with the actual path to your media collection.

Competitor Comparisons

23,736

GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com

Pros of GitLab

  • Integrated CI/CD pipeline with built-in runners
  • Self-hosted option for complete control over data and infrastructure
  • More comprehensive project management features, including issue boards and time tracking

Cons of GitLab

  • Can be resource-intensive, especially for self-hosted instances
  • Steeper learning curve due to more complex feature set
  • UI can feel cluttered compared to Stash's simpler interface

Code Comparison

GitLab (Ruby):

class Project < ApplicationRecord
  include Gitlab::ConfigHelper
  include Gitlab::ShellAdapter
  include Gitlab::VisibilityLevel
  include Gitlab::CurrentSettings
  include Gitlab::Cache::Memcache::Rails

Stash (Java):

public class Project implements Serializable {
    private String key;
    private String name;
    private String description;
    private boolean isPublic;
    private ProjectType type;

Both repositories provide version control management solutions, but GitLab offers a more comprehensive platform with integrated DevOps features. Stash, being part of Atlassian's ecosystem, focuses more on Git repository management and integration with other Atlassian products. GitLab's codebase is primarily in Ruby, while Stash uses Java, reflecting their different architectural approaches and target environments.

44,785

Gogs is a painless self-hosted Git service

Pros of Gogs

  • Lightweight and fast, with minimal system requirements
  • Self-hosted solution, offering complete control over data and infrastructure
  • Easy to set up and maintain, with a simple installation process

Cons of Gogs

  • Less feature-rich compared to Stash, lacking some advanced enterprise features
  • Smaller community and ecosystem, potentially resulting in fewer plugins and integrations
  • May require more manual configuration for complex setups

Code Comparison

Gogs (Go):

func (repo *Repository) GetCommit(commitID string) (*git.Commit, error) {
    gitRepo, err := git.OpenRepository(repo.RepoPath())
    if err != nil {
        return nil, err
    }
    return gitRepo.GetCommit(commitID)
}

Stash (Java):

public Commit getCommit(String commitId) throws IOException {
    try (Repository repository = repositoryService.getRepository(project, repo)) {
        RevWalk walk = new RevWalk(repository);
        return walk.parseCommit(ObjectId.fromString(commitId));
    }
}

Both code snippets demonstrate how each project handles retrieving a commit by its ID. Gogs uses Go and leverages its git package, while Stash uses Java and the JGit library. The overall structure and purpose of the functions are similar, but the implementation details differ due to the languages and libraries used.

Effective June 1, 2021: Phabricator is no longer actively maintained.

Pros of Phabricator

  • More comprehensive suite of tools for software development, including code review, task management, and wiki
  • Highly customizable and extensible through plugins and configurations
  • Active community and regular updates

Cons of Phabricator

  • Steeper learning curve due to its extensive feature set
  • Requires more server resources and maintenance compared to Stash
  • Can be overwhelming for smaller teams or projects

Code Comparison

Phabricator (PHP):

$results = id(new PhabricatorRepositoryQuery())
  ->setViewer($viewer)
  ->withIDs($repository_ids)
  ->execute();

Stash (Java):

Page<Repository> repositories = repositoryService.findAll(
    PageRequest.of(0, 100),
    Permission.REPO_READ);

Key Differences

  • Phabricator is a full-featured software development platform, while Stash focuses primarily on Git repository management
  • Phabricator is open-source and self-hosted, whereas Stash is a commercial product by Atlassian
  • Phabricator offers a wider range of integrations with third-party tools and services
  • Stash provides tighter integration with other Atlassian products like JIRA and Confluence

Both tools offer robust code review capabilities, but Phabricator's Differential tool is more flexible and customizable compared to Stash's pull request system.

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

Go Report Card Build Status Docker Pulls Slack Twitter

Stash

Stash by AppsCode is a cloud-native data backup and recovery solution for Kubernetes workloads. If you are running production workloads in Kubernetes, you might want to take backup of your disks, databases, etc. Traditional tools are too complex to set up and maintain in a dynamic compute environment like Kubernetes. Stash is a Kubernetes operator that uses restic or Kubernetes CSI Driver VolumeSnapshotter functionality to address these issues. Using Stash, you can backup Kubernetes volumes mounted in workloads, stand-alone volumes, and databases. Users may even extend Stash via addons for any custom workload.

Features

FeaturesCommunity EditionEnterprise EditionScope
Open source Stash Free for everyoneOpen Core Stash for production Enterprise workloads
Backup & Restore Workload Dataāœ“āœ“Deployment, DaemonSet, StatefulSet, ReplicaSet, ReplicationController, OpenShift DeploymentConfig
Backup & Restore Stand-alone Volume (PVC)āœ“āœ“PersistentVolumeClaim, PersistentVolume
Schedule Backup, Instant Backupāœ“āœ“Schedule through cron expression or trigger instant backup using Stash Kubernetes plugin
Pause Backupāœ“āœ“No new backup when paused.
Backup & Restore subset of filesāœ“āœ“Only backup/restore the files that matches the provided patterns
Cleanup old snapshots automaticallyāœ“āœ“Cleanup old snapshots according to different retention policies
Encryption, Deduplication (send only diff)āœ“āœ“Encrypt backed up data with AES-256. Stash only sends the changes since last backup.
CSI Driver Integrationāœ“āœ“VolumeSnapshot for Kubernetes workloads. Supported for Kubernetes v1.17.0+.
Prometheus Metricsāœ“āœ“Rich backup metrics, restore metrics and Stash operator metrics.
Securityāœ“āœ“Built-in support for RBAC, PSP and Network Policy
CLIāœ“āœ“kubectl plugin (for Kubernetes 1.12+)
Extensibility and Customizabilityāœ“āœ“Write addons for bespoke applications and customize currently supported workloads
Hooksāœ“āœ“Execute httpGet, httpPost, tcpSocket and exec hooks before and after of backup or restore process.
Cloud Storage as Backendāœ“āœ“Stores backup data in AWS S3, Minio, Rook, GCS, Azure, OpenStack Swift, Backblaze B2 and Rest Server
On-prem Storage as Backendāœ—āœ“Stores backup data in any locally mounted Kubernetes Volumes such as NFS, etc.
Backup & Restore databasesāœ—āœ“PostgreSQL, MySQL, MongoDB, Elasticsearch, Redis, MariaDB, Percona XtraDB
Auto Backupāœ—āœ“Share backup configuration across workloads using templates. Enable backup for a target application via annotation.
Batch Backup & Batch Restoreāœ—āœ“Backup and restore co-related applications (eg, WordPress server and its database) together
Point-In-Time Recovery (PITR)āœ—PlannedRestore a set of files from a time in the past.

Installation

To install Stash, please follow the guide here.

Using Stash

Want to learn how to use Stash? Please start here.

Contribution guidelines

Want to help improve Stash? Please start here.

Acknowledgement

Support

To speak with us, please leave a message on our website.

To join public discussions with the Stash community, join us in the AppsCode Slack team channel #stash. To sign up, use our Slack inviter.

To receive product announcements, follow us on Twitter.

If you have found a bug with Stash or want to request new features, please file an issue.

License

FOSSA Status

NPM DownloadsLast 30 Days