Compare commits
No commits in common. "6b26a9bf6392683fc4eceac90aa8b68e267354e8" and "60317f07d4f3a9e132af6fef0022839f236ca73c" have entirely different histories.
6b26a9bf63
...
60317f07d4
12 changed files with 1173 additions and 891 deletions
|
@ -1,32 +0,0 @@
|
||||||
name: Build and deploy
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
lint:
|
|
||||||
runs-on: docker
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: ghcr.io/catthehacker/ubuntu:runner-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Nix
|
|
||||||
uses: https://guardianproject.dev/actions/install-nix-action@v31
|
|
||||||
|
|
||||||
- name: Install npm dependencies
|
|
||||||
run: nix develop --command npm install
|
|
||||||
|
|
||||||
- name: Login to Netlify
|
|
||||||
run: nix develop --command netlify login -auth $NETLIFY_AUTH_TOKEN
|
|
||||||
|
|
||||||
- name: Run build
|
|
||||||
run: nix develop --command netlify build
|
|
||||||
|
|
||||||
- name: Deploy
|
|
||||||
run: nix develop --command netlify deploy
|
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -23,6 +23,4 @@ yarn-error.log*
|
||||||
/.idea
|
/.idea
|
||||||
|
|
||||||
# Generated docs
|
# Generated docs
|
||||||
/docs/api
|
/docs/api
|
||||||
# Local Netlify folder
|
|
||||||
.netlify
|
|
|
@ -6,148 +6,131 @@ import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs";
|
||||||
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
||||||
|
|
||||||
const config: Config = {
|
const config: Config = {
|
||||||
title: 'jasima.app',
|
title: 'jasima.app',
|
||||||
tagline: 'Bypass censorship and enhance privacy for your audience and community',
|
tagline: 'Bypass censorship and enhance privacy for your audience and community',
|
||||||
favicon: 'img/logo.png',
|
favicon: 'img/logo.png',
|
||||||
|
|
||||||
url: 'https://www.jasima.app',
|
url: 'https://jasima.app',
|
||||||
baseUrl: '/',
|
baseUrl: '/',
|
||||||
|
|
||||||
onBrokenLinks: 'throw',
|
onBrokenLinks: 'throw',
|
||||||
onBrokenMarkdownLinks: 'warn',
|
onBrokenMarkdownLinks: 'warn',
|
||||||
|
|
||||||
// Even if you don't use internationalization, you can use this field to set
|
// Even if you don't use internationalization, you can use this field to set
|
||||||
// useful metadata like html lang. For example, if your site is Chinese, you
|
// useful metadata like html lang. For example, if your site is Chinese, you
|
||||||
// may want to replace "en" with "zh-Hans".
|
// may want to replace "en" with "zh-Hans".
|
||||||
i18n: {
|
i18n: {
|
||||||
defaultLocale: 'en',
|
defaultLocale: 'en',
|
||||||
locales: ['en'],
|
locales: ['en'],
|
||||||
|
},
|
||||||
|
|
||||||
|
presets: [
|
||||||
|
[
|
||||||
|
'classic',
|
||||||
|
{
|
||||||
|
docs: {
|
||||||
|
sidebarPath: './sidebars.ts',
|
||||||
|
docItemComponent: "@theme/ApiItem",
|
||||||
|
},
|
||||||
|
theme: {
|
||||||
|
customCss: './src/css/custom.css',
|
||||||
|
},
|
||||||
|
} satisfies Preset.Options,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
plugins: [
|
||||||
|
[
|
||||||
|
'docusaurus-plugin-openapi-docs',
|
||||||
|
{
|
||||||
|
id: "api", // plugin id
|
||||||
|
docsPluginId: "classic", // configured for preset-classic
|
||||||
|
config: {
|
||||||
|
api: {
|
||||||
|
specPath: "static/openapi.json",
|
||||||
|
outputDir: "docs/api/",
|
||||||
|
downloadUrl: "/openapi.json",
|
||||||
|
sidebarOptions: {
|
||||||
|
groupPathsBy: "tag",
|
||||||
|
categoryLinkSource: "tag",
|
||||||
|
},
|
||||||
|
} satisfies OpenApiPlugin.Options,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
],
|
||||||
|
themes: ["docusaurus-theme-openapi-docs"], // export theme components
|
||||||
|
|
||||||
|
themeConfig: {
|
||||||
|
// Replace with your project's social card
|
||||||
|
image: 'img/docusaurus-social-card.jpg',
|
||||||
|
navbar: {
|
||||||
|
title: 'jasima.app',
|
||||||
|
logo: {
|
||||||
|
alt: 'Logo',
|
||||||
|
src: 'img/logo.png',
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
type: 'docSidebar',
|
||||||
|
sidebarId: 'docsSidebar',
|
||||||
|
position: 'left',
|
||||||
|
label: 'Docs',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'docSidebar',
|
||||||
|
sidebarId: 'apiSidebar',
|
||||||
|
position: 'left',
|
||||||
|
label: 'API',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
to: '/contact',
|
||||||
|
position: 'left',
|
||||||
|
label: 'Contact',
|
||||||
|
}
|
||||||
|
],
|
||||||
},
|
},
|
||||||
|
footer: {
|
||||||
presets: [
|
style: 'dark',
|
||||||
[
|
links: [
|
||||||
'classic',
|
{
|
||||||
|
title: 'Docs',
|
||||||
|
items: [
|
||||||
{
|
{
|
||||||
docs: {
|
label: 'Censorship 101',
|
||||||
sidebarPath: './sidebars.ts',
|
to: '/docs/censorship/',
|
||||||
docItemComponent: "@theme/ApiItem",
|
},
|
||||||
},
|
|
||||||
theme: {
|
|
||||||
customCss: './src/css/custom.css',
|
|
||||||
},
|
|
||||||
} satisfies Preset.Options,
|
|
||||||
],
|
|
||||||
],
|
|
||||||
|
|
||||||
plugins: [
|
|
||||||
[
|
|
||||||
'docusaurus-plugin-openapi-docs',
|
|
||||||
{
|
{
|
||||||
id: "api", // plugin id
|
label: 'Web Mirrors',
|
||||||
docsPluginId: "classic", // configured for preset-classic
|
to: '/docs/mirrors/',
|
||||||
config: {
|
|
||||||
api: {
|
|
||||||
specPath: "static/openapi.json",
|
|
||||||
outputDir: "docs/api/",
|
|
||||||
downloadUrl: "/openapi.json",
|
|
||||||
sidebarOptions: {
|
|
||||||
groupPathsBy: "tag",
|
|
||||||
categoryLinkSource: "tag",
|
|
||||||
},
|
|
||||||
} satisfies OpenApiPlugin.Options,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
],
|
},
|
||||||
themes: ["docusaurus-theme-openapi-docs"], // export theme components
|
{
|
||||||
|
title: 'More',
|
||||||
themeConfig: {
|
items: [
|
||||||
// Replace with your project's social card
|
{
|
||||||
image: 'img/jasima-social-card.jpg',
|
label: 'Get In Touch',
|
||||||
navbar: {
|
href: '/contact',
|
||||||
title: 'jasima.app',
|
|
||||||
logo: {
|
|
||||||
alt: 'Logo',
|
|
||||||
src: 'img/logo.png',
|
|
||||||
},
|
},
|
||||||
items: [
|
{
|
||||||
{
|
label: 'Bypass Censorship',
|
||||||
type: 'docSidebar',
|
href: 'https://bypasscensorship.org/',
|
||||||
sidebarId: 'docsSidebar',
|
},
|
||||||
position: 'left',
|
{
|
||||||
label: 'Docs',
|
label: 'Guardian Project',
|
||||||
},
|
href: 'https://guardianproject.info/',
|
||||||
{
|
},
|
||||||
type: 'docSidebar',
|
],
|
||||||
sidebarId: 'apiSidebar',
|
|
||||||
position: 'left',
|
|
||||||
label: 'API',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: '/contact',
|
|
||||||
position: 'left',
|
|
||||||
label: 'Contact',
|
|
||||||
}
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
footer: {
|
],
|
||||||
style: 'dark',
|
copyright: `Copyright © 2021-${new Date().getFullYear()}.`,
|
||||||
links: [
|
},
|
||||||
{
|
prism: {
|
||||||
title: 'jasima.app',
|
theme: prismThemes.github,
|
||||||
items: [
|
darkTheme: prismThemes.dracula,
|
||||||
{
|
},
|
||||||
label: 'Service Status',
|
} satisfies Preset.ThemeConfig,
|
||||||
href: 'https://status.jasima.app/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'API Documentation',
|
|
||||||
to: '/docs/api/jasima-app-api'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Docs',
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
label: 'Censorship 101',
|
|
||||||
to: '/docs/censorship/',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Web Mirrors',
|
|
||||||
to: '/docs/mirrors/',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'More',
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
label: 'Get In Touch',
|
|
||||||
href: '/contact',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Open Source',
|
|
||||||
href: 'https://guardianproject.dev/jasima'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Bypass Censorship',
|
|
||||||
href: 'https://bypasscensorship.org/',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Guardian Project',
|
|
||||||
href: 'https://guardianproject.info/',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
copyright: `Copyright © 2021-${new Date().getFullYear()}.`,
|
|
||||||
},
|
|
||||||
prism: {
|
|
||||||
theme: prismThemes.github,
|
|
||||||
darkTheme: prismThemes.dracula,
|
|
||||||
},
|
|
||||||
} satisfies Preset.ThemeConfig,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
|
|
61
flake.lock
generated
61
flake.lock
generated
|
@ -1,61 +0,0 @@
|
||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1748693115,
|
|
||||||
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "root",
|
|
||||||
"version": 7
|
|
||||||
}
|
|
31
flake.nix
31
flake.nix
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
};
|
|
||||||
outputs =
|
|
||||||
{
|
|
||||||
self,
|
|
||||||
nixpkgs,
|
|
||||||
flake-utils,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
flake-utils.lib.eachDefaultSystem (
|
|
||||||
system:
|
|
||||||
let
|
|
||||||
pkgs = import nixpkgs {
|
|
||||||
inherit system;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
with pkgs;
|
|
||||||
{
|
|
||||||
devShells.default = mkShell {
|
|
||||||
buildInputs = [
|
|
||||||
git
|
|
||||||
netlify-cli
|
|
||||||
nodejs_22
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
21
netlify.toml
21
netlify.toml
|
@ -1,21 +0,0 @@
|
||||||
# example netlify.toml
|
|
||||||
[build]
|
|
||||||
command = "npm run build"
|
|
||||||
functions = "netlify/functions"
|
|
||||||
publish = "build"
|
|
||||||
|
|
||||||
## Uncomment to use this redirect for Single Page Applications like create-react-app.
|
|
||||||
## Not needed for static site generators.
|
|
||||||
#[[redirects]]
|
|
||||||
# from = "/*"
|
|
||||||
# to = "/index.html"
|
|
||||||
# status = 200
|
|
||||||
|
|
||||||
## (optional) Settings for Netlify Dev
|
|
||||||
## https://github.com/netlify/cli/blob/main/docs/netlify-dev.md#project-detection
|
|
||||||
#[dev]
|
|
||||||
# command = "yarn start" # Command to start your dev server
|
|
||||||
# port = 3000 # Port that the dev server will be listening on
|
|
||||||
# publish = "dist" # Folder with the static content for _redirect file
|
|
||||||
|
|
||||||
## more info on configuring this file: https://ntl.fyi/file-based-build-config
|
|
1654
package-lock.json
generated
1654
package-lock.json
generated
File diff suppressed because it is too large
Load diff
12
package.json
12
package.json
|
@ -15,9 +15,9 @@
|
||||||
"typecheck": "tsc"
|
"typecheck": "tsc"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "3.8.0",
|
"@docusaurus/core": "3.7.0",
|
||||||
"@docusaurus/plugin-ideal-image": "3.8.0",
|
"@docusaurus/plugin-ideal-image": "3.7.0",
|
||||||
"@docusaurus/preset-classic": "3.8.0",
|
"@docusaurus/preset-classic": "3.7.0",
|
||||||
"@mdx-js/react": "^3.0.0",
|
"@mdx-js/react": "^3.0.0",
|
||||||
"clsx": "^2.0.0",
|
"clsx": "^2.0.0",
|
||||||
"docusaurus-plugin-openapi-docs": "^4.4.0",
|
"docusaurus-plugin-openapi-docs": "^4.4.0",
|
||||||
|
@ -27,9 +27,9 @@
|
||||||
"react-dom": "^18.0.0"
|
"react-dom": "^18.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@docusaurus/module-type-aliases": "3.8.0",
|
"@docusaurus/module-type-aliases": "3.7.0",
|
||||||
"@docusaurus/tsconfig": "3.8.0",
|
"@docusaurus/tsconfig": "3.7.0",
|
||||||
"@docusaurus/types": "3.8.0",
|
"@docusaurus/types": "3.7.0",
|
||||||
"typescript": "~5.6.2"
|
"typescript": "~5.6.2"
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
|
|
BIN
static/img/docusaurus-social-card.jpg
Normal file
BIN
static/img/docusaurus-social-card.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
Binary file not shown.
Before Width: | Height: | Size: 276 KiB |
Binary file not shown.
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 1,001 B |
Binary file not shown.
Before Width: | Height: | Size: 44 KiB |
Loading…
Add table
Add a link
Reference in a new issue