{"id":38917319,"url":"https://github.com/libops/ojs","last_synced_at":"2026-01-17T15:28:39.025Z","repository":{"id":320745088,"uuid":"1074714338","full_name":"libops/ojs","owner":"libops","description":"Docker image and compose project for Open Journal Systems","archived":false,"fork":false,"pushed_at":"2025-12-29T14:44:29.000Z","size":28,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-01T16:20:18.959Z","etag":null,"topics":["docker","docker-compose","ojs","open-journal-systems"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-12T10:39:32.000Z","updated_at":"2025-12-29T14:44:31.000Z","dependencies_parsed_at":"2025-10-25T17:26:31.843Z","dependency_job_id":"395416e8-f063-49e7-a4c2-dc738e53daa8","html_url":"https://github.com/libops/ojs","commit_stats":null,"previous_names":["libops/ojs"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/libops/ojs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libops%2Fojs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libops%2Fojs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libops%2Fojs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libops%2Fojs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libops","download_url":"https://codeload.github.com/libops/ojs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libops%2Fojs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","ojs","open-journal-systems"],"created_at":"2026-01-17T15:28:38.361Z","updated_at":"2026-01-17T15:28:39.017Z","avatar_url":"https://github.com/libops.png","language":"Shell","readme":"# Open Journal Systems (OJS) Docker Container\n\nDockerized deployment of [Open Journal Systems](https://pkp.sfu.ca/software/ojs/) based on the [Islandora Buildkit](https://github.com/Islandora-Devops/isle-buildkit) nginx base image.\n\n## Quick Start\n\n1. Generate secrets:\n```bash\ndocker compose up init\n```\n\n2. Start the containers:\n```bash\ndocker compose up -d\n```\n\n3. Access OJS at http://localhost\n\nThe installation will run automatically on first startup. The default admin credentials are:\n- Username: `admin` (configurable via `OJS_ADMIN_USERNAME`)\n- Password: Contents of `./secrets/OJS_ADMIN_PASSWORD`\n- Email: `admin@example.com` (configurable via `OJS_ADMIN_EMAIL`)\n\n## Configuration\n\n### OJS Configuration\n\n| Environment Variable | Default | Source | Description |\n| :------------------- | :------ | :----- | :---------- |\n| DB_HOST | mariadb | environment | MariaDB/MySQL hostname |\n| DB_PORT | 3306 | environment | MariaDB/MySQL port |\n| DB_NAME | ojs | environment | Database name |\n| DB_USER | ojs | environment | Database user |\n| DB_PASSWORD | (generated) | secret | Database password (stored in `./secrets/OJS_DB_PASSWORD`) |\n| OJS_SALT | (generated) | secret | Salt for password hashing (stored in `./secrets/OJS_SALT`) |\n| OJS_API_KEY_SECRET | (generated) | secret | Secret for API key encoding (stored in `./secrets/OJS_API_KEY_SECRET`) |\n| OJS_SECRET_KEY | (generated) | secret | Internally this is used for any encryption (specifically cookie encryption if enabled) (stored in `./secrets/OJS_SECRET_KEY`) |\n| OJS_ADMIN_USERNAME | admin | environment | Initial admin username |\n| OJS_ADMIN_EMAIL | admin@example.com | environment | Initial admin email |\n| OJS_ADMIN_PASSWORD | (generated) | secret | Initial admin password (stored in `./secrets/OJS_ADMIN_PASSWORD`) |\n| OJS_LOCALE | en | environment | Primary locale/language |\n| OJS_TIMEZONE | UTC | environment | System timezone |\n| OJS_FILES_DIR | /var/www/files | environment | Directory for uploaded files |\n| OJS_OAI_REPOSITORY_ID | ojs.localhost | environment | OAI-PMH repository identifier |\n| OJS_ENABLE_BEACON | 1 | environment | Enable PKP usage statistics beacon (1=enabled, 0=disabled) |\n| OJS_SESSION_LIFETIME | 30 | environment | How long to stay logged in (in days) |\n| OJS_X_FORWARDED_FOR | Off | environment | Trust X-Forwarded-For header. Enable PKP usage statistics beacon (Off, On) |\n\n### Nginx and PHP Settings\n\nSee https://github.com/Islandora-Devops/isle-buildkit/tree/main/nginx#nginx-settings\n\n## Secrets Management\n\nSecrets are stored in the `./secrets/` directory and mounted into the container at runtime. The `generate-secrets.sh` script creates secure random values for:\n\n- `DB_ROOT_PASSWORD` - MariaDB root password\n- `OJS_DB_PASSWORD` - OJS database user password\n- `OJS_ADMIN_PASSWORD` - OJS admin user password\n- `OJS_API_KEY_SECRET` - Secret for API key encoding/decoding\n- `OJS_SALT` - Salt for password hashing\n\n## Customization\n\nYou can customize the installation by:\n\n1. Setting environment variables in `docker-compose.yaml`\n2. Overriding default values in the Dockerfile\n3. Adding custom plugins to `rootfs/var/www/ojs/plugins/`\n\n### Adding Plugins\n\nPlace plugin directories in the appropriate subdirectory under `rootfs/var/www/ojs/plugins/`:\n\n- `blocks/` - Block plugins\n- `gateways/` - Gateway plugins\n- `generic/` - Generic plugins\n- `importexport/` - Import/export plugins\n- `metadata/` - Metadata plugins\n- `oaiMetadataFormats/` - OAI metadata format plugins\n- `paymethod/` - Payment method plugins\n- `pubIds/` - Public identifier plugins\n- `reports/` - Report plugins\n- `themes/` - Theme plugins\n\nPlugins with `composer.json` files will automatically have their dependencies installed during the build.\n\n## Volumes\n\nThe following volumes are created for data persistence:\n\n- `mariadb-data` - MariaDB database files\n- `ojs-cache` - OJS cache files\n- `ojs-files` - Uploaded files (submissions, etc.)\n- `ojs-public` - Public files\n\n## Updating OJS Version\n\nTo update the OJS version, modify the `OJS_VERSION` build argument in the Dockerfile:\n\n```dockerfile\nARG OJS_VERSION=3_5_0-1\n```\n\nVersion tags follow the format used in the [PKP OJS repository](https://github.com/pkp/ojs/tags).\n\n## Troubleshooting\n\n### Installation Logs\n\nIf the automatic installation fails, check the container logs:\n\n```bash\ndocker compose logs ojs\n```\n\n### Database Connection Issues\n\nEnsure the MariaDB container is healthy before the OJS container starts:\n\n```bash\ndocker compose ps\n```\n\n### Resetting Installation\n\nTo completely reset and reinstall:\n\n```bash\ndocker compose down -v\n./scripts/generate-secrets.sh\ndocker compose up -d\n```\n\n## License\n\nThis Docker implementation is provided as-is. Open Journal Systems is licensed under the GNU General Public License v3. See the [OJS repository](https://github.com/pkp/ojs) for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibops%2Fojs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibops%2Fojs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibops%2Fojs/lists"}