-
Notifications
You must be signed in to change notification settings - Fork 3
/
info.xml
178 lines (122 loc) · 5.3 KB
/
info.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<?xml version="1.0"?>
<info xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>storj</id>
<name>Storj</name>
<summary>Decentralized storage backend</summary>
<description># Storj NextCloud App
Adds external storage support for [Storj Decentralized Cloud Storage](https://storj.io) to [Nextcloud](https://nextcloud.com/)
Storj Community contributed.
* [Docker image](#docker-image)
* [Prerequisites](#prerequisites)
* [Detailed instructions for docker version of Nextcloud](#detailed-instructions-for-docker-version-of-nextcloud)
* [Installation](#installation)
* [Configuration](#configuration)
* [Maintainers](#maintainers)
* [Building](#building)
* [Publish to App Store](#publish-to-app-store)
* [Running tests](#running-tests)
* [Known issues](#known-issues)
## Docker image
We supply a ready-to-use Docker image with Nextcloud and Storj pre-installed.
```
docker run storjthirdparty/nextcloud-app:23.0.4-apache \
--env OBJECTSTORE_STORJ_ACCESS_GRANT=myaccessgrant \
--env OBJECTSTORE_STORJ_BUCKET=mybucket
```
More information at [hub.docker.com](https://hub.docker.com/r/storjthirdparty/nextcloud-app)
## Prerequisites
- Linux
- x86_64 or ARM64
- libffi installed
The PHP installation should have the FFI extension loaded and enabled unconditionally in php.ini:
```
extension=ffi
ffi.enable=true
```
Detailed instructions depend on your distro.
### Detailed instructions for docker version of Nextcloud
By default the Nextcloud docker image comes without `FFI` support. But you can install it inside the container:
```
docker exec -it nextcloud bash
root@5f11b342df44:/var/www/html# apt update
root@5f11b342df44:/var/www/html# apt install libffi-dev
root@5f11b342df44:/var/www/html# docker-php-ext-install ffi
```
("nextcloud" is the name you gave the container earlier)
The extension is now enabled through `/usr/local/etc/php/conf.d/docker-php-ext-ffi.ini`
Also allow loading libraries at runtime:
```
root@5f11b342df44:/var/www/html# echo ffi.enable=true > /usr/local/etc/php/conf.d/ffi.ini
```
Reload Apache:
```
root@5f11b342df44:/var/www/html# apachectl graceful
```
To make changes permanent you need to build your own image. Create a `Dockerfile`:
```Dockerfile
FROM nextcloud
RUN apt update && apt install -y libffi-dev && docker-php-ext-install ffi
RUN echo ffi.enable=true > /usr/local/etc/php/conf.d/ffi.ini
```
And build it:
```
docker build . -t my/nextcloud
```
Now you can run your own image, change `docker run ... nextcloud` to `docker run ... my/nextcloud`
## Installation
This app is published on the [App Store](https://apps.nextcloud.com/apps/storj).
There are two ways to install:
- Install from the App Store GUI of your Nextcloud instance. Tap on your profile (top right) and then "+ Apps"
- Download and extract the tarball in the folder `apps` of your Nextcloud installation
## Configuration
Storj works like any external object storage. See the documentation on docs.nextcloud.com:
* [Configuring External Storage (GUI)](https://docs.nextcloud.com/server/24/admin_manual/configuration_files/external_storage_configuration_gui.html)
* [Configuring Object Storage as Primary Storage](https://docs.nextcloud.com/server/24/admin_manual/configuration_files/primary_storage.html)
This is the configuration to set Storj as your primary storage:
```php
$CONFIG = [
'objectstore' => [
'class' => \OCA\Storj\StorjObjectStore::class,
'arguments' => [
'serialized_access' => 'myaccessgrant',
'bucket' => 'mynextcloudbucket',
]
]
];
```
Primary storage is more responsive because it relies more on your local database, but does create small files, which is not the best usecase for Storj.
## Maintainers
### Building
The app can be built by using the provided Makefile by running:
make
### Publish to App Store
Bump the version in [./appinfo/info.xml](./appinfo/info.xml)
Build un:
make && make appstore
The archive is located in build/artifacts/appstore.
Follow the instructions at [https://apps.nextcloud.com/developer/apps/releases/new](http://apps.nextcloud.com/) to upload the app to the store.
### Running tests
You can use the provided Makefile to run all tests by using:
make test
This will run the PHP unit and integration tests and if a package.json is present in the **js/** folder will execute **npm run test**
Of course you can also install [PHPUnit](http://phpunit.de/getting-started.html) and use the configurations directly:
phpunit -c phpunit.xml
or:
phpunit -c phpunit.integration.xml
for integration tests
## Known issues
- Enabling Xdebug profiling or debugging will cause a segfault
</description>
<version>0.0.9</version>
<licence>agpl</licence>
<author mail="erik@evanv.nl" homepage="https://github.com/erikvv">Erik van Velzen</author>
<namespace>Storj</namespace>
<category>files</category>
<category>integration</category>
<bugs>https://github.com/storj-thirdparty/nextcloud-app/issues</bugs>
<screenshot>https://link.storjshare.io/raw/jvfizc37vgr5ohyxwreg7abnxxrq/nextcloud-app-assets/storj-logo.svg</screenshot>
<dependencies>
<lib>FFI</lib>
<nextcloud min-version="20" max-version="25"/>
</dependencies>
</info>