Creating a repository
Preparing the Repository
In order for the tools to parse the repository correctly, the repository must have a certain structure. This is what you need to do:
- Go to this page to get information about the structure.
- Create correct metadata for the repository (consult this page).
- When you have prepared your repository, you can check if the
repository is all good by trying it using the file system handler.
In the plugin, go to the
Settingstab and add a new repository pointing to the root of the repository in your local file system. The repository URL looks like this on Linux:
file:///home/pointing/to/repository_rootand like this:
Where can you share it?
These are the options for sharing: on Github, GitLab, Bitbucket (they need to be public repositories), Gogs (Go Git Service), local file system (if you want to share the collections with your colleagues on the network), or in your own server with the HTTP(S) protocol.
Github, GitLab and Bitbucket
There is nothing complicated here if you are already familiar with git. After preparing the repository on your local machine, you can make it into a git repository as usual. In general, you can do:
cd <repository root> git init git add . git commit -m "Created a cool repository for cool users." git remote add origin <remote repository URL> git push origin master
Note that you currently need to use the
for your repository.
Local File System
This is even simpler.
After preparing the repository, you can use it right away.
Settings tab, you add a repository with URL pointing to
the repository root in your local machine (absolute path, example:
It’s as simple as that.
If there is a problem with metadata or other issues when adding the
repository, you will be told.
Your Own Server
This option could be useful in some cases, e.g. if you want to make private collections available for your customers. There are some additional requirements that you need to be aware of if you choose this option:
- The URL structure of the repository. If your repository URL
http://www.mydomain.com/qgisrepository/, you must make the metadata available on:
- Each collection must be zipped.
The zip file of a collection must be named
.zip, and the zip shall combine the subdirectories of the collection (one or more of `checklists`, `expressions`, `image`, `models`, `processing`, `rscripts`, `svg` and `symbol`), in addition to a `preview` subdirectory for preview images. For example, if you have a collection named ```test_collection```, the collection must be present as: ```http://www.mydomain.com/qgisrepository/collections/test_collection.zip```, and the structure of this zip file must be (only include directories that contain resources you would like to share): test_collection.zip ├── checklists ├── expressions ├── image ├── models ├── preview ├── processing ├── rscripts ├── svg ├── symbol
- Preview images that illustrates the collection should be
If you define preview images for collection
test_collectionin metadata (
preview=preview/prev1.png,prev2.png), you have to place these preview images in the zip-file in a separate directory
previewis the recommended name for that directory.
An example server directory setup for the repository
myfirstrepositorywith one collection (
test_collection) that contains resources to share in a lot of resource categories:
qgisrepository ├── metadata.ini └── collections └── test_collection.zip ├── checlists | ├── checklist1.json | ├── ... | └── lastchecklist.json ├── expressions | ├── expressions1.json | ├── ... | └── lastexpressions.json ├── image | ├── image1.png | ├── ... | └── lastimage.png ├── models | ├── firstmodel.model3 | ├── ... | └── testmodel.model3 ├── preview | ├── prev1.png | └── prev2.png ├── processing | ├── firstscript.py | ├── ... | └── testscript.py ├── rscripts | ├── firstRscript.rsx | ├── ... | ├── testRscript.rsx | ├── firstRscript.rsx.help | ├── ... | └── testRscript.rsx.help ├── style | ├── firstlayerstyle.qml | ├── ... | └── testlayerstyle.qml ├── svg | ├── firstmodel.model3 | ├── ... | └── testmodel.model3 └── symbol ├── firststyle.xml ├── ... └── teststyle.xml
The repository URL to be used when adding the repository (in the QGIS Resource Sharing plugin):
You can also use authentication for this repository. Users can configure authentication details in the plugin, so that they will be able to fetch the repository and the collections inside.