{"id":24619427,"url":"https://github.com/treblereel/jscompressor","last_synced_at":"2025-03-18T23:20:14.435Z","repository":{"id":271066049,"uuid":"911911454","full_name":"treblereel/jscompressor","owner":"treblereel","description":"A web application serving as both a user-friendly web interface and a REST API for Google's Closure Compiler.","archived":false,"fork":false,"pushed_at":"2025-03-07T05:14:50.000Z","size":1059,"stargazers_count":4,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-07T06:22:44.451Z","etag":null,"topics":["closure-compiler","javascript-compressor","rest-api","webservice"],"latest_commit_sha":null,"homepage":"https://jscompressor.treblereel.dev/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/treblereel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"patreon":"high_on_toes"}},"created_at":"2025-01-04T06:57:52.000Z","updated_at":"2025-03-06T11:10:41.000Z","dependencies_parsed_at":"2025-01-05T08:25:42.181Z","dependency_job_id":"710fc334-b8e4-4ae0-b548-4d8faf4c598c","html_url":"https://github.com/treblereel/jscompressor","commit_stats":null,"previous_names":["treblereel/jscompressor"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treblereel%2Fjscompressor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treblereel%2Fjscompressor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treblereel%2Fjscompressor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treblereel%2Fjscompressor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/treblereel","download_url":"https://codeload.github.com/treblereel/jscompressor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244320429,"owners_count":20434092,"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":["closure-compiler","javascript-compressor","rest-api","webservice"],"created_at":"2025-01-25T00:52:37.330Z","updated_at":"2025-03-18T23:20:14.414Z","avatar_url":"https://github.com/treblereel.png","language":"JavaScript","readme":"## JSCompressor\nA web application serving as both a user-friendly web interface and a REST API for Google's Closure Compiler.\n\n## Getting Started\n\n### Prerequisites\n- java 17 (GraalVM for native image)\n- maven 3.8.3\n- or Docker/Podman (optional)\n\n### Installation\n\n#### Build Java\n\n1. Clone the repository\n2. Run `mvn clean package`\n3. Run `java -jar ./target/quarkus-app/quarkus-run.jar`\n\n#### Build Native Image\n1. Clone the repository\n2. Run `mvn clean package -Pnative`\n3. Run `./target/jscompressor-0.1-runner`\n\n#### Docker/Podman\n\n# JVM and Native images are available in the Docker Hub\n`https://hub.docker.com/repository/docker/treblereel/jscompressor/general`\n`https://hub.docker.com/repository/docker/treblereel/jscompressor-native/general`\n\n## JVM based\n1. Clone the repository\n2. Run `mvn clean package`\n3. Run `docker build -f src/main/docker/Dockerfile.jvm -t quarkus/jscompressor .`\n4. Run `docker run -d -v /home/${username}/${volumes}:/volume:Z -p 8080:8080 localhost/quarkus/jscompressor:latest`\n\n## Native based\n1. Clone the repository\n2. Run `mvn clean package -Pnative`\n3. Run `docker build -f src/main/docker/Dockerfile.native -t quarkus/jscompressor .`\n4. Run `docker run -d -v /home/${username}/${volumes}:/volume:Z -p 8080:8080 localhost/quarkus/jscompressor:latest`\n\nNote: You should be familiar with such topics like Docker root/rootless containers, selinux and such topics. For\ninstance, if you get `permission denied` error, you should check the selinux context of the volume. That is why I prefer \nrootless Podman containers, that configure the context automatically.\n\nTips: If you are a mac user, check you build the native image for Linux. (docs docker buildx)\n\nTips: https://quarkus.io/guides/container-image\n\n### Configuration\n\nThe application can be configured using the following environment variables:\n\n- `MAX_DOWNLOAD_FILE_SIZE` - Sets the maximum file/script size that can be uploaded to the server. Default is 1048576 bytes (1MB).\n- `MAX_DOWNLOAD_URLS_PER_REQUEST` - Sets the maximum number of URLs that can be uploaded to the server. Default is 10.\n- `MAX_CACHE_DIR_SIZE` - Sets the maximum size of the cache directory. Default is 1073741824 bytes (1GB). Once limit is reached, the oldest files will be deleted.\n\nAll of the above can be set in the `application.properties` file or provided as environment variables to the docker container.\n\n### OpenAPI\n\nThe application provides an OpenAPI specification at `openapi.yaml`\n\n### License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n### Acknowledgements\n\n- [Quarkus](https://quarkus.io/)\n- [Google Closure Compiler](https://developers.google.com/closure/compiler)\n- [Alpine.js](https://alpinejs.dev/)\n- [Tailwind CSS](https://tailwindcss.com/)\n\n### Donate\n\nIf you like this project, consider donating to the developer:\n\n- [Patreon](https://www.patreon.com/c/high_on_toes/membership)\n- [BuyMeACoffee](https://www.buymeacoffee.com/{placeholder})\n\n### Bugs and Feature Requests\n\nPlease use the Github Issues page to report any bugs or request new features.\n","funding_links":["https://patreon.com/high_on_toes","https://www.patreon.com/c/high_on_toes/membership","https://www.buymeacoffee.com/"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreblereel%2Fjscompressor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftreblereel%2Fjscompressor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreblereel%2Fjscompressor/lists"}