Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Code of Conduct

This project follows the ownCloud Code of Conduct.

Please read the full Code of Conduct at:
**<https://owncloud.com/contribute/code-of-conduct/>**

By participating in this project, you agree to abide by its terms.
63 changes: 6 additions & 57 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,60 +1,9 @@
## Bugs
# Contributing

### In short
Thank you for your interest in contributing to this project!

* Make sure you have properly installed and configured both your cloud server and Gallery
* Make sure your issue was not [reported](https://github.com/owncloud/gallery/issues) before and that it isn't a [known issue](https://github.com/owncloud/gallery/wiki/Known-issues)
* Use the **issue template** shown to you when opening a new issue. The 1st part is to report bugs and the 2nd one to open a feature request
Please read the full contributing guidelines at:
**<https://owncloud.com/contribute/>**

### Detailed explanation

* Read the section in the wiki about [server and browser requirements](https://github.com/owncloud/gallery/wiki/Requirements)
* Read the [known issue](https://github.com/owncloud/gallery/wiki/Known-issues) section in the wiki
* Get the latest version of the app from [the releases page](https://github.com/owncloud/gallery/releases)
* [Check if they have already been reported](https://github.com/owncloud/gallery/issues)
* Please search the existing issues first, it is likely that your issue was already reported or even fixed
- Click on "issues" in the column on the right and type any word in the top search/command bar
- You can also filter by appending e. g. "state:open" or "state:closed" to the search string
- More info on [search syntax within GitHub](https://help.github.com/articles/searching-issues)
* Report the issue using the **issue template** shown to you when opening a new issue. The 1st part is to report bugs and the 2nd one to open a feature request

Help us maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.

### When reporting bugs

* Enable debug mode by adding the following line to your **config/config.php** file

```
'debug' => true,
```

* Change the log level in order to be able to catch debugging messages, by adding **`loglevel" => 0,`** to your **config/config.php** and reproduce the problem
* Check **data/owncloud.log** for any clues

Please provide the following details so that your problem can be fixed:

* **Cloud server log** (data/owncloud.log)
* **Browser log** (Hit F12 to gain access)
* Cloud server version
* App version
* Browser version
* PHP version

## Contributing to Source Code

Thanks for wanting to contribute source code to Gallery. That's great!

Before we are able to merge your code into the Gallery app, you need to agree to release your code under the AGPL license.

* Please familiarise yourself with the App development process for your cloud server in order to understand how the AppFramework works and don't hesitate to contact a maintainer in order to obtain more information or tips
* It's required to add PHPUnit tests to your pull requests in order to make sure your patches work as intended
* Don't use server features which are still in development unless you have to. This repository tracks the master branch, but the goal is to make the app work with older versions of the server as well.
* Use `[<future_version>]` in the commit comment of all commits which only work with a future version of the server. Something like: `[11.0] Adding this cool new feature`

We're looking forward to your contributions!

## Translations
Please submit translations via Transifex.

* [ownCloud](https://www.transifex.com/projects/p/owncloud/)
* [Nextcloud](https://www.transifex.com/projects/p/nextcloud/)
For development setup, coding standards, and pull request process,
see the README in this repository.
214 changes: 106 additions & 108 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,145 +1,143 @@
# Gallery
[![Build Status](https://drone.owncloud.com/api/badges/owncloud/gallery/status.svg?branch=master)](https://drone.owncloud.com/owncloud/gallery)
# ownCloud Gallery

Media gallery for ownCloud which includes previews for all media types supported by your installation.
<!-- OSPO-managed README | Generated: 2026-04-16 | v2 -->

Provides a dedicated view of all images in a grid, adds image viewing capabilities to the files app and adds a gallery view to public links.
[![License](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](COPYING) [![ownCloud OSPO](https://img.shields.io/badge/OSPO-ownCloud-blue)](https://kiteworks.com/opensource) [![Docker Hub](https://img.shields.io/docker/pulls/owncloud)](https://hub.docker.com/r/owncloud/server)

**This version is for ownCloud 10.0. If you need the same app for older versions of ownCloud. Use [Gallery+](https://github.com/interfasys/galleryplus) from their respective app stores.**
A media gallery app for ownCloud Classic (OC10) that provides a dedicated grid view of all images, adds image viewing capabilities to the files app, and adds a gallery view to public links. It supports a wide range of media types (depending on server configuration), album-level customization with per-folder design, descriptions, and copyright statements, and features such as drag-and-drop upload, zoomable fullscreen previews, and sorting by name or date.

![Screenshot](https://raw.githubusercontent.com/owncloud/gallery/master/build/screenshots/Gallery.jpg)
## Featuring
* Support for large selection of media types (depending on server setup)
* Upload and organise images and albums straight from the app
* Large, zoomable previews which can be shown in fullscreen mode
* Sort images by name or date added
* Per album design, description and copyright statement
* A la carte features (external shares, browser svg rendering, etc.)
* Image download straight from the slideshow or the gallery
* Switch to Gallery from any folder in files and vice-versa
* Ignore folders containing a ".nomedia" file
* Browser rendering of SVG images (disabled by default)
* Mobile support
## Getting Started

Checkout the [full changelog](CHANGELOG.md) for more.
Enable the app in the ownCloud admin panel:

## Maintainers

### Current


### Alumni

* [Olivier Paroz](https://github.com/oparoz)
* [Jan-Christoph Borchardt](https://github.com/jancborchardt) (Design)
* [Robin Appelman](https://github.com/icewind1991)

## Contributors

* All the people who have provided patches to [Gallery(+)](https://github.com/owncloud/gallery/pulls?q=is%3Apr+is%3Aclosed) and [Pictures](https://github.com/owncloud/gallery-old/pulls?q=is%3Apr+is%3Aclosed) over the years

## Requirements

See this [wiki article](https://github.com/owncloud/gallery/wiki/Requirements) about the requirements for Gallery.
```bash
sudo -u www-data php occ app:enable gallery
```

## Supporting the development
Navigate to the Gallery view from the ownCloud navigation menu. The app supports per-album configuration via a `.gallery` YAML file in each folder.

## Documentation

- [ownCloud Server Admin Manual](https://doc.owncloud.com/server/latest/admin_manual/)
- [Gallery Changelog](CHANGELOG.md)

## Features

- Support for a wide selection of media types (depending on server setup)
- Upload and organise images and albums directly from the app
- Large, zoomable previews with fullscreen mode
- Sort images by name or date added
- Per-album design, description, and copyright statement via `.gallery` YAML files
- Image download from slideshow or gallery view
- Switch between Gallery and Files views from any folder
- Ignore folders containing a `.nomedia` file
- Browser rendering of SVG images (disabled by default)
- Mobile support

### Enabling Additional Media Types

Install ImageMagick with the imagick PECL extension, then add preview providers to `config/config.php`:

```php
'preview_max_scale_factor' => 1,
'enabledPreviewProviders' => [
'OC\\Preview\\PNG',
'OC\\Preview\\JPEG',
'OC\\Preview\\GIF',
'OC\\Preview\\Illustrator',
'OC\\Preview\\Postscript',
'OC\\Preview\\Photoshop',
'OC\\Preview\\TIFF',
],
```

There are many ways in which you can help make Gallery a better product
### Performance Tips

* Report bugs (see below)
* Provide patches for [`owncloud/core`](https://github.com/owncloud/core) or the app itself
* Help test new features by checking out new branches on Github
* Design interface components for new features
* Develop new features. Please consult with the maintainers before starting your journey
* Fund a feature, either via [BountySource](https://www.bountysource.com/teams/interfasys/issues?tracker_ids=9328526) or by directly hiring a maintainer or anybody else who is capable of developing and maintaining it
- **Redis for file locking** -- improves album loading performance by up to 10x. See the [ownCloud Admin Manual](https://doc.owncloud.com/server/next/admin_manual/configuration/files/files_locking_transactional.html).
- **Asset pipelining** -- enable to combine JS and CSS resources, reducing load time. See the [ownCloud Admin Manual](https://doc.owncloud.com/server/next/admin_manual/configuration/server/).

## Bug reporting and contributing
### Uninstalling

Everything you need to know about bug reporting and contributing [is located here](https://github.com/owncloud/gallery/blob/master/CONTRIBUTING.md).
When disabling/uninstalling, existing gallery link shares will stop working. Add an `.htaccess` rewrite rule to redirect gallery-style links to regular public links:

## Preparation
Here is a list of steps you might want to take before using the app
```apache
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/apps/gallery/s/(.*)$ /s/$1 [L,R=301]
</IfModule>
```

### Supporting more media types
First, make sure you have installed ImageMagick and its imagick PECL extension.
Next add a few new entries to your **config/config.php** configuration file.
## Part of ownCloud Classic (OC10)

```
'preview_max_scale_factor' => 1,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\PNG',
1 => 'OC\\Preview\\JPEG',
2 => 'OC\\Preview\\GIF',
11 => 'OC\\Preview\\Illustrator',
12 => 'OC\\Preview\\Postscript',
13 => 'OC\\Preview\\Photoshop',
14 => 'OC\\Preview\\TIFF'
),
```
This app extends [ownCloud Server](https://github.com/owncloud/core) with gallery functionality. It is shipped as part of the [ownCloud Server Docker image](https://hub.docker.com/r/owncloud/server).

Look at the sample configuration (config.sample.php) in your config folder if you need more information about how the config file works.
That's it. You should be able to see more media types in your slideshows and galleries as soon as you've installed the app.
## Community & Support

### Improving performance
**[Star](https://github.com/owncloud/gallery)** this repo and **Watch** for release notifications!

#### Redis for files locking
- [ownCloud Website](https://owncloud.com)
- [Community Discussions](https://github.com/orgs/owncloud/discussions)
- [Matrix Chat](https://app.element.io/#/room/#owncloud:matrix.org)
- [Documentation](https://doc.owncloud.com)
- [Enterprise Support](https://owncloud.com/contact-us/)
- [OSPO Home](https://kiteworks.com/opensource)

Using Redis for files locking improves performance **by a factor of 10** when loading an album.
## Contributing

Read about it in the [ownCloud](https://doc.owncloud.com/server/next/admin_manual/configuration/files/files_locking_transactional.html) Administration Manual
We welcome contributions! Please read the [Contributing Guidelines](CONTRIBUTING.md)
and our [Code of Conduct](CODE_OF_CONDUCT.md) before getting started.

#### Assets pipelining
Make sure to enable "asset pipelining", so that all the Javascript and CSS resources can be mixed together.
This can greatly reduce the loading time of the app.
### Workflow

Read about it in the [ownCloud](https://doc.owncloud.com/server/next/admin_manual/configuration/server/) Administration Manual
- **Rebase Early, Rebase Often!** We use a rebase workflow. Always rebase on the target branch before submitting a PR.
- **Dependabot**: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly.
- **Signed Commits**: All commits **must** be PGP/GPG signed. See [GitHub's signing guide](https://docs.github.com/en/authentication/managing-commit-signature-verification).
- **DCO Sign-off**: Every commit must carry a `Signed-off-by` line:
```
git commit -s -S -m "your commit message"
```
- **GitHub Actions Policy**: Workflows may only use actions that are (a) owned by `owncloud`, (b) created by GitHub (`actions/*`), or (c) verified in the GitHub Marketplace.

## Installation
## Security

### Installing from the app store
**Do not open a public GitHub issue for security vulnerabilities.**

* As an admin, select "Apps" in the menu
* Go to the "disabled apps" section
* Enable Gallery
Report vulnerabilities at **<https://security.owncloud.com>** -- see [SECURITY.md](SECURITY.md).

### Installing from archive
Bug bounty: [YesWeHack ownCloud Program](https://yeswehack.com/programs/owncloud-bug-bounty-program)

* Go to the [the releases page](https://github.com/owncloud/gallery/releases)
* Download the latest release/archive to your server's **apps/** directory
* Unpack the app
* **IMPORTANT**: Make sure the folder name is gallery
## License

### Installing from Git
This project is licensed under the [AGPL-3.0](COPYING).

In your terminal go into the **apps/** directory and then run the following command:
```
$ git clone https://github.com/owncloud/gallery.git
```
## About the ownCloud OSPO

Now you can activate it in the apps menu. It's called Gallery
The [Kiteworks Open Source Program Office](https://kiteworks.com/opensource), operating under
the [ownCloud](https://owncloud.com) brand, launched on May 5, 2026, to steward the open source
ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance,
community health, and sustainable collaboration between the open source community and
[Kiteworks](https://www.kiteworks.com), which acquired ownCloud in 2023.

To update the app go inside you *apps/gallery/** directory and type:
```
$ git pull --rebase
```
- **OSPO Home**: <https://kiteworks.com/opensource>
- **GitHub**: <https://github.com/owncloud>
- **ownCloud**: <https://owncloud.com>

### Uninstalling
For questions about the OSPO or licensing, contact ospo@kiteworks.com.

#### Redirect gallery link shares
### License Migration to Apache 2.0

When disabling or uninstalling the app, all link shares created with the app will stop working.
Instead of having to resend new links to all recipients, you can setup a redirection on the server to redirect gallery-style links to regular public links. This means that people with the original link will get redirected to the regular file view instead of getting a 404 page.
The OSPO is driving a strategic relicensing of ownCloud repositories toward the
[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), following
the [Apache Software Foundation's third-party license policy](https://www.apache.org/legal/resolved.html).

For this, edit your `.htaccess` file in the ownCloud root folder and add a new rewrite rule among the existing ones or with a new block at the bottom of the file:
Individual repositories will migrate as their audit is completed. The LICENSE file
in each repo reflects its **current** license status (not the target).

```
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/apps/gallery/s/(.*)$ /s/$1 [L,R=301]
</IfModule>
```
**Current license: AGPL-3.0** (Category X per Apache policy -- cannot be included in Apache-2.0 works).

## List of patches
Migration prerequisites for this repository:

None so far
- **CLA/DCO coverage**: All past contributors must have signed agreements permitting relicensing
- **Copyleft dependency audit**: All AGPL/GPL dependencies must be replaced or isolated
- **KDE heritage review**: Any code with KDE-era copyrights requires legal analysis
- **Complete relicensing**: AGPL-3.0 is a strong copyleft license; migration requires full relicensing of all files, not just a header change
11 changes: 11 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Security Policy

## Reporting a Vulnerability

**Do NOT open a public GitHub issue for security vulnerabilities.**

Please report security issues responsibly via:
**<https://security.owncloud.com>**

You can also report vulnerabilities through our YesWeHack bug bounty program:
**<https://yeswehack.com/programs/owncloud-bug-bounty-program>**
10 changes: 10 additions & 0 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Support

For support with this project, please use the following channels:

- **Enterprise Support**: <https://owncloud.com/contact-us/>
- **Community discussions**: https://github.com/orgs/owncloud/discussions
- **Matrix Chat**: <https://app.element.io/#/room/#owncloud:matrix.org>
- **Documentation**: <https://doc.owncloud.com>

Please do not use GitHub issues for general support questions.
Loading