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
|
*.njsproj
|
||||||
*.sln
|
*.sln
|
||||||
*.sw?
|
*.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
|
// 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 = [
|
export const bangs = [
|
||||||
{
|
{
|
||||||
c: "Online Services",
|
c: "Online Services",
|
||||||
d: "search.gibbyb.com",
|
d: SEARXNG_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "Searxng",
|
||||||
sc: "Search",
|
sc: "Search",
|
||||||
t: "sg",
|
t: "s",
|
||||||
u: "https://search.gibbyb.com/?q={{{s}}}",
|
u: `${SEARXNG_URL}/?q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "Tech",
|
c: "Tech",
|
||||||
d: "git.gibbyb.com",
|
d: GITEA_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "Gitea",
|
s: "Gitea",
|
||||||
sc: "Cryptocurrency",
|
sc: "Cryptocurrency",
|
||||||
t: "tea",
|
t: "tea",
|
||||||
u: "https://git.gibbyb.com/?repo-search-query={{{s}}}",
|
u: `${GITEA_URL}/?repo-search-query={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "OpenWebUI",
|
||||||
sc: "AI",
|
sc: "AI",
|
||||||
t: "ai",
|
t: "ai",
|
||||||
u: "https://chat.gibbyb.com/?q={{{s}}}",
|
u: `${OPENWEBUI_URL}/?q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "OpenWebUI",
|
||||||
sc: "AI",
|
sc: "AI",
|
||||||
t: "claude",
|
t: "c",
|
||||||
u: "https://chat.gibbyb.com/?models=anthropic%2Fclaude-3.5-sonnet&q={{{s}}}",
|
u: `${OPENWEBUI_URL}/?q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "OpenWebUI",
|
||||||
sc: "AI",
|
sc: "AI",
|
||||||
t: "llama",
|
t: "llama",
|
||||||
u: "https://chat.gibbyb.com/?models=llama3.1&q={{{s}}}",
|
u: `${OPENWEBUI_URL}/?models=${LLAMA_MODEL}&q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "OpenWebUI",
|
||||||
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",
|
|
||||||
sc: "AI",
|
sc: "AI",
|
||||||
t: "r1",
|
t: "r1",
|
||||||
u: "https://chat.gibbyb.com/?models=deepseek-r1%3A8b&q={{{s}}}",
|
u: `${OPENWEBUI_URL}/?models=${DEEPSEEK_MODEL}&q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "OpenWebUI",
|
||||||
sc: "AI",
|
sc: "AI",
|
||||||
t: "r132b",
|
t: "r1-7b",
|
||||||
u: "https://chat.gibbyb.com/?models=deepseek-r1%3A32b&q={{{s}}}",
|
u: `${OPENWEBUI_URL}/?models=deepseek-r1%3A7b&q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
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",
|
sc: "AI",
|
||||||
t: "o3-mini",
|
t: "o3-mini",
|
||||||
u: "https://chat.gibbyb.com/?models=o3-mini&q={{{s}}}",
|
u: `${OPENWEBUI_URL}/?models=o3-mini&q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "OpenWebUI",
|
||||||
sc: "AI",
|
sc: "AI",
|
||||||
t: "o1",
|
t: "o1",
|
||||||
u: "https://chat.gibbyb.com/?models=o1&q={{{s}}}",
|
u: `${OPENWEBUI_URL}/?models=o1&q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "OpenWebUI",
|
||||||
sc: "AI",
|
sc: "AI",
|
||||||
t: "4o-mini",
|
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",
|
c: "AI",
|
||||||
d: "chat.gibbyb.com",
|
d: OPENWEBUI_URL,
|
||||||
r: 0,
|
r: 0,
|
||||||
s: "GibbyB",
|
s: "OpenWebUI",
|
||||||
sc: "AI",
|
sc: "AI",
|
||||||
t: "4o",
|
t: "4o",
|
||||||
u: "https://chat.gibbyb.com/?models=gpt-4o&q={{{s}}}",
|
u: `${OPENWEBUI_URL}/?models=gpt-4o&q={{{s}}}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
c: "AI",
|
c: "AI",
|
||||||
@ -98415,7 +98441,7 @@ export const bangs = [
|
|||||||
r: 12469,
|
r: 12469,
|
||||||
s: "startpage.com",
|
s: "startpage.com",
|
||||||
sc: "Search",
|
sc: "Search",
|
||||||
t: "s",
|
t: "startpage",
|
||||||
u: "http://startpage.com/do/metasearch.pl?query={{{s}}}",
|
u: "http://startpage.com/do/metasearch.pl?query={{{s}}}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -18,7 +18,7 @@ function noSearchDefaultPageRender() {
|
|||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
class="url-input"
|
class="url-input"
|
||||||
value="https://bang.gbrown.org?q=%s"
|
value="${import.meta.env.VITE_BANG_URL}?q=%s"
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
<button class="copy-button">
|
<button class="copy-button">
|
||||||
@ -41,7 +41,7 @@ function noSearchDefaultPageRender() {
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Engine URL:</b></td>
|
<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>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Alias:</b></td>
|
<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);
|
const defaultBang = bangs.find((b) => b.t === LS_DEFAULT_BANG);
|
||||||
|
|
||||||
function getBangredirectUrl() {
|
function getBangredirectUrl() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user