{"id":22924186,"url":"https://github.com/thomas-mauran/polypedia","last_synced_at":"2026-04-11T07:37:02.532Z","repository":{"id":64509679,"uuid":"569861433","full_name":"thomas-mauran/Polypedia","owner":"thomas-mauran","description":"Deploy an online library everywhere you want ","archived":false,"fork":false,"pushed_at":"2023-01-08T18:31:34.000Z","size":7246,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-03T06:37:26.706Z","etag":null,"topics":["docker","docker-compose","k8s","kubernetes","nginx"],"latest_commit_sha":null,"homepage":"","language":"Vue","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/thomas-mauran.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}},"created_at":"2022-11-23T19:32:15.000Z","updated_at":"2023-12-07T15:00:48.000Z","dependencies_parsed_at":"2023-02-08T07:00:50.589Z","dependency_job_id":null,"html_url":"https://github.com/thomas-mauran/Polypedia","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thomas-mauran/Polypedia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomas-mauran%2FPolypedia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomas-mauran%2FPolypedia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomas-mauran%2FPolypedia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomas-mauran%2FPolypedia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thomas-mauran","download_url":"https://codeload.github.com/thomas-mauran/Polypedia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomas-mauran%2FPolypedia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31673067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","k8s","kubernetes","nginx"],"created_at":"2024-12-14T08:19:51.539Z","updated_at":"2026-04-11T07:37:02.505Z","avatar_url":"https://github.com/thomas-mauran.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e \n\u003ch1\u003ePolypedia\u003c/h1\u003e\n\n  \u003cimg src=\"https://media.giphy.com/media/CRJqX2pz2RA8E/giphy.gif\" alt=\"spirited away gif where big doors are opening one after the others\" width=\"40%\"\u003e\n\u003c/div\u003e\n\n\n# What is it ?\nPolypedia is a school project for polytech montpellier DO which goal is to make anyone able to deploy it's own library. \nRather it is to make a small library with your friends or to make an online school library.\nUsers can create accounts, upload and find pdf to download or consults them online !\n\n\n# Steps to run the project :\n\n## Docker compose \n\n  ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n\n\nlightweight config to create a polypedia full instance on any device you need. \n\n:warning: a reverse proxy service is not included in this setup you will had to add one to the docker compose file if you wanna use this config on a real server. \n\n## prerequisites\n\nTo run this project you must have installed [docker-compose](https://docs.docker.com/compose/install) and [docker](https://docs.docker.com/get-docker/) on your machine \n\n### 1. Clone the repo\n\n```bash\ngit clone git@github.com:thomas-mauran/Polypedia.git\n```\n\n### 2. Open the newly cloned repo\n\n```bash\ncd Polypedia\n```\n\n### 3. Fill in the frontend and backend .env.examples\nOnce filled with the desired data remove the .example from both file names.\n\n\n### 4. Run docker-compose \n\n```bash\ndocker-compose up\n```\nthis command will launch 3 containers working together :\n\n* the vue frontend container\n\n* the rest api backend container \n\n* the postgres container\n\n\n## k3d setup \n\n![Kubernetes](https://img.shields.io/badge/kubernetes-%23326ce5.svg?style=for-the-badge\u0026logo=kubernetes\u0026logoColor=white)\n\n\n:warning: the included kubernetes deployment are using my dockerhub default images which include raw .env. If you wanna use your own config make sure you build tag and push to docker hub your versions of the Dockerfiles modified and modify the deployments to retrieve those images. \n\n## prerequisites\n\nTo run this project you will need [k3d](https://k3d.io/v5.4.6/) and [kubernetes tools](https://kubernetes.io/docs/tasks/tools/). You might want to setup [k9s](https://k9scli.io/) to manage you k3d cluster easily.\n\n\n### 1. Clone the repo\n\n```bash\ngit clone git@github.com:thomas-mauran/Polypedia.git\n```\n\n### 2. Open the newly cloned repo\n\n```bash\ncd Polypedia\n```\n\n### 3. File modifications \n\n#### api-configmap\n* You need to fill the api configmap with the desired values used to override the api .env \n\n\n##### modify ingress-controller routes\n* The ingress controller is set with my own server url as example. Make sure you change those values according to your domain name and DNS. \n\n##### modify both certificate staging / production.\n* Those files are also using my example server domain names. \nMake sure you change those values according to your domain name and DNS. \n\n##### modify both certificate issuers staging / production\n* Use your own email address in those files. \n\n### 4. create the k3d cluster \n\n``` bash\nk3d cluster create polypedia --k3s-arg \"--no-deploy=traefik@server:*\"\n```\nthis command is going to setup a basic k3d cluster without any traefik server. \n\n\n### 5. apply the kube files \n\n``` bash\nkubectl apply -f kube/\n```\n\n### 6. nginx ingress controller \n``` bash\nhelm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx\n\n\nhelm repo update\n\nhelm upgrade --install ingress-nginx ingress-nginx \\\n  --repo https://kubernetes.github.io/ingress-nginx \\\n  --namespace ingress-nginx --create-namespace\n```\n\n### 7. Create the img and pdf folders in the cluster container\n\n\nuse docker ps to check the container id with the image \"rancher/k3s:v1.24.4-k3s1\"\n``` bash\ndocker ps \n```\n\nselect the contained id and use it in the following command \n\n``` bash\ndocker exec -it \u003ccontainer id\u003e sh \n```\n\nonce you are in the file system \n\n``` bash\nmkdir /mnt/data/polypedia/files/img\nmkdir /mnt/data/polypedia/files/pdf\n```\n\n\n### 8. Setup certmanager\n\n\n``` bash\nkubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.10.1/cert-manager.yaml\n\nkubectl apply -f kube/\n```\n\n\n### 9. Open k3d cluster ports \n\n\n``` bash\nk3d node edit k3d-polypedia-serverlb --port-add 80:80\n\nk3d node edit k3d-polypedia-serverlb --port-add 443:443\n```\n\n\n## Questions \n\nYou can create issues if you are having troubles seting up the project !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomas-mauran%2Fpolypedia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomas-mauran%2Fpolypedia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomas-mauran%2Fpolypedia/lists"}