Add environment variables to make it easy for anyone to host
This commit is contained in:
parent
69239287b2
commit
c75f426065
20
.env.example
Normal file
20
.env.example
Normal file
@ -0,0 +1,20 @@
|
||||
# All environment variables must be prefixed with VITE_ to be seen by client.
|
||||
|
||||
# Self-hosted Services URLs.
|
||||
VITE_BANG_URL="https://bang."
|
||||
VITE_GITEA_URL="https://git."
|
||||
VITE_SEARXNG_URL="https://search."
|
||||
VITE_OPENWEBUI_URL="https://chat."
|
||||
|
||||
# Set default bang here. For example "g" would be Google.
|
||||
# Google is the default if you don't set this.
|
||||
# 's' is for your searxng instance, replacing startpage
|
||||
VITE_DEFAULT_BANG="s"
|
||||
|
||||
# SPECIFIC MODELS FOR OPENWEBUI
|
||||
# Local
|
||||
VITE_LLAMA_MODEL="llama3.1" # !llama
|
||||
VITE_DEEPSEEK_MODEL="deepseek-r1:8b" # !r1
|
||||
# Remote
|
||||
VITE_OPENAI_MODEL="gpt-4o-mini" # !openai
|
||||
VITE_CLAUDE_MODEL="anthropic/claude-3.5-sonnet" # !claude
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -22,3 +22,8 @@ dist-ssr
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
# ENV
|
||||
.env
|
||||
.env*
|
||||
!.env.example
|
||||
|
116
src/bang.ts
116
src/bang.ts
@ -1,113 +1,139 @@
|
||||
// This file was (mostly) ripped from https://duckduckgo.com/bang.js
|
||||
|
||||
const SEARXNG_URL = import.meta.env.VITE_SEARXNG_URL as string;
|
||||
const GITEA_URL = import.meta.env.VITE_GITEA_URL as string;
|
||||
const OPENWEBUI_URL = import.meta.env.VITE_OPENWEBUI_URL as string;
|
||||
const LLAMA_MODEL = import.meta.env.VITE_LLAMA_MODEL.replace(":", "%3A") as string;
|
||||
const DEEPSEEK_MODEL = import.meta.env.VITE_DEEPSEEK_MODEL.replace(":", "%3A") as string;
|
||||
const OPENAI_MODEL = import.meta.env.VITE_OPENAI_MODEL as string;
|
||||
const CLAUDE_MODEL = import.meta.env.VITE_CLAUDE_MODEL.replace("/", "%2F") as string;
|
||||
|
||||
export const bangs = [
|
||||
{
|
||||
c: "Online Services",
|
||||
d: "search.gibbyb.com",
|
||||
d: SEARXNG_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "Searxng",
|
||||
sc: "Search",
|
||||
t: "sg",
|
||||
u: "https://search.gibbyb.com/?q={{{s}}}",
|
||||
t: "s",
|
||||
u: `${SEARXNG_URL}/?q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "Tech",
|
||||
d: "git.gibbyb.com",
|
||||
d: GITEA_URL,
|
||||
r: 0,
|
||||
s: "Gitea",
|
||||
sc: "Cryptocurrency",
|
||||
t: "tea",
|
||||
u: "https://git.gibbyb.com/?repo-search-query={{{s}}}",
|
||||
u: `${GITEA_URL}/?repo-search-query={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "ai",
|
||||
u: "https://chat.gibbyb.com/?q={{{s}}}",
|
||||
u: `${OPENWEBUI_URL}/?q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "claude",
|
||||
u: "https://chat.gibbyb.com/?models=anthropic%2Fclaude-3.5-sonnet&q={{{s}}}",
|
||||
t: "c",
|
||||
u: `${OPENWEBUI_URL}/?q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "llama",
|
||||
u: "https://chat.gibbyb.com/?models=llama3.1&q={{{s}}}",
|
||||
u: `${OPENWEBUI_URL}/?models=${LLAMA_MODEL}&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
sc: "AI",
|
||||
t: "r17b",
|
||||
u: "https://chat.gibbyb.com/?models=deepseek-r1%3A7b&q={{{s}}}",
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "r1",
|
||||
u: "https://chat.gibbyb.com/?models=deepseek-r1%3A8b&q={{{s}}}",
|
||||
u: `${OPENWEBUI_URL}/?models=${DEEPSEEK_MODEL}&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "r132b",
|
||||
u: "https://chat.gibbyb.com/?models=deepseek-r1%3A32b&q={{{s}}}",
|
||||
t: "r1-7b",
|
||||
u: `${OPENWEBUI_URL}/?models=deepseek-r1%3A7b&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "r1-32b",
|
||||
u: `${OPENWEBUI_URL}/?models=deepseek-r1%3A32b&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "claude",
|
||||
u: `${OPENWEBUI_URL}/?models=${CLAUDE_MODEL}&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "openai",
|
||||
u: `${OPENWEBUI_URL}/?models=${OPENAI_MODEL}&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "o3-mini",
|
||||
u: "https://chat.gibbyb.com/?models=o3-mini&q={{{s}}}",
|
||||
u: `${OPENWEBUI_URL}/?models=o3-mini&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "o1",
|
||||
u: "https://chat.gibbyb.com/?models=o1&q={{{s}}}",
|
||||
u: `${OPENWEBUI_URL}/?models=o1&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "4o-mini",
|
||||
u: "https://chat.gibbyb.com/?models=gpt-4o-mini&q={{{s}}}",
|
||||
u: `${OPENWEBUI_URL}/?models=gpt-4o-mini&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
d: "chat.gibbyb.com",
|
||||
d: OPENWEBUI_URL,
|
||||
r: 0,
|
||||
s: "GibbyB",
|
||||
s: "OpenWebUI",
|
||||
sc: "AI",
|
||||
t: "4o",
|
||||
u: "https://chat.gibbyb.com/?models=gpt-4o&q={{{s}}}",
|
||||
u: `${OPENWEBUI_URL}/?models=gpt-4o&q={{{s}}}`,
|
||||
},
|
||||
{
|
||||
c: "AI",
|
||||
@ -98415,7 +98441,7 @@ export const bangs = [
|
||||
r: 12469,
|
||||
s: "startpage.com",
|
||||
sc: "Search",
|
||||
t: "s",
|
||||
t: "startpage",
|
||||
u: "http://startpage.com/do/metasearch.pl?query={{{s}}}",
|
||||
},
|
||||
{
|
||||
|
@ -18,7 +18,7 @@ function noSearchDefaultPageRender() {
|
||||
<input
|
||||
type="text"
|
||||
class="url-input"
|
||||
value="https://bang.gbrown.org?q=%s"
|
||||
value="${import.meta.env.VITE_BANG_URL}?q=%s"
|
||||
readonly
|
||||
/>
|
||||
<button class="copy-button">
|
||||
@ -41,7 +41,7 @@ function noSearchDefaultPageRender() {
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Engine URL:</b></td>
|
||||
<td>https://bang.gbrown.org?q=%s</td>
|
||||
<td>${import.meta.env.VITE_BANG_URL}?q=%s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Alias:</b></td>
|
||||
@ -113,7 +113,8 @@ function noSearchDefaultPageRender() {
|
||||
});
|
||||
}
|
||||
|
||||
const LS_DEFAULT_BANG = localStorage.getItem("default-bang") ?? "sg";
|
||||
const envDefaultBang = import.meta.env.VITE_DEFAULT_BANG ?? "g";
|
||||
const LS_DEFAULT_BANG = localStorage.getItem("default-bang") ?? envDefaultBang;
|
||||
const defaultBang = bangs.find((b) => b.t === LS_DEFAULT_BANG);
|
||||
|
||||
function getBangredirectUrl() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user