diff --git a/README.md b/README.md index 15bb64c8..10eb365b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Run large language models with `llama.cpp`. ## Install -- [Download](https://github.com/jmorganca/ollama/releases/latest) for macOS +- [Download](https://ollama.ai/download) for macOS - Download for Windows (coming soon) - Docker: `docker run -p 11434:11434 ollama/ollama` diff --git a/scripts/publish.sh b/scripts/publish.sh index b6dea418..31494151 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -18,12 +18,16 @@ if ! git rev-parse v$VERSION >/dev/null 2>&1; then git push origin v$VERSION fi +mkdir dist +cp app/out/make/zip/${OS}/${ARCH}/Ollama-${OS}-${ARCH}-${VERSION}.zip dist/Ollama-${OS}-${ARCH}.zip +cp ./ollama dist/ollama-${OS}-${ARCH} + # Create a new release. gh release create v$VERSION # Upload the zip file. -gh release upload v$VERSION "app/out/make/zip/${OS}/${ARCH}/Ollama-${OS}-${ARCH}-${VERSION}.zip#Ollama-${OS}-${ARCH}.zip" +gh release upload v$VERSION ./dist/Ollama-${OS}-${ARCH}.zip # Upload the binary. -gh release upload v$VERSION "./ollama#ollama-${OS}-${ARCH}" +gh release upload v$VERSION ./dist/ollama-${OS}-${ARCH} diff --git a/web/app/download/page.tsx b/web/app/download/page.tsx new file mode 100644 index 00000000..983116ab --- /dev/null +++ b/web/app/download/page.tsx @@ -0,0 +1,20 @@ +import { Octokit } from '@octokit/rest' +import { redirect } from 'next/navigation' + +const octokit = new Octokit() + +export default async function Download() { + const { data } = await octokit.repos.getLatestRelease({ + owner: 'jmorganca', + repo: 'ollama', + }) + + // todo: get the correct asset for the current arch/os + const asset = data.assets.find(a => a.name.toLowerCase().includes('darwin') && a.name.toLowerCase().includes('.zip')) + + if (asset) { + redirect(asset.browser_download_url) + } + + return null +} diff --git a/web/app/icon.png b/web/app/icon.png new file mode 100644 index 00000000..72c919e9 Binary files /dev/null and b/web/app/icon.png differ diff --git a/web/app/icon.svg b/web/app/icon.svg deleted file mode 100644 index 0a49a2cb..00000000 --- a/web/app/icon.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/web/app/page.tsx b/web/app/page.tsx index 2a3476f9..bc18d530 100644 --- a/web/app/page.tsx +++ b/web/app/page.tsx @@ -1,17 +1,23 @@ +import { AiFillApple } from 'react-icons/ai' + import models from '../../models.json' export default async function Home() { return (
-

ollama

-
+ +

Ollama {' '} - is a tool for running large language models. The latest version is available for download{' '} - - here. + is a tool for running large language models, currently for macOS with Windows and Linux coming soon. +
+
+
+

diff --git a/web/package-lock.json b/web/package-lock.json index 02d8b622..45634d19 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.0", "dependencies": { "@octokit/rest": "^19.0.13", + "@octokit/types": "^11.0.0", "@types/node": "20.4.0", "@types/react": "18.2.14", "@types/react-dom": "18.2.6", @@ -20,6 +21,7 @@ "postcss": "8.4.24", "react": "18.2.0", "react-dom": "18.2.0", + "react-icons": "^4.10.1", "semver": "^7.5.3", "tailwindcss": "3.3.2", "typescript": "5.1.6" @@ -393,6 +395,14 @@ "node": ">= 14" } }, + "node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, "node_modules/@octokit/endpoint": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", @@ -406,6 +416,14 @@ "node": ">= 14" } }, + "node_modules/@octokit/endpoint/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, "node_modules/@octokit/graphql": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", @@ -419,6 +437,14 @@ "node": ">= 14" } }, + "node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, "node_modules/@octokit/openapi-types": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", @@ -439,6 +465,14 @@ "@octokit/core": ">=4" } }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, "node_modules/@octokit/plugin-request-log": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", @@ -498,6 +532,22 @@ "node": ">= 14" } }, + "node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/request/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, "node_modules/@octokit/rest": { "version": "19.0.13", "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", @@ -518,9 +568,9 @@ "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==" }, "node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.0.0.tgz", + "integrity": "sha512-h4iyfMpQUdub1itwTn6y7z2a3EtPuer1paKfsIbZErv0LBbZYGq6haiPUPJys/LetPqgcX3ft33O16XuS03Anw==", "dependencies": { "@octokit/openapi-types": "^18.0.0" } @@ -3531,6 +3581,14 @@ "react": "^18.2.0" } }, + "node_modules/react-icons": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.10.1.tgz", + "integrity": "sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", diff --git a/web/package.json b/web/package.json index 4da5924d..3bd2c27c 100644 --- a/web/package.json +++ b/web/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@octokit/rest": "^19.0.13", + "@octokit/types": "^11.0.0", "@types/node": "20.4.0", "@types/react": "18.2.14", "@types/react-dom": "18.2.6", @@ -20,6 +21,7 @@ "postcss": "8.4.24", "react": "18.2.0", "react-dom": "18.2.0", + "react-icons": "^4.10.1", "semver": "^7.5.3", "tailwindcss": "3.3.2", "typescript": "5.1.6" diff --git a/web/public/next.svg b/web/public/next.svg deleted file mode 100644 index 5174b28c..00000000 --- a/web/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/public/ollama.png b/web/public/ollama.png new file mode 100644 index 00000000..8cd2cf1e Binary files /dev/null and b/web/public/ollama.png differ diff --git a/web/public/vercel.svg b/web/public/vercel.svg deleted file mode 100644 index d2f84222..00000000 --- a/web/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file