# Application filesystem layout ## Location of applications on server Locker server stores application data in `APPS_PATH` config variable which is `/opt/locker-apps` by default. first level subdirectories are userid, second level subdirectories are application names. So, for application with URL like `notebook-user1.locker.example.com` it's files are in `/opt/locker-apps/user1/notebook/`. ## Application layout ### /etc files ### etc/keys.json List of system administration keys ~~~ [ { "key": "EyTp...", "comment": "Initial key, generated by locker-admin", "created": "2021/05/21", "touched": "2021/05/21", "ip": [] } ] ~~~ ### etc/oidc_credentials.json List of app-specific credentials. minimal example: ~~~ { "vendor": [ "google" ] } ~~~ ### etc/options.json options.json is main configuration file. See [options-json](options-json.md) page. ### etc/users.json Main users database (something like /etc/passwd) Example with one user: ~~~ { "bindings": { "google": { "123123123123": "u1" } }, "control": { "last": 1 } } ~~~ ### etc/skeleton Skeleton contains directory of template files. When new user is registered, his homedir will be created from etc/skeleton ### etc/default Similar to skeleton, but these files are read if file not found. E.g. if `~/r/file.json` not found, but `etc/default/r/file.json` exist, if will be served.