<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://02687.com/</loc><lastmod>2026-05-14T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/</loc><lastmod>2026-05-14T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/canvas-lms/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/categories/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/categories/dev-log/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/categories/infrastructure--cloud/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/lms-comparison/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/moodle/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/moodle-vs-canvas-open-source-self-hosted/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/open-source/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/self-hosting/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/</loc><lastmod>2026-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/02687/</loc><lastmod>2026-05-06T20:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/edtech-platform/</loc><lastmod>2026-05-06T20:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/open-source-lms/</loc><lastmod>2026-05-06T20:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/self-hosted/</loc><lastmod>2026-05-06T20:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/what-is-02687-edtech-platform/</loc><lastmod>2026-05-06T20:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/docker-compose/</loc><lastmod>2026-05-05T14:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/installing-moodle-ubuntu-22-04-docker-compose/</loc><lastmod>2026-05-05T14:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/mariadb/</loc><lastmod>2026-05-05T14:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/nginx/</loc><lastmod>2026-05-05T14:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/ubuntu-22.04/</loc><lastmod>2026-05-05T14:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/moodle-performance-tuning-php-fpm-redis-opcache/</loc><lastmod>2026-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/opcache/</loc><lastmod>2026-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/performance-tuning/</loc><lastmod>2026-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/php-fpm/</loc><lastmod>2026-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/redis/</loc><lastmod>2026-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/ceph/</loc><lastmod>2024-05-14T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/data-sovereignty/</loc><lastmod>2024-05-14T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/deploying-nextcloud-secure-alternative-google-workspace/</loc><lastmod>2024-05-14T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/kubernetes/</loc><lastmod>2024-05-14T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/nextcloud/</loc><lastmod>2024-05-14T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/s3/</loc><lastmod>2024-05-14T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/active-directory/</loc><lastmod>2024-05-13T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/building-campus-wide-sso-keycloak/</loc><lastmod>2024-05-13T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/iam/</loc><lastmod>2024-05-13T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/keycloak/</loc><lastmod>2024-05-13T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/categories/security/</loc><lastmod>2024-05-13T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/sso/</loc><lastmod>2024-05-13T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/categories/data--ai/</loc><lastmod>2024-05-12T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/data-migration/</loc><lastmod>2024-05-12T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/etl/</loc><lastmod>2024-05-12T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/legacy-sis/</loc><lastmod>2024-05-12T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/migrating-legacy-sis-data-postgresql-python/</loc><lastmod>2024-05-12T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/postgresql/</loc><lastmod>2024-05-12T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/python/</loc><lastmod>2024-05-12T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/grafana/</loc><lastmod>2024-05-11T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/lms/</loc><lastmod>2024-05-11T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/monitoring/</loc><lastmod>2024-05-11T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/prometheus/</loc><lastmod>2024-05-11T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/promql/</loc><lastmod>2024-05-11T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/prometheus-grafana-lms-monitoring/</loc><lastmod>2024-05-11T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/auto-grading/</loc><lastmod>2024-05-10T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/celery/</loc><lastmod>2024-05-10T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/containerizing-auto-grading-pipelines-docker/</loc><lastmod>2024-05-10T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/docker/</loc><lastmod>2024-05-10T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/aws-kinesis/</loc><lastmod>2024-05-09T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/data-lake/</loc><lastmod>2024-05-09T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/lrs/</loc><lastmod>2024-05-09T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/lms-to-lrs-with-xapi/</loc><lastmod>2024-05-09T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/scorm/</loc><lastmod>2024-05-09T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/xapi/</loc><lastmod>2024-05-09T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/aws-lambda/</loc><lastmod>2024-05-08T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/serverless-plagiarism-detection-pipeline/</loc><lastmod>2024-05-08T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/moss/</loc><lastmod>2024-05-08T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/plagiarism-detection/</loc><lastmod>2024-05-08T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/serverless/</loc><lastmod>2024-05-08T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/auth_saml2/</loc><lastmod>2024-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/azure-ad/</loc><lastmod>2024-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/implementing-saml-sso-moodle/</loc><lastmod>2024-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/saml-2.0/</loc><lastmod>2024-05-07T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/bigbluebutton/</loc><lastmod>2024-05-06T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/load-balancing/</loc><lastmod>2024-05-06T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/scalelite/</loc><lastmod>2024-05-06T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/scaling-bigbluebutton-10k-students/</loc><lastmod>2024-05-06T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/udp/</loc><lastmod>2024-05-06T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/webrtc/</loc><lastmod>2024-05-06T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/automating-canvas-lms-enrollments/</loc><lastmod>2024-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/automation/</loc><lastmod>2024-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/rest-api/</loc><lastmod>2024-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/tenacity/</loc><lastmod>2024-05-05T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/building-next-gen-knowledge-graph/</loc><lastmod>2024-05-04T09:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/curriculum-mapping/</loc><lastmod>2024-05-04T09:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/graph-database/</loc><lastmod>2024-05-04T09:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/knowledge-graph/</loc><lastmod>2024-05-04T09:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/neo4j/</loc><lastmod>2024-05-04T09:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/homelab/</loc><lastmod>2024-05-03T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/tags/self-hosted-lms/</loc><lastmod>2024-05-03T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/blog/self-hosting-educational-tools-docker-homelab/</loc><lastmod>2024-05-03T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/course/</loc><lastmod>2024-05-02T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/course/knowledge-graph-integration/</loc><lastmod>2024-05-02T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/course/self-hosted-lms/</loc><lastmod>2024-05-01T10:00:00+08:00</lastmod></url><url><loc>https://02687.com/privacy-policy/</loc><lastmod>2024-01-01T00:00:00+08:00</lastmod></url><url><loc>https://02687.com/about/</loc></url><url><loc>https://02687.com/author/alex-chen/</loc></url><url><loc>https://02687.com/author/</loc></url><url><loc>https://02687.com/contact/</loc></url></urlset>