Add docs, update frontend deps

architecture-guide.md, entities-api.md, entities.md, how-to-contribute.md, getting-started.md, installation.md, roadmap.md, plugin-recipes.md, plugin-system.md, plugins-api.md, project-graphs.md, registry-api.md, settings-api.md, transforms-api.md, transforms.md, understanding-osintbuddy.md, writing-plugins.md, index.md, package.json, icg.svg, AppLayoutSidebar.tsx, Loaders.tsx, index.tsx, LandingPage.tsx, and 2 more files
This commit is contained in:
jerlendds
2024-01-20 15:50:32 -07:00
parent f1d1c63c90
commit 27ed0948a1
26 changed files with 1166 additions and 1836 deletions

View File

@@ -0,0 +1,46 @@
---
title: Architecture guide
description: The overall design and architecture of OSINTBuddy.
---
This document describes the high-level architecture of OSINTBuddy. Please be aware the project is in a very early beta state and major changes may occur!
---
## Overview
On the highest level, OSINTBuddy is a thing which lets users build interactive node based project graphs on the client, which can be expanded through data transforms that pull from: custom plugin based sources, open data sources, search engines, or for whatever you decide to implement.
### Project Structure
```js
frontend // react frontend
backend
├── backend
   ├── app
      ├── alembic // migrations
      ├── app
         ├── admin // sqladmin models
         ├── api // controllers/api endpoints
            └── api_v1
         ├── core // env settings/celery app/logger/hashing
         ├── crud // views/crud functions
         ├── db // db initialization and base model classes
         ├── models // relational data models
         ├── schemas // pydantic/validation schemas
         ├── plugins // data sources/user plugins
         └── tests
      └── scripts // startup/testing scripts used by docker
├── microservice
   └── google-service // golang google crawlers
```
### Core Services
- **Frontend - [React](https://legacy.reactjs.org/docs/getting-started.html)**
- **Backend - [FastAPI](https://fastapi.tiangolo.com/)**
- **Caching - [Redis](https://redis.io/docs/)**
- **Graph database - [JanusGraph](https://janusgraph.org/) + [ScyllaDB](https://www.scylladb.com/)**
- **Task queue - [Redis & Celery](https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/redis.html)**
- **Relational database - [PostgreSQL](https://www.postgresql.org/docs/)**

7
.github/osintbuddy.com/docs/entities-api.md vendored Executable file
View File

@@ -0,0 +1,7 @@
---
title: Entities API reference
pageTitle: Entities API reference
description:
---
Coming soon. ETA 12-24 weeks from June 10th 2023.

7
.github/osintbuddy.com/docs/entities.md vendored Executable file
View File

@@ -0,0 +1,7 @@
---
title: Entities
pageTitle: Entities
description:
---
Coming soon. ETA 12-24 weeks from June 10th 2023.

View File

@@ -0,0 +1,41 @@
---
title: How to contribute
description: Contributing to OSINTBuddy development.
---
We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
## We Develop with Github
We use github to host code, to track issues and feature requests, as well as accept pull requests.
Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
1. Fork the repo and create your branch from `main`.
2. If you've added code that should be tested, add tests.
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes.
5. Make sure your code lints.
6. Issue that pull request!
## Any contributions you make will be under the GNU AGPLv3 Software License
In short, when you submit code changes, your submissions are understood to be under the same [GNU AGPLv3 License](https://choosealicense.com/licenses/agpl-3.0/) that covers the project. Feel free to contact the maintainers if that's a concern.
## Report bugs using Github's [issues](https://github.com/briandk/transcriptase-atom/issues)
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](); it's that easy! **Great Bug Reports** tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
People *love* thorough bug reports. I'm not even kidding.
## License
By contributing, you agree that your contributions will be licensed under its GNU AGPLv3 License.

View File

@@ -0,0 +1,43 @@
---
title: Getting involved with OSINTBuddy
pageTitle: "OSINTBuddy - Getting Started"
description: "OSINTBuddy: The Open-Source Alternative to Maltego. Fetch data from different sources and returns the results as visual entities that you can explore step-by-step."
---
Learn all the ways you can get involved with the OSINTBuddy community and the projects development. {% .lead %}
{% quick-links %}
{% quick-link title="Plugin System" icon="plug" href="/docs/plugin-system" description="Learn how to build powerful plugins that can pull from any data source." /%}
{% quick-link title="OSINTBuddy Membership" icon="coin" href="https://opencollective.com/openinfolabs/projects/osintbuddy#contribute" description="Join the OSINTBuddy Society for unique benefits. This helps us stay free for everyone" /%}
{% /quick-links %}
## Joining the community
[Join us on Discord](https://discord.gg/gsbbYHA3K3) where you can connect with fellow OSINT enthusiasts, exchange ideas, get help, and discuss the OSINTBuddy application. Our Discord server offers dedicated channels for various topics, including general discussions, bug reporting, and feature requests. People are encouraged to ask questions, share their experiences, and or contribute to the development of the application.
By joining the OSINTBuddy community, you'll not only gain access to insider dev logs and support but also have the opportunity to contribute to the development and growth of this platform.
## Bug reporting
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/jerlendds/osintbuddy/issues/new?assignees=jerlendds&labels=Type%3A+Bug&projects=&template=bug_report.md&title=%5BBUG%5D+); it's that easy! **Great Bug Reports** tend to have:
- Error logs wrapped in code blocks
- A quick summary and/or background
- Steps to reproduce
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
People *love* thorough bug reports! I'm not even kidding.
## Reporting Security Issues
Please email the core contributors directly at [theosintbuddyproject@openinfolabs.com](mailto:theosintbuddyproject@openinfolabs.com) directly if you encounter a serious security issue (e.g. in a package we use, etc)

View File

@@ -0,0 +1,55 @@
---
title: Installation
description: Fetch data from different sources and returns the results as visual entities that you can explore step-by-step
---
Learn how to get OSINTBuddy set up in about 30 minutes. To start using the alpha version of OSINTBuddy, ensure you have the prerequisites then follow the installation steps.
**Prerequisites:**
- Git
- Docker & Docker Compose
- _Windows only_:
- WSL2
- Tabby.sh _(optional)_
*Note that if you're on **Windows** and want this project to work you need unix line endings [(context)](https://stackoverflow.com/a/13154031). Before cloning, run: `git config --global core.autocrlf false`*
*Note that if you're running on an **Apple** device you will need to open your Docker app, select the **features in development** tab on the left hand side of the docker app, and enable/checkmark the `Use Rosetta for x86/64 emulation on Apple Silicon` option if you want this project to work*
## OSINTBuddy Install Instructions
1. Clone the repo and submodules
```bash
git clone --recurse-submodules https://github.com/jerlendds/osintbuddy.git
cd osintbuddy
# using ssh?
# git clone --recurse-submodules git@github.com:jerlendds/osintbuddy.git
```
2. Install Docker & Compose
- [Install Guide for Mac](https://docs.docker.com/desktop/install/mac-install/)
- [Install Guide for Windows](https://docs.docker.com/desktop/install/windows-install/)
- [Install Guide for Linux](https://docs.docker.com/desktop/install/linux-install/)
3. Start the stack with Docker:
```bash
# ./launcher # display usage information.
# ./launcher bootstrap # first time developing osintbuddy? read .github/CONTRIBUTING.md then run
# bootstrap to setup the development environments for the stack.
./launcher start # start the osintbuddy app.
# ./launcher stop # stop the osintbuddy app.
```
- **Note:** the stack will take a few minutes to startup while Solr and ScyllaDB configure themselves for JanusGraph. If you try to connect before all the databases are ready you will encounter errors.
You can now access OSINTBuddy through the URLs provided for the frontend, backend, and documentation.
- **Default login**:
- username: `osintbuddy`
- password: `osintbuddy`
- **URLs**
- Frontend: [localhost:3000](http://localhost:3000)
- Casdoor: [localhost:45910](http://localhost:45910)
- Backend: [localhost:48997/api](http://localhost:48997/api)
- Documentation: [localhost:48997/docs](http://localhost:48997/docs)

16
.github/osintbuddy.com/docs/intro/roadmap.md vendored Executable file
View File

@@ -0,0 +1,16 @@
---
title: "OSINTBuddy: The Roadmap"
pageTitle: "OSINTBuddy - Feature Roadmap"
description: "Learn more about the long term plans for the OSINTBuddy project."
---
{% timelines %}
{% timeline title="Prototype Graph and Entity Editor (v. Alpha)" description="Edit your entities sources directly from the OSINTBuddy Web UI then visit the Graph to transform and interact with your entities" releaseDate="Released on August 12th, 2023" /%}
{% timeline title="UI/UX Improvements" downloadLink="https://github.com/jerlendds/osintbuddy/archive/refs/heads/main.zip" description="Download the OSINTBuddy source code (AGPLv3 license) from the latest stable changes on Github." releaseDate="Released Recently" /%}
{% timeline title="Rest of the System" description="Join the Discord or become a member for the latest news on the OSINTBuddy project" releaseDate="Unreleased" /%}
{% /timelines %}

View File

@@ -0,0 +1,7 @@
---
title: Plugin recipes
pageTitle: Plugin recipes
description:
---
Coming soon. ETA 12-24 weeks from June 10th 2023.

88
.github/osintbuddy.com/docs/plugin-system.md vendored Executable file
View File

@@ -0,0 +1,88 @@
---
title: Plugin System
description: Fetch data from different sources and returns the results as visual entities that you can explore step-by-step
---
***Please note:** [OSINTBuddy plugins](https://github.com/jerlendds/osintbuddy-plugins) are still in early alpha and breaking changes may occasionally occur in the API. That said, if you remain on the `main` branch and avoid accessing protected methods we will try our best to avoid introducing breaking changes.*
The osintbuddy plugin system at its core is very simple. An `OBRegistry` class holds all registered `OBPlugin` classes within the application. This registry is loaded into the [osintbuddy application](https://github.com/jerlendds/osintbuddy/) where it is then used to load the available entities for the user when they access a project graph, load transforms when a user opens the context menu of a node, and perform transformations which expect a `Plugin.blueprint()` to be returned. The returned data of a transform decorated method will be automatically mapped to a [JanusGraph](https://janusgraph.org/) database through [gremlin](https://tinkerpop.apache.org/) according to the labels *(as snakecase)* you previously set in the classes `node` for whatever `Plugin.blueprint()`
you return.
To make this a bit more clear please see the below example...
```py
from pydantic import BaseModel
import osintbuddy import transform, Plugin
from osintbuddy.elements import TextInput, DropdownInput, Title, CopyText
from osintbuddy.errors import OBPluginError
class CSESearchResults(Plugin):
label = "CSE Result"
name = "CSE result"
show_label = False # do not show this on the entities dialog
# the user sees on the left of the project graph screen
color = "#058F63"
node = [
Title(label="Result"),
CopyText(label="URL"),
CopyText(label="Cache URL"),
]
class CSESearchPlugin(Plugin):
label = "CSE Search"
name = "CSE search"
color = "#2C7237"
node = [
[
TextInput(label="Query", icon="search"),
TextInput(label="Pages", icon="123", default="1"),
],
DropdownInput(label="CSE Categories", options=cse_link_options)
]
@transform(label="To cse results", icon="search")
async def transform_to_cse_results(
self,
node: BaseModel, # dynamically generated pydantic model
# that is mapped from the above labels contained within `node`
use # a pydantic model allowing you to access a selenium instance
# (and eventually a gremlin graph and settings api)
):
results = []
if not node.query:
raise OBPluginError((
'You can send error messages to the user here'
'if they forget to submit data or if some other error occurs'
))
# notice how you can access data returned from the context menu
# of this node; using the label name in snake case
print(node.cse_categories, node.query, node.pages)
... # (removed code for clarity)
if resp:
for result in resp["results"]:
url = result.get("breadcrumbUrl", {})
# some elements you can store more than just a string,
# (these elements storing dicts are mapped
# to janusgraph as properties with the names
# result_title, result_subtitle, and result_text)
blueprint = CSESearchResults.blueprint(
result={
"title": result.get("titleNoFormatting"),
"subtitle": url.get("host") + url.get("crumbs"),
"text": result.get("contentNoFormatting"),
},
url=result.get("unescapedUrl"),
cache_url=result.get("cacheUrl"),
)
results.append(blueprint)
# here we return a list of blueprints (blueprints are dicts)
# but you can also return a single blueprint without a list
return results
```

7
.github/osintbuddy.com/docs/plugins-api.md vendored Executable file
View File

@@ -0,0 +1,7 @@
---
title: Plugins API reference
pageTitle: Plugins API reference
description:
---
Coming soon. ETA 12-24 weeks from June 10th 2023.

12
.github/osintbuddy.com/docs/project-graphs.md vendored Executable file
View File

@@ -0,0 +1,12 @@
---
title: Project graphs
pageTitle: Project graphs
description:
---
Project graphs allow you to visualize complicated data sets and the connections between your stored data.
In addition, you can transform existing data into new insights through a customizable plugin system that's easy to use.
![ob-demo 2023-07-14 20-51](https://github.com/jerlendds/osintbuddy/assets/29207058/b69e08f3-ac2a-4cef-9a85-713e7df6b12f)

8
.github/osintbuddy.com/docs/registry-api.md vendored Executable file
View File

@@ -0,0 +1,8 @@
---
title: Registry API reference
pageTitle: Registry API reference
description:
---
## Share your plugins through the registry
Coming soon. ETA 12-18 weeks from July 10th 2023.

7
.github/osintbuddy.com/docs/settings-api.md vendored Executable file
View File

@@ -0,0 +1,7 @@
---
title: Settings API reference
pageTitle: Settings API reference
description:
---
Coming soon. ETA 12-24 weeks from June 10th 2023.

View File

@@ -0,0 +1,7 @@
---
title: Transforms API reference
pageTitle: Transforms API reference
description:
---
Coming soon. ETA 12-24 weeks from June 10th 2023.

6
.github/osintbuddy.com/docs/transforms.md vendored Executable file
View File

@@ -0,0 +1,6 @@
---
title: Transforms
pageTitle: Transforms
description:
---

View File

@@ -0,0 +1,26 @@
---
title: "Understanding OSINTBuddy"
pageTitle: "OSINTBuddy - Overview"
description: "Understand the OSINTBuddy platform, its features, and how it can help enhance your open-source intelligence investigations."
---
## An overview
OSINTBuddy is an open-source platform designed to assist with intelligence investigations. It offers a range of tools and features that enable investigators to collect, analyze, and visualize data from various sources. Below we will explore the key components of OSINTBuddy, their benefits, and how it can help enhance your OSINT capabilities.
### Data Collection
OSINTBuddy supports a wide range of data sources, including network information, search engines, and custom APIs. Users can easily configure and connect to these sources, pulling relevant data into their investigations.
### Plugin System
The plugin system is a core feature of OSINTBuddy that allows users to create, modify, and share plugins for specific tasks. This provides a flexible and customizable approach to data gathering and analysis, ensuring that OSINTBuddy remains adaptable to the ever-changing landscape of open-source intelligence.
### Visualization
To aid in the understanding of complex data sets, OSINTBuddy offers an intuitive visualization system that enables users to create interactive graphs of information that can be explored and transformed into new types of data. This helps investigators to better comprehend the relationships between data points, entities, and networks, making it easier to identify leads or potential targets.
### Analytics & Inference
A whitepaper focused on the OSINT domain will be here eventually...

View File

@@ -0,0 +1,72 @@
---
title: Writing plugins
pageTitle: OSINTBuddy - Creating your first plugin
description:
---
## Creating your first plugin
In this guide, we will dive into creating a custom plugin for OSINTBuddy that extends its capabilities. This will enable you to incorporate additional sources and transformations into the OSINTBuddy toolbox. We will use the provided code example as a reference to build our plugin.
### Step-by-step guide to create a new plugin
Start by importing the necessary modules:
```py
import socket
import osintbuddy as ob
```
Define a class for your plugin, inheriting from `ob.Plugin`. Set the required attributes such as `label`, and optionally set an `icon` like `world-www` (using [tabler-icon](https://tabler-icons.io/) names), and a `node` which contains a list of elements used as a blueprint for creating the node displayed on the OSINTBuddy UI.
```py
class WebsitePlugin(ob.Plugin):
label = 'Website'
name = 'Website'
color = '#1D1DB8'
icon = 'world-www'
node = [
ob.elements.TextInput(label='Domain', icon='world-www'),
]
```
Now, define a transformation method to gather and transform the data from the input node. In this case, the transform_to_ip function uses the `socket.gethostbyname()` Python module to obtain the IP address for a given domain. Decorate the method with `@transform()` and set the metadata attributes such as `label` and `icon`.
```py
@ob.transform(label='To IP', icon='building-broadcast-tower')
def transform_to_ip(self, node, **kwargs):
blueprint = IPAddressPlugin.blueprint(
ip_address=socket.gethostbyname(node.domain)
)
return blueprint
```
## Using the new plugin
To use the new plugin, simply add it to the existing OSINTBuddy plugins folder inside the application, in development mode it will be detected automatically and loaded by the platform. Once added, you can access your 'Website' plugin and use the 'To IP' transformation.
Creating a custom plugin for OSINTBuddy is an easy and effective way to enhance the capabilities of the tool, allowing you to fetch information from additional sources or transform the data in new ways. By following this guide and using the provided code example as a reference, you'll be able to create your own unique plugins to extend the functionality of OSINTBuddy to fit your specific needs.
### Full example
```py
import socket
import osintbuddy as ob
class WebsitePlugin(ob.Plugin):
label = 'Website'
name = 'Website'
color = '#1D1DB8'
icon = 'world-www'
node = [
ob.elements.TextInput(label='Domain', icon='world-www'),
]
@ob.transform(label='To IP', icon='building-broadcast-tower')
def transform_to_ip(self, node, use):
blueprint = IPAddressPlugin.blueprint(
ip_address=socket.gethostbyname(node.domain)
)
return blueprint
```

37
.github/osintbuddy.com/index.md vendored Executable file
View File

@@ -0,0 +1,37 @@
---
title: "OSINTBuddy: Transformative Link Analysis"
pageTitle: "OSINTBuddy: Transformative Link Analysis, a Maltego Alternative"
description: "OSINTBuddy: Fetch data from different sources and return the results as visual entities that you can explore step-by-step. The Open-Source Link Analysis Solution."
---
OSINTBuddy provides a range of tools for performing OSINT research. One of the key features of OSINTBuddy is its plugin system which allows researchers to easily add or modify Python plugins _(also referred to as "entities")_ to suit their specific needs, or they can choose from any community-developed entities. This system provides a flexible and customizable approach to data gathering and analysis, making it an open-source alternative to popular proprietary tools such as Maltego.
{% quick-links %}
{% quick-link title="Installation" icon="installation" href="/docs/installation" description="Step-by-step guides for setting up your system and installing OSINTBuddy." /%}
[Title](index.md) [Title](docs/writing-plugins.md) [Title](docs/understanding-osintbuddy.md) [Title](docs/transforms-api.md) [Title](docs/transforms.md) [Title](docs/settings-api.md) [Title](docs/registry-api.md) [Title](docs/project-graphs.md) [Title](docs/plugins-api.md) [Title](docs/plugin-system.md) [Title](docs/plugin-recipes.md) [Title](docs/how-to-contribute.md) [Title](docs/entities.md) [Title](docs/entities-api.md) [Title](docs/architecture-guide.md) [Title](docs/intro/roadmap.md) [Title](docs/intro/getting-started.md) [Title](docs/intro) [Title](docs/intro/installation.md)
{% quick-link title="Architecture overview" icon="presets" href="/docs/architecture-guide" description="Learn how the internals work and start contributing to OSINTBuddy." /%}
{% quick-link title="Plugin System" icon="plug" href="/docs/plugin-system" description="Learn how to build powerful plugins that can pull from any data source." /%}
{% quick-link title="OSINTBuddy Membership" icon="coin" href="https://opencollective.com/openinfolabs/projects/osintbuddy#contribute" description="Join the OSINTBuddy Society for unique benefits. This helps us stay free for everyone" /%}
{% /quick-links %}
## How the Plugin System Works
The plugin system works by allowing users to create and share small, focused modules that perform specific tasks, such as extracting information from a social media profile, analyzing email headers, or mapping IP addresses to geographical locations. These individual plugins can then be combined and connected in various ways to build more complex data-mining workflows.
## The Benefits of an Open-Source Alternative
As an open-source project, OSINTBuddy offers several advantages over proprietary tools like [Maltego](https://www.maltego.com/). The most significant of these is the ability for users to actively participate in the development process, suggesting improvements, reporting bugs, and [contributing their own plugins and enhancements](/docs/registry-api).
This collaborative approach ensures that OSINTBuddy remains responsive to the needs of its users, continually evolving to address new challenges and opportunities in the rapidly changing world of open-source intelligence.
Moreover, as an open-source project, OSINTBuddy is freely available to all, lowering the barriers to entry for individuals and organizations seeking to leverage the power of OSINT in their work. This democratizes access to powerful intelligence-gathering tools and fosters a more diverse and inclusive community of practitioners.

View File

@@ -3,9 +3,6 @@
"version": "0.3.0",
"private": true,
"dependencies": {
"@blocksuite/blocks": "^0.10.0",
"@blocksuite/editor": "^0.0.0-20231129200023-14f7d22b-nightly",
"@blocksuite/store": "^0.10.0",
"@codemirror/lang-python": "^6.1.3",
"@headlessui/react": "^1.7.7",
"@heroicons/react": "^2.0.13",

View File

@@ -5,7 +5,7 @@
width="218.55359mm"
version="1.1"
id="svg30"
sodipodi:docname="icg.svg"
sodipodi:docname="OSINTBuddy.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -1,5 +1,5 @@
import classNames from "classnames";
import { ReactComponent as IcGraphLogomark } from "@images/logo-ext.svg"; // icg-text.svg
import { ReactComponent as OSINTBuddyLogomark } from "@images/logo-ext.svg"; // OSINTBuddy-text.svg
import { Link, NavLink } from "react-router-dom";
import HamburgerMenu from "./HamburgerMenu";
import { toast } from "react-toastify";
@@ -35,7 +35,7 @@ export default function AppLayoutSidebar({ showSidebar, toggleSidebar, setShowIn
)}
>
<Link to="/" replace>
<IcGraphLogomark className="h-7 ml-1 w-auto fill-slate-400" />
<OSINTBuddyLogomark className="h-7 ml-1 w-auto fill-slate-400" />
</Link>
<HamburgerMenu

View File

@@ -26,13 +26,15 @@ export function UnderConstruction({ header, description, className = 'flex px-6'
<div className='bg-mirage-800/30 w-full block shadow rounded-b-lg '>
<div className='border-b border-mirage-300 mx-4 py-5 sm:px-6'>
<div className='-ml-6 -mt-2 flex flex-wrap items-center justify-between sm:flex-nowrap'>
<div className='ml-4 mt-2'>
<h1 className='font-display text-2xl font-semibold text-slate-300/90'>
Under Construction
<div className='ml-4 mt-2 w-full'>
<h1 className='text-2xl w-full flex items-center justify-between'>
<span className="half-grayscale mr-2.5 opacity-30 right-0">🚧</span><p className="font-display font-semibold text-slate-300/90 mr-auto"> Under Construction</p>
<span className="half-grayscale opacity-30 right-0 ml-auto">🚧</span>
</h1>
</div>
</div>
</div>
<section className='flex flex-col px-3 mb-6'>
<InquiryHeader className='z-10' title='New Feature' header={header} />
<p className='my-3 ml-6 text-slate-400 max-w-xl'>

View File

@@ -182,7 +182,7 @@ export default function DashboardPage() {
<button
className='btn-primary mx-4 mr-6 mt-auto mb-4'
>
Connect server entities
Connect server plugins
<CloudIcon />
</button>
)}

View File

@@ -62,7 +62,7 @@ export default function LandingPage(): React.ReactElement {
Elevate your Research with<br /> Strategic Insights from Public Data
</p>
<p className='pt-1 text-lg tracking-tight text-slate-400'>
Reveal the connections that shape our world and stay informed with targeted insights from public data. From defending against cyber threats and corruption to finding reproducible research and beyond, visualize the invisible with ICgraph.
Reveal the connections that shape our world and stay informed with targeted insights from public data. From defending against cyber threats and corruption to finding reproducible research and beyond, visualize the invisible with OSINTBuddy.
</p>
<div className='mt-5 lg:mt-4 flex gap-4 md:justify-center lg:justify-start'>
<button
@@ -93,13 +93,13 @@ export default function LandingPage(): React.ReactElement {
<div className='mx-auto grid max-w-2xl grid-cols-1 mt-auto mb-0 items-center lg:max-w-8xl flex-grow'>
<div className='relative z-10 md:text-center lg:text-left '>
<header className='space-y-1 mt-24 md:mt-0'>
<p className='font-display text-sm font-medium tracker-tighter text-primary-200'>Welcome to ICGraph</p>
<p className='font-display text-sm font-medium tracker-tighter text-primary-200'>Welcome to OSINTBuddy</p>
<h1 className='font-display text-3xl tracking-tight text-slate-300 dark:text-slate-300'>
{atfQuote}
</h1>
</header>
<div className='docs max-w-4xl text-slate-400 py-2'>Please email <a href='mailto:oss@osintbuddy.com' className='text-primary-200 hover:text-primary-200/80 transition-colors duration-100 font-sans ease-in-out'>oss@icgraph.com</a> to share ideas, bugs, or security concerns
<div className='docs max-w-4xl text-slate-400 py-2'>Please email <a href='mailto:oss@osintbuddy.com' className='text-primary-200 hover:text-primary-200/80 transition-colors duration-100 font-sans ease-in-out'>oss@OSINTBuddy.com</a> to share ideas, bugs, or security concerns
</div>.
</div>
</div>

View File

@@ -241,7 +241,7 @@ export default function SettingsPage() {
<InquiryHeader title="Account Settings" header="Your Account Details" />
<div className="flex flex-col sm:px-2 lg:px-6 my-2 relative mx-auto w-full justify-center">
<p className="text-slate-300/95">
Take control of the ICG app theme, your account information,<br /> and permissions for any shared workspaces or graphs.
Take control of the OSINTBuddy app theme, your account information,<br /> and permissions for any shared workspaces or graphs.
</p>
</div>
{/* <InquiryHeader title="" header="Proxy configuration" />

File diff suppressed because it is too large Load Diff