Add LICENSE and README

This commit is contained in:
2025-02-07 21:36:02 +00:00
parent 9b3f28c631
commit fe776dad1a
2 changed files with 151 additions and 54 deletions

9
LICENSE Normal file
View File

@@ -0,0 +1,9 @@
Copyright <YEAR> <COPYRIGHT HOLDER>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

182
README.md
View File

@@ -1,64 +1,152 @@
# Envelope
Template Django app.
# ☠️ GIA Gather, Influence, Automate ☠️
## Setting up the environment
Create the virtual environment, enable it, and install the dependencies.
GIA isnt just a tool—its a **gateway**, a **ritualistic mechanism** designed to invoke, manipulate, and command the digital souls of the unsuspecting. Operating at the **intersection of psychological domination, deception, and control**, it bends the will of targets with **supernatural precision**.
GIA whispers in the void, embedding its tendrils into minds, shaping realities, and orchestrating **obedience with unseen hands**.
💀 **Manipulate. Dominate. Obliterate.** 💀
---
## 📌 Features
- **Automated Psychological Influence:** Deploys manipulation techniques with precision.
- **AI-Driven Conversations:** Uses contextual AI to interact and persuade.
- **Targeted Persona Simulation:** Adapts responses based on psychological profiling.
- **Multi-Agent Execution:** Processing, scheduling, and monitoring through modular services.
- **Covert Deployment:** Runs in a distributed architecture with signal interception.
---
## 🚀 Quickstart Guide
### 🔧 Setting Up the Environment
GIA runs inside **Podman containers**. Ensure you have **Podman** and **Podman Compose** installed. Docker might work. Results may vary.
1. **Clone the repository**
```shell
$ python3 -m venv env
$ source env/bin/activate
(env) $ pip install -r docker/prod/requirements.prod.txt
git clone https://github.com/your-repo/gia.git
cd gia
```
## Local settings
You'll need to copy the `app/local_settings.example.py` file to `app/local_settings.py`. The project won't start otherwise.
```
$ cp app/local_settings.example.py app/local_settings.py
```
## stack.env
The stack.env file referenced is a Portainer special. This is where Portainer would put a file containing all the environment variables set up in its UI.
To run it manually, you will need to copy `stack.env.example` to `stack.env` in the project root.
## Running database migrations
Now we need to run the database migrations in order to get a working database.
2. Set up the environment variables
```shell
(env) $ python manage.py migrate
cp stack.env.example stack.env
```
Note that these are automatically run by a step in the compose file in production.
You won't need to do that manually.
## Creating a superuser
In order to access Django admin, we need a superuser.
3. Edit `stack.env`
4. Build and start the containers
```shell
(env) $ python manage.py createsuperuser
Username: t2
Email address: t2@google.com
Password:
Password (again):
Superuser created successfully.
make build
make run
```
## Running
The Docker Compose file is located in `docker/docker-compose.prod.yml`.
There is a shortcut to run it: `make run`.
5. Run database migrations
```shell
make migrate
```
## Stopping
To stop the containers, run `make stop`.
6. Create a superuser for Django Admin (optional but recommended)
```shell
make auth
```
## Setup
This setup may be different from what you've seen before.
7. Monitor logs
```shell
make log
```
### Uvicorn
There is a Uvicorn worker in the `app` container listening on `/var/run/socks/app.sock`. This is the bit that runs the actual code.
## ⚙️ Deployment & Architecture
### 🏗️ Services Overview
| Service | Description |
|----------------|-------------|
| **app** | Main application container running **Uvicorn** for API handling. |
| **db** | ManticoreSearch-based database backend. |
| **redis** | Message queue for task distribution. |
| **signal-cli** | Handles Signal communications. |
| **processing** | Processes incoming messages and executes manipulations. |
| **scheduling** | Handles timed tasks and influence scheduling. |
| **migration** | Runs database migrations automatically on startup. |
| **collectstatic** | Collects static files for Django before launch. |
### Nginx
Nginx runs in the `nginx` container and proxies requests to Uvicorn thanks to a mounted and shared directory. No TCP required.
## 🔥 Running Commands in a Container
### Pre-start steps
There's a few commands running before start to ensure Django works correctly.
You can execute management commands inside the app container using:
```shell
docker-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py <command>"
```
#### Migration
The `migration` container step runs the migrations so you don't need to remember to do it.
## 🛑 Stopping GIA
To stop all running services:
```shell
make stop
```
#### Collectstatic
The `collectstatic` container step collects all static files from plugins and puts them in the `core/static` folder. This folder is served straight from Nginx without going through Uvicorn.
## 🕵️‍♂️ Operational Modes
GIA runs in different operation modes set via OPERATION:
| Mode | Description |
|--------|-------------|
| **uwsgi** | Runs behind Nginx for production. |
| **dev** | Direct execution via Django's built-in server (development mode). |
The default Podman entrypoint dynamically selects the correct process based on OPERATION.
Be sure to uncomment nginx if using dev, as the shipped setup expects an external `nginx` instance to point to the GIA `uwsgi` sock:
```
location / {
include include/xf-only.conf;
include /etc/nginx/uwsgi_params;
uwsgi_pass unix:///code/vrun/uwsgi-gia.sock;
uwsgi_param Host $host;
uwsgi_param X-Real-IP $remote_addr;
uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for;
uwsgi_param X-Forwarded-Proto $http_x_forwarded_proto;
}
location /static {
alias /code/xf/GIA/static/;
}
```
## 🔄 Persistent Data & Storage
| Mount Path (Host) | Purpose |
|---------------------------|-------------|
| **./docker/uwsgi.ini** | Configuration for **uWSGI** execution. |
| **db.sqlite3** | SQLite database storage. |
| **/code/vrun/** | Sockets shared between services. |
| **./signal-cli-config/** | Stores **Signal CLI** configuration and keys. |
## 🔧 Additional Configuration
### Django Environment Variables
The following are required for proper operation:
```shell
APP_PORT=5006
REPO_DIR=.
APP_LOCAL_SETTINGS=./app/local_settings.py
APP_DATABASE_FILE=./db.sqlite3
DOMAIN=example.com
URL=https://example.com
ALLOWED_HOSTS=example.com
NOTIFY_TOPIC=example-topic
CSRF_TRUSTED_ORIGINS=https://example.com
DEBUG=y
SECRET_KEY=
STATIC_ROOT=/code/static
REGISTRATION_OPEN=0
OPERATION=uwsgi
BILLING_ENABLED=0
```
These can be set inside `stack.env`.
## ⚠️ Legal Disclaimer
**GIA is provided for research and educational purposes only.**
The developers and contributors are not responsible for any **misuse, illegal activities, or consequences** resulting from the use of this software.
By using GIA, you **acknowledge and agree** that:
- You are solely responsible for your actions and compliance with applicable laws.
- The software should not be used for unauthorized surveillance, coercion, or unethical influence.
- The authors disclaim all liability for damages resulting from its use.
GIA is a tool that must be used responsibly. **Do not deploy it where it violates privacy laws, cybersecurity regulations, or ethical guidelines.**