├── .gitignore ├── LICENSE ├── README.md ├── mashlib ├── config-mashlib-dev.json ├── config-mashlib.json ├── package-lock.json └── package.json └── penny ├── config-penny.json ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | .acl 2 | .internal 3 | .meta 4 | componentsjs-error-state.json 5 | node_modules 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or distribute 4 | this software, either in source code form or as a compiled binary, 5 | for any purpose, commercial or non-commercial, and by any means. 6 | 7 | In jurisdictions that recognize copyright laws, the author or authors 8 | of this software dedicate any and all copyright interest in the 9 | software to the public domain. We make this dedication for the benefit 10 | of the public at large and to the detriment of our heirs and 11 | successors. We intend this dedication to be an overt act of 12 | relinquishment in perpetuity of all present and future rights to this 13 | software under copyright law. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 21 | OTHER DEALINGS IN THE SOFTWARE. 22 | 23 | For more information, please refer to 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [Solid Logo] 2 | 3 | # 🍱 Community Solid Server recipes 4 | This repository contains example configurations 5 | for the [Community Solid Server](https://github.com/CommunitySolidServer/CommunitySolidServer), 6 | to get you started quickly. 7 | 8 | You can launch the Community Solid Server with the following user interfaces: 9 | - [Mashlib Data Browser](https://github.com/SolidOS/mashlib) 10 | - [Penny](https://forum.solidproject.org/t/new-developer-tool-app-penny/3837) 11 | 12 | 13 | ## ⚙️ Installing the recipes 14 | ```shell 15 | # Load the configurations to your device 16 | git clone https://github.com/CommunitySolidServer/Recipes 17 | cd Recipes 18 | 19 | # Pick the configuration of your choice, and install its dependencies 20 | cd mashlib # or penny 21 | npm ci --omit=dev 22 | ``` 23 | 24 | 25 | ## 🚀 Starting the server from a recipe 26 | 27 | ### Mashlib 28 | The Mashlib configurations are in the `mashlib` folder. 29 | 30 | ```shell 31 | # Start the server with your documents folder as the root container 32 | npx community-solid-server -c config-mashlib.json -f ~/Documents/ 33 | 34 | # Start the server in development mode (authenticated as a specific user) 35 | npx community-solid-server -c config-mashlib-dev.json -f ~/Documents/ 36 | ``` 37 | 38 | ### Penny 39 | The Penny configurations are in the `penny` folder. 40 | 41 | ```shell 42 | # Start the server with your documents folder as the root container 43 | npx community-solid-server -c config-penny.json -f ~/Documents/ 44 | ``` 45 | 46 | ## 📜 Customizing the recipes 47 | The configurations provided here are just one possible combination of CSS features. 48 | You can use the following links to generate alternative configurations 49 | that also include the necessary statements for the relevant interfaces: 50 | * [Mashlib](https://communitysolidserver.github.io/configuration-generator/v7/?config=https://raw.githubusercontent.com/CommunitySolidServer/Recipes/main/mashlib/config-mashlib.json&removeImports=%22util/index%22) 51 | * [Penny](https://communitysolidserver.github.io/configuration-generator/v7/?config=https://raw.githubusercontent.com/CommunitySolidServer/Recipes/main/penny/config-penny.json&removeImports=%22util/index%22) 52 | -------------------------------------------------------------------------------- /mashlib/config-mashlib-dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", 3 | "import": [ 4 | "css:config/app/init/default.json", 5 | "css:config/app/main/default.json", 6 | "css:config/app/variables/default.json", 7 | "css:config/http/handler/default.json", 8 | "css:config/http/middleware/default.json", 9 | "css:config/http/notifications/all.json", 10 | "css:config/http/server-factory/http.json", 11 | "css:config/http/static/default.json", 12 | "css:config/identity/access/public.json", 13 | "css:config/identity/email/default.json", 14 | "css:config/identity/handler/default.json", 15 | "css:config/identity/oidc/default.json", 16 | "css:config/identity/ownership/token.json", 17 | "css:config/identity/pod/static.json", 18 | 19 | "css:config/ldp/authorization/webacl.json", 20 | "css:config/ldp/handler/default.json", 21 | "css:config/ldp/metadata-parser/default.json", 22 | "css:config/ldp/metadata-writer/default.json", 23 | "css:config/ldp/modes/default.json", 24 | "css:config/storage/backend/file.json", 25 | "css:config/storage/key-value/resource-store.json", 26 | "css:config/storage/location/pod.json", 27 | "css:config/storage/middleware/default.json", 28 | "css:config/util/auxiliary/acl.json", 29 | "css:config/util/identifiers/suffix.json", 30 | 31 | "css:config/util/logging/winston.json", 32 | "css:config/util/representation-conversion/default.json", 33 | "css:config/util/resource-locker/file.json", 34 | "css:config/util/variables/default.json" 35 | ], 36 | "@graph": [ 37 | { 38 | "comment": [ 39 | "A filesystem-based server with Databrowser as UI, with a test user.", 40 | "Derived from config/file-no-setup.json" 41 | ] 42 | }, 43 | 44 | { 45 | "@id": "urn:solid-server:default:CredentialsExtractor", 46 | "@type": "UnionCredentialsExtractor", 47 | "extractors": [ 48 | { 49 | "@type": "UnsecureConstantCredentialsExtractor", 50 | "agent": "http://test.com/card#me" 51 | }, 52 | { "@type": "PublicCredentialsExtractor" } 53 | ] 54 | }, 55 | 56 | { 57 | "comment": "Serve Databrowser as default representation", 58 | "@id": "urn:solid-server:default:DefaultUiConverter", 59 | "@type": "ConstantConverter", 60 | "contentType": "text/html", 61 | "filePath": "./node_modules/mashlib/dist/databrowser.html", 62 | "options_container": true, 63 | "options_document": true, 64 | "options_minQuality": 1, 65 | "options_disabledMediaRanges": [ 66 | "image/*", 67 | "application/pdf" 68 | ] 69 | }, 70 | 71 | { 72 | "comment": "Serve Mashlib static files.", 73 | "@id": "urn:solid-server:default:StaticAssetHandler", 74 | "@type": "StaticAssetHandler", 75 | "assets": [ 76 | { 77 | "@type": "StaticAssetEntry", 78 | "relativeUrl": "/mash.css", 79 | "filePath": "./node_modules/mashlib/dist/mash.css" 80 | }, 81 | { 82 | "@type": "StaticAssetEntry", 83 | "relativeUrl": "/mashlib.min.js", 84 | "filePath": "./node_modules/mashlib/dist/mashlib.min.js" 85 | }, 86 | { 87 | "@type": "StaticAssetEntry", 88 | "relativeUrl": "/mashlib.min.js.map", 89 | "filePath": "./node_modules/mashlib/dist/mashlib.min.js.map" 90 | } 91 | ] 92 | } 93 | ] 94 | } 95 | -------------------------------------------------------------------------------- /mashlib/config-mashlib.json: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", 3 | "import": [ 4 | "css:config/app/init/default.json", 5 | "css:config/app/main/default.json", 6 | "css:config/app/variables/default.json", 7 | "css:config/http/handler/default.json", 8 | "css:config/http/middleware/default.json", 9 | "css:config/http/notifications/all.json", 10 | "css:config/http/server-factory/http.json", 11 | "css:config/http/static/default.json", 12 | "css:config/identity/access/public.json", 13 | "css:config/identity/email/default.json", 14 | "css:config/identity/handler/default.json", 15 | "css:config/identity/oidc/default.json", 16 | "css:config/identity/ownership/token.json", 17 | "css:config/identity/pod/static.json", 18 | "css:config/ldp/authentication/dpop-bearer.json", 19 | "css:config/ldp/authorization/webacl.json", 20 | "css:config/ldp/handler/default.json", 21 | "css:config/ldp/metadata-parser/default.json", 22 | "css:config/ldp/metadata-writer/default.json", 23 | "css:config/ldp/modes/default.json", 24 | "css:config/storage/backend/file.json", 25 | "css:config/storage/key-value/resource-store.json", 26 | "css:config/storage/location/pod.json", 27 | "css:config/storage/middleware/default.json", 28 | "css:config/util/auxiliary/acl.json", 29 | "css:config/util/identifiers/suffix.json", 30 | 31 | "css:config/util/logging/winston.json", 32 | "css:config/util/representation-conversion/default.json", 33 | "css:config/util/resource-locker/file.json", 34 | "css:config/util/variables/default.json" 35 | ], 36 | "@graph": [ 37 | { 38 | "comment": [ 39 | "A filesystem-based server with Databrowser as UI.", 40 | "Derived from config/file-no-setup.json" 41 | ] 42 | }, 43 | 44 | { 45 | "comment": "Serve Databrowser as default representation", 46 | "@id": "urn:solid-server:default:DefaultUiConverter", 47 | "@type": "ConstantConverter", 48 | "contentType": "text/html", 49 | "filePath": "./node_modules/mashlib/dist/databrowser.html", 50 | "options_container": true, 51 | "options_document": true, 52 | "options_minQuality": 1, 53 | "options_disabledMediaRanges": [ 54 | "image/*", 55 | "application/pdf" 56 | ] 57 | }, 58 | 59 | { 60 | "comment": "Serve Mashlib static files.", 61 | "@id": "urn:solid-server:default:StaticAssetHandler", 62 | "@type": "StaticAssetHandler", 63 | "assets": [ 64 | { 65 | "@type": "StaticAssetEntry", 66 | "relativeUrl": "/mash.css", 67 | "filePath": "./node_modules/mashlib/dist/mash.css" 68 | }, 69 | { 70 | "@type": "StaticAssetEntry", 71 | "relativeUrl": "/mashlib.min.js", 72 | "filePath": "./node_modules/mashlib/dist/mashlib.min.js" 73 | }, 74 | { 75 | "@type": "StaticAssetEntry", 76 | "relativeUrl": "/mashlib.min.js.map", 77 | "filePath": "./node_modules/mashlib/dist/mashlib.min.js.map" 78 | } 79 | ] 80 | } 81 | ] 82 | } 83 | -------------------------------------------------------------------------------- /mashlib/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "start": "npx community-solid-server -c config-mashlib.json", 4 | "start:dev": "npx community-solid-server -c config-mashlib-dev.json" 5 | }, 6 | "dependencies": { 7 | "@solid/community-server": "^7.1.6", 8 | "mashlib": "^1.10.2" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /penny/config-penny.json: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", 3 | "import": [ 4 | "css:config/app/init/default.json", 5 | "css:config/app/main/default.json", 6 | "css:config/app/variables/default.json", 7 | "css:config/http/handler/default.json", 8 | "css:config/http/middleware/default.json", 9 | "css:config/http/notifications/all.json", 10 | "css:config/http/server-factory/http.json", 11 | "css:config/http/static/default.json", 12 | "css:config/identity/access/public.json", 13 | "css:config/identity/email/default.json", 14 | "css:config/identity/handler/default.json", 15 | "css:config/identity/oidc/default.json", 16 | "css:config/identity/ownership/token.json", 17 | "css:config/identity/pod/static.json", 18 | "css:config/ldp/authentication/dpop-bearer.json", 19 | "css:config/ldp/authorization/webacl.json", 20 | "css:config/ldp/handler/default.json", 21 | "css:config/ldp/metadata-parser/default.json", 22 | "css:config/ldp/metadata-writer/default.json", 23 | "css:config/ldp/modes/default.json", 24 | "css:config/storage/backend/file.json", 25 | "css:config/storage/key-value/resource-store.json", 26 | "css:config/storage/location/pod.json", 27 | "css:config/storage/middleware/default.json", 28 | "css:config/util/auxiliary/acl.json", 29 | "css:config/util/identifiers/suffix.json", 30 | 31 | "css:config/util/logging/winston.json", 32 | "css:config/util/representation-conversion/default.json", 33 | "css:config/util/resource-locker/file.json", 34 | "css:config/util/variables/default.json" 35 | ], 36 | "@graph": [ 37 | { 38 | "comment": [ 39 | "A filesystem-based server with Penny as UI.", 40 | "Derived from config/file-no-setup.json" 41 | ] 42 | }, 43 | 44 | { 45 | "comment": "Serve Penny as default representation", 46 | "@id": "urn:solid-server:default:DefaultUiConverter", 47 | "@type": "ConstantConverter", 48 | "contentType": "text/html", 49 | "filePath": "./node_modules/penny-pod-inspector/server-ui/index.html", 50 | "options_container": true, 51 | "options_document": true, 52 | "options_minQuality": 1 53 | }, 54 | 55 | { 56 | "comment": "Serve Penny static files.", 57 | "@id": "urn:solid-server:default:StaticAssetHandler", 58 | "@type": "StaticAssetHandler", 59 | "assets": [ 60 | { 61 | "@type": "StaticAssetEntry", 62 | "relativeUrl": "/server-ui/", 63 | "filePath": "./node_modules/penny-pod-inspector/server-ui/" 64 | } 65 | ] 66 | } 67 | ] 68 | } 69 | -------------------------------------------------------------------------------- /penny/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "start": "npx community-solid-server -c config-penny.json" 4 | }, 5 | "dependencies": { 6 | "@solid/community-server": "^7.1.6", 7 | "penny-pod-inspector": "^0.1587224012.8633114076" 8 | } 9 | } 10 | --------------------------------------------------------------------------------