{"id":16136884,"url":"https://github.com/jarne/colly","last_synced_at":"2025-08-16T15:05:11.725Z","repository":{"id":50475971,"uuid":"494819650","full_name":"jarne/colly","owner":"jarne","description":"📇 Open Source Web-based Website URL Collection app","archived":false,"fork":false,"pushed_at":"2024-10-29T19:57:00.000Z","size":12043,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-29T21:46:57.256Z","etag":null,"topics":["collect","hacktoberfest","manage","url","web","website"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jarne.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}},"created_at":"2022-05-21T15:20:33.000Z","updated_at":"2024-10-26T04:45:08.000Z","dependencies_parsed_at":"2024-05-07T06:27:38.288Z","dependency_job_id":"c782d7a8-816e-40c2-aab8-e963faf73a28","html_url":"https://github.com/jarne/colly","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarne%2Fcolly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarne%2Fcolly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarne%2Fcolly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarne%2Fcolly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jarne","download_url":"https://codeload.github.com/jarne/colly/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238563739,"owners_count":19492976,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["collect","hacktoberfest","manage","url","web","website"],"created_at":"2024-10-09T23:24:36.933Z","updated_at":"2025-08-16T15:05:11.696Z","avatar_url":"https://github.com/jarne.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\".github/.media/colly-logo.png\" width=\"120\" height=\"120\" alt=\"Colly app logo\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eColly\u003c/h1\u003e\n\u003cp align=\"center\"\u003eWeb-based Website URL Collection app\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/jarne/colly/blob/main/package.json\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/package-json/v/jarne/colly.svg\" alt=\"Package version\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://circleci.com/gh/jarne/colly\"\u003e\n        \u003cimg src=\"https://circleci.com/gh/jarne/colly.svg?style=shield\" alt=\"Build status\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/jarne/colly/blob/main/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/jarne/colly.svg\" alt=\"License\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## 📙 Description\n\nColly is a web-based application designed for effortlessly collecting and organizing your favorite URL's and websites.\nWith Colly, users can create a personalized library of web pages.\n\nOne of Colly's features is its tagging system, which allows users to categorize and organize their collections with ease.\nWhether it's articles, blogs, tutorials, or any other web content, users can assign relevant tags to each link,\nenabling efficient retrieval and navigation within their collections.\n\nThe collection of a user can also be set as public and accessed using a public access link by\nanyone who has the link.\n\nWhether you're a student, professional, or simply someone who loves to explore the web,\nColly empowers users to create curated collections tailored to their unique preferences and interests.\nSay goodbye to scattered bookmarks and hello to a more organized, accessible, and enjoyable web browsing experience with Colly.\n\n### Screenshots\n\n\u003cimg src=\".github/.media/screenshot-login.png\" alt=\"Screenshot of Colly login page\"\u003e\n\n\u003cimg src=\".github/.media/screenshot-dashboard.png\" alt=\"Colly item dashboard\"\u003e\n\n\u003cimg src=\".github/.media/screenshot-item-edit.png\" alt=\"Item edit view\"\u003e\n\n## 🖥 Usage\n\n### Docker Compose\n\nThe recommended way to deploy Colly is using Docker. There is a ready-to-use\nexample [Docker Compose file](./docker-compose.yml) available in this repository.\n\nWith [Docker installed](https://docs.docker.com/engine/install/), you can use the following\ncommands to clone the repository and run Toohga using Docker Compose.\n\nFirst, clone the repository.\n\n```sh\ngit clone https://github.com/jarne/colly.git\ncd colly\n```\n\nThen copy the `.env` file template for Docker and replace the secret values in this file.\n\n```sh\ncp .env.docker.example .env\n```\n\nStart the services using Docker Compose.\n\n```sh\nsudo docker compose up\n```\n\n### Manual deployment\n\nAlternative deployment methods are to use the [Docker](./Dockerfile) image or deploy the\nNode.js application directly on the operating system.\n\nWhen deploying without the Docker file, keep in mind to install Node.js and required dependencies using Yarn:\n\n```\nyarn install\n\ncd client\nyarn install\nyarn run build\n```\n\n### Environment variables\n\nThe following environment variables need be set:\n\n| Env variable          | Default Value | Description                                           |\n| --------------------- | ------------- | ----------------------------------------------------- |\n| `MONGO_HOST`          |               | Hostname of MongoDB                                   |\n| `MONGO_PORT`          | `27017`       | Port of MongoDB                                       |\n| `MONGO_DB`            |               | MongoDB database name                                 |\n| `JWT_SECRET`          |               | Random secret for JWT                                 |\n| `S3_ENDPOINT`         |               | Hostname for S3-compatible endpoint for image storage |\n| `S3_REGION`           |               | S3 region to use                                      |\n| `S3_ACCESS_KEY`       |               | Access key ID for S3 endpoint                         |\n| `S3_ACCESS_SECRET`    |               | Secret access key for S3 endpoint                     |\n| `S3_BUCKET`           |               | Name of the S3 bucket                                 |\n| `S3_FORCE_PATH_STYLE` | `false`       | Force path style URLs for S3 objects                  |\n\nIn addition, the following _optional_ environment variables can be set:\n\n| Env variable             | Default Value | Description                                                                    |\n| ------------------------ | ------------- | ------------------------------------------------------------------------------ |\n| `EXPIRES_IN_SEC`         | `86400`       | Expiration of JWT (in seconds)                                                 |\n| `INITIAL_ADMIN_USERNAME` |               | Create initial admin user with this username                                   |\n| `INITIAL_ADMIN_PASSWORD` |               | Password for initial admin user                                                |\n| `LOG_LEVEL`              | `info`        | Log level of the app                                                           |\n| `LOKI_HOST`              |               | Hostname for Grafana Loki to send logs to                                      |\n| `LOKI_BASIC_AUTH`        |               | Authentication credentials (basic auth format) for Grafana Loki                |\n| `USE_HTTPS`              | `true`        | Set if HTTPS should enforced for session cookies (only disable in development) |\n\n## ⌨️ Development\n\nColly is based on a back-end and front-end part.\n\n### Back-end\n\nThe back-end of the application inside the main folder is written in JavaScript using Node.js and the Express framework.\nAs dependencies, a MongoDB database for storing the data and an S3-compatible object storage, such as MinIO, for storing\nimage meta data such as website icons and banners, are required.\n\nUsing the following command, the back-end can be started for development: `yarn run dev`\n\nUnit tests inside the [test](./test) folder are using Mocha and Chai.\nThe following checks should be run before commiting code to execute unit tests, ESLint and format the code according\nto the defined code style:\n\n```sh\nyarn run test\nyarn run lint\nyarn run format\n```\n\n#### Test data\n\nThere are several tool scripts and a test dataset for development and testing, placed in the [test-data](./test-data) folder.\n\nCreate first user: `yarn node userInit.js`  \nRun web server to serve test websites: `yarn run dev:test-data`  \nInsert test data into database: `yarn node insertTestData.js`\n\n### Front-end\n\nThe front-end inside the `client` folder is written in JavaScript and is based on React, Vite and Bootstrap for styles.\n\nRun development server: `yarn run dev`  \nCreate build: `yarn run build`  \nRun ESLint: `yarn run lint`\n\nCode style formatting is configured in the parent folder, so if you run `yarn run format` in the main folder,\nit will format both the back-end and front-end.\n\n## 🙋‍ Contribution\n\nContributions are always very welcome! It's completely equal if you're a beginner or a more experienced developer.\n\nThanks for your interest 🎉👍!\n\n## 👨‍⚖️ License\n\n[MIT](https://github.com/jarne/colly/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjarne%2Fcolly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjarne%2Fcolly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjarne%2Fcolly/lists"}