diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fd73510 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,21 @@ +node_modules/ +.git/ +build/ +dist/ +.svelte-kit/ +.output/ +.vercel/ +.vscode/ + +LICENSE +README.md +Dockerfile +docker-compose.yml +.npmrc +.prettier* +.gitignore +.env.* +.env + +.DS_Store +Thumbs.db \ No newline at end of file diff --git a/.npmrc b/.npmrc deleted file mode 100644 index b6f27f1..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..f791495 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "css.customData": [".vscode/tailwind.json"] +} diff --git a/.vscode/tailwind.json b/.vscode/tailwind.json new file mode 100644 index 0000000..a45bccc --- /dev/null +++ b/.vscode/tailwind.json @@ -0,0 +1,55 @@ +{ + "version": 1.1, + "atDirectives": [ + { + "name": "@tailwind", + "description": "Use the `@tailwind` directive to insert Tailwind's `base`, `components`, `utilities` and `screens` styles into your CSS.", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#tailwind" + } + ] + }, + { + "name": "@apply", + "description": "Use the `@apply` directive to inline any existing utility classes into your own custom CSS. This is useful when you find a common utility pattern in your HTML that you’d like to extract to a new component.", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#apply" + } + ] + }, + { + "name": "@responsive", + "description": "You can generate responsive variants of your own classes by wrapping their definitions in the `@responsive` directive:\n```css\n@responsive {\n .alert {\n background-color: #E53E3E;\n }\n}\n```\n", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#responsive" + } + ] + }, + { + "name": "@screen", + "description": "The `@screen` directive allows you to create media queries that reference your breakpoints by **name** instead of duplicating their values in your own CSS:\n```css\n@screen sm {\n /* ... */\n}\n```\n…gets transformed into this:\n```css\n@media (min-width: 640px) {\n /* ... */\n}\n```\n", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#screen" + } + ] + }, + { + "name": "@variants", + "description": "Generate `hover`, `focus`, `active` and other **variants** of your own utilities by wrapping their definitions in the `@variants` directive:\n```css\n@variants hover, focus {\n .btn-brand {\n background-color: #3182CE;\n }\n}\n```\n", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#variants" + } + ] + } + ] +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..48ae773 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM oven/bun AS builder + +WORKDIR /app + +ARG PUB_HOSTNAME +ARG PUB_PLAUSIBLE_URL + +ENV PUB_HOSTNAME=${PUB_HOSTNAME} +ENV PUB_PLAUSIBLE_URL=${PUB_PLAUSIBLE_URL} + +COPY package.json ./ + +RUN bun install + +COPY . ./ + +RUN bun run build + +FROM oven/bun:alpine + +WORKDIR /app + +COPY --from=builder /app/build ./ + +EXPOSE 3000 + +CMD [ "bun", "run", "start" ] \ No newline at end of file diff --git a/README.md b/README.md index 5f5c010..7972aa8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# VERT +  @@ -6,10 +6,49 @@ VERT is a file conversion utility for the web that uses WebAssembly to convert f VERT is built with Svelte & TypeScript (using [bun](https://bun.sh)). -## Development +## Features -- Clone the project - `git clone https://github.com/not-nullptr/VERT.git` -- Use [bun](https://bun.sh) to install the dependencies - `bun install` -- Copy the contents of `.env.example` into `.env` and make any changes (if wanted) -- Start a dev environment & make your changes - `bun run dev` -- Build and preview for production - `bun run build` & `bun run preview` +- Convert files directly on your device using WebAssembly +- No file size limits +- Supports multiple file formats +- User-friendly interface built with Svelte + +## Getting Started + +### Prerequisites + +Make sure you have the following installed: + +- [Bun](https://bun.sh/) + +### Installation +```sh +# Clone the repository +git clone https://github.com/yourusername/vert.git +cd vert +# Install dependencies +bun i +``` + +### Running Locally + +To run the project locally, run `bun dev`. + +This will start a development server. Open your browser and navigate to `http://localhost:5173` to see the application. + +### Building for Production + +Before building for production, make sure you create a `.env` file in the root of the project with the following content: + +```sh +PUB_HOSTNAME=vert.sh # change to your domain +PUB_PLAUSIBLE_URL=https://plausible.example.com # can be empty if not using Plausible +``` + +To build the project for production, run `bun run build` + +This will build the site to the `build` folder. You can then start the server with `bun ./build/index.js` and navigate to `http://localhost:3000` to see the application. + +## License + +This project is licensed under the AGPL-3.0 License, please see the [LICENSE](LICENSE) file for details. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..bd3476c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +services: + vert: + container_name: vert + build: + context: . + args: + PUB_HOSTNAME: "vert.sh" + PUB_PLAUSIBLE_URL: "https://plausible.example.com" + restart: unless-stopped + ports: + - 3000:3000 \ No newline at end of file diff --git a/package.json b/package.json index 2d9c4cb..5eab105 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "prettier": "^3.3.2", "prettier-plugin-svelte": "^3.2.6", "prettier-plugin-tailwindcss": "^0.6.5", + "sass": "^1.80.7", "svelte": "^5.0.0", "svelte-check": "^4.0.0", "tailwindcss": "^3.4.9", @@ -41,6 +42,7 @@ "clsx": "^2.1.1", "lucide-svelte": "^0.456.0", "svelte-adapter-bun": "^0.5.2", + "typescript-cookie": "^1.0.6", "wasm-vips": "^0.0.11" } } diff --git a/src/app.html b/src/app.html index 77a5ff5..03c4c3b 100644 --- a/src/app.html +++ b/src/app.html @@ -6,7 +6,7 @@ %sveltekit.head% -
+- As of right now, VERT only supports image conversion of most popular - formats. Don't worry though, as we'll add more options and support for - more formats in the future! + As of right now, VERT supports image and audio conversion of most + popular formats. We'll add support for more formats in the future!
- VERT is licensed under AGPL-3.0, and the source code can be found on GitHub. -
+