{"id":41244776,"url":"https://github.com/protegeproject/webprotege-deploy","last_synced_at":"2026-01-23T01:25:14.223Z","repository":{"id":70396459,"uuid":"434019817","full_name":"protegeproject/webprotege-deploy","owner":"protegeproject","description":"Compose file for WebProtégé services","archived":false,"fork":false,"pushed_at":"2026-01-12T16:42:57.000Z","size":1334,"stargazers_count":14,"open_issues_count":3,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-12T20:10:28.153Z","etag":null,"topics":["webprotege","webprotege-config"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/protegeproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-12-01T23:36:15.000Z","updated_at":"2025-12-17T21:24:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"9b5686f4-3f59-4697-9768-6d9df60f8a62","html_url":"https://github.com/protegeproject/webprotege-deploy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/protegeproject/webprotege-deploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protegeproject%2Fwebprotege-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protegeproject%2Fwebprotege-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protegeproject%2Fwebprotege-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protegeproject%2Fwebprotege-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/protegeproject","download_url":"https://codeload.github.com/protegeproject/webprotege-deploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protegeproject%2Fwebprotege-deploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28677330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"ssl_error","status_checked_at":"2026-01-23T01:00:19.529Z","response_time":144,"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":["webprotege","webprotege-config"],"created_at":"2026-01-23T01:25:14.123Z","updated_at":"2026-01-23T01:25:14.198Z","avatar_url":"https://github.com/protegeproject.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webprotege-deploy\n\nThis repository houses docker compose and related files for running WebProtégé.  \n\nFor a basic Docker Compose file see [docker-compose.yml](https://github.com/protegeproject/webprotege-deploy/blob/main/docker-compose.yml).\n\nFor a Keycloak configuration file see [keycloak/webprotege.json](https://github.com/protegeproject/webprotege-deploy/blob/main/keycloak/webprotege.json)\n\nadd in etc/hosts 127.0.0.1  webprotege-local.edu\n\n## Running WebProtégé for the First Time\n\nThis guide will walk you through setting up WebProtégé using Docker.\n\n### Prerequisites and Initial Setup\n\n#### 1. Verify Docker Daemon is Running\n\nBefore beginning, ensure that the Docker daemon is active on your system. The Docker daemon is the background service that manages Docker containers and images.\n\n**On macOS/Linux:**\n```bash\ndocker info\n```\n\n**On Windows:**\n- Open Docker Desktop application\n- Verify the Docker icon in the system tray shows it's running\n- Alternatively, open PowerShell and run `docker info`\n\nIf Docker isn't running, start it through Docker Desktop or your system's service manager. You should see output showing Docker system information when the daemon is properly running.\n\n#### 2. Configure Local Host Resolution\n\nWebProtégé requires a custom local domain for proper operation. You'll need to modify your system's hosts file to redirect the custom domain to your local machine.\n\n**Location of hosts file:**\n- **Linux/macOS:** `/etc/hosts`\n- **Windows:** `C:\\Windows\\System32\\drivers\\etc\\hosts`\n\n**Steps to modify:**\n1. Open the hosts file with administrator/root privileges\n   - **Linux/macOS:** `sudo nano /etc/hosts` or `sudo vim /etc/hosts`\n   - **Windows:** Run Notepad as Administrator, then open the hosts file\n\n2. Add this exact line at the end of the file:\n   ```\n   127.0.0.1  webprotege-local.edu\n   127.0.0.1  webprotege-events-history-service\n   ```\n3. Save and close the file\n\n**What this does:** This configuration tells your computer that when any application tries to access `webprotege-local.edu`, it should connect to `127.0.0.1` (localhost) instead of trying to resolve it through DNS.\n\n### Docker Environment Setup\n\n#### 3. Navigate to Project Directory\n\nOpen a terminal or command prompt and change to your local `webprotege-deploy` directory. This directory should contain the Docker Compose configuration files necessary for running WebProtégé.\n\n```bash\ncd /path/to/your/webprotege-deploy\n```\n\n**Example paths:**\n- **macOS/Linux:** `cd ~/Projects/webprotege-deploy`\n- **Windows:** `cd C:\\Users\\YourUsername\\Documents\\webprotege-deploy`\n\n#### 4. Set Environment Variable\n\nConfigure the `SERVER_HOST` environment variable to match the custom domain you added to your hosts file. This tells WebProtégé which hostname to expect for incoming requests.\n\n**Linux/macOS (Bash/Zsh):**\n```bash\nexport SERVER_HOST=webprotege-local.edu\n```\n\n**Windows (PowerShell):**\n```powershell\n$env:SERVER_HOST = \"webprotege-local.edu\"\n```\n\n**Windows (Command Prompt):**\n```cmd\nset SERVER_HOST=webprotege-local.edu\n```\n\n**Note:** This environment variable is temporary and only applies to your current terminal session. For permanent configuration, you can add it to your shell profile or use a `.env` file if supported by your Docker Compose setup.\n\n### Keycloak Authentication Setup\n\nWebProtégé uses Keycloak as its identity and access management solution. Keycloak must be configured before starting the main WebProtégé services.\n\n#### 5. Start Keycloak Service\n\nLaunch only the Keycloak service initially to configure authentication before starting other services:\n\n```bash\ndocker compose up keycloak -d\n```\n\n**Command breakdown:**\n- `docker compose up`: Starts services defined in docker-compose.yml\n- `keycloak`: Specifies only the keycloak service\n- `-d`: Runs in detached mode (background), freeing up your terminal\n\n**Expected output:**\n```\n[+] Running 1/1\n ✔ Container webprotege-deploy-keycloak-1  Started\n```\n\nWait a few moments for Keycloak to fully initialize. You can check the logs with:\n```bash\ndocker compose logs keycloak\n```\n\n#### 6. Access Keycloak Admin Interface\n\nOpen your web browser and navigate to:\n```\nhttp://localhost:8080\n```\n\nYou should see the Keycloak administration console welcome page. If you see an error or connection refused message, wait a bit longer for Keycloak to finish starting up.\n\n**Troubleshooting:**\n- If the page doesn't load, check that Keycloak is running: `docker compose ps`\n- Review logs for errors: `docker compose logs keycloak`\n\n#### 7. Sign Into Keycloak Admin\n\nUse the default administrator credentials to access the Keycloak admin console:\n\n- **Username:** `admin`\n- **Password:** `password`\n\n**Security Note:** These are default credentials for local development. In a production environment, you should immediately change these credentials and use strong, unique passwords.\n\nOnce logged in, you'll see the Keycloak administration dashboard with options to manage realms, users, and authentication settings.\n\n#### 8. Import WebProtégé Realm Configuration\n\nA \"realm\" in Keycloak is a security domain that manages users, credentials, and roles for a specific application or set of applications.\n\n**Steps to import:**\n1. In the left sidebar, hover over the realm dropdown (likely showing \"Master\")\n2. Click \"Create Realm\" or \"Add realm\"\n3. Choose \"Import\" or \"Browse\" option\n4. Navigate to and select the `keycloak/webprotege.json` file from your webprotege-deploy directory\n5. Click \"Create\" or \"Import\"\n\n**What this configuration includes:**\n- WebProtégé client configuration\n- Required authentication flows\n- User roles and permissions\n- Login themes and settings\n\nAfter importing, you should see \"webprotege\" appear in the realm dropdown, indicating successful configuration.\n\n### Launch WebProtégé Services\n\n#### 9. Start All WebProtégé Services\n\n**Important for macOS users:** Before starting the services, you need to modify the Docker Compose configuration to avoid port conflicts. macOS uses port 5000 for AirPlay Receiver by default.\n\n**Port modification steps:**\n1. Open the `docker-compose.yml` file in a text editor\n2. Navigate to approximately line 320-321 in the logstash section\n3. Change the port mapping from `5000:5000` to `5001:5000` (or any other 500x port like 5002, 5003, etc.)\n4. Save the file\n\n**Example change:**\n```yaml\n# Before (line 320-321):\nports:\n  - \"5000:5000/tcp\"\n  - \"5000:5000/udp\"\n\n# After:\nports:\n  - \"5001:5000/tcp\"\n  - \"5001:5000/udp\"\n```\n\nNow that Keycloak is configured, start the complete WebProtégé application stack:\n\n```bash\ndocker compose up\n```\n\n**What this command does:**\n- Starts all services defined in the Docker Compose file\n- Includes the database, backend services, frontend, and any other required components\n- Runs in foreground mode, showing logs from all services\n\n**Startup time:** Initial startup may take several minutes as Docker downloads images and initializes databases. Watch the logs for \"ready\" or \"started\" messages from each service.\n\n### Access and Account Setup\n\n#### 10. Navigate to WebProtégé Application\n\nOpen your web browser and go to:\n```\nhttp://webprotege-local.edu\n```\n\n**Important:** Use the custom domain you configured in your hosts file, not `localhost`. This ensures proper cookie handling and authentication flow between WebProtégé and Keycloak.\n\nYou should see the WebProtégé sign-in page with options to log in or register a new account.\n\n#### 11. Register a New User Account\n\nSince this is your first time using WebProtégé, create a new account:\n\n1. Click \"Register\" on the login page\n2. Fill out the registration form with:\n   - **Username:** Choose a unique username (e.g., your email or preferred handle)\n   - **Password:** A strong password following any displayed requirements\n   - **Confirm Password:** Re-enter your password\n   - **Email:** Your email address (required for account verification and notifications)\n   - **First/Last Name:** Your display name within WebProtégé\n\n3. Click \"Register\"\n\n#### 12. Sign Into Your New Account\n\nAfter registration, sign in using your newly created credentials:\n\n1. Enter your username/email and password\n2. Click \"Sign In\"\n\n**Successful login indicators:**\n- Redirect to the WebProtégé home page\n- Your username appears in the top navigation\n- You see options to create or access ontology projects\n\n### Verification and Next Steps\n\nAfter completing these steps, you should see the WebProtégé home page, which typically includes:\n\n- **Project dashboard:** View and manage your ontology projects\n- **Create project button:** Start new ontology development projects\n- **User profile access:** Manage your account settings\n- **Navigation menu:** Access different WebProtégé features\n\n**Common next steps:**\n- Create your first ontology project\n- Import existing ontology files\n- Explore WebProtégé documentation and tutorials\n- Configure project-specific settings and collaborator access\n\n### Troubleshooting Common Issues\n\n**Port conflicts:** If port 8080 is already in use, modify the Docker Compose configuration to use alternative ports.\n\n**Permission errors:** Ensure your user has permissions to modify the hosts file and run Docker commands.\n\n**Service startup failures:** Check Docker logs for specific error messages and ensure all required files are present in the webprotege-deploy directory.\n\n**Authentication issues:** Verify the realm was imported correctly in Keycloak and that the SERVER_HOST environment variable matches your hosts file entry.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotegeproject%2Fwebprotege-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprotegeproject%2Fwebprotege-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotegeproject%2Fwebprotege-deploy/lists"}