diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7ea845f --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ + + +Copyright + +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. diff --git a/README.md b/README.md index 9cd4b09..2aa4b14 100644 --- a/README.md +++ b/README.md @@ -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. -```shell -$ python3 -m venv env -$ source env/bin/activate -(env) $ pip install -r docker/prod/requirements.prod.txt +GIA isn’t just a tool—it’s 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 + git clone https://github.com/your-repo/gia.git + cd gia + ``` + +2. Set up the environment variables + ```shell + cp stack.env.example stack.env + ``` + +3. Edit `stack.env` + +4. Build and start the containers + ```shell + make build + make run + ``` + +5. Run database migrations + ```shell + make migrate + ``` + +6. Create a superuser for Django Admin (optional but recommended) + ```shell + make auth + ``` + +7. Monitor logs + ```shell + make log + ``` + +## ⚙️ 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. | + +## 🔥 Running Commands in a Container + +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 " + ``` + +## 🛑 Stopping GIA +To stop all running services: + ```shell + make stop + ``` + +## 🕵️‍♂️ 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/; +} ``` -## 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 -``` +## 🔄 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. | -## 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. +## 🔧 Additional Configuration +### Django Environment Variables -## Running database migrations -Now we need to run the database migrations in order to get a working database. -```shell -(env) $ python manage.py migrate -``` -Note that these are automatically run by a step in the compose file in production. -You won't need to do that manually. +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 + ``` -## Creating a superuser -In order to access Django admin, we need a superuser. -```shell -(env) $ python manage.py createsuperuser -Username: t2 -Email address: t2@google.com -Password: -Password (again): -Superuser created successfully. -``` +These can be set inside `stack.env`. -## Running -The Docker Compose file is located in `docker/docker-compose.prod.yml`. -There is a shortcut to run it: `make run`. +## ⚠️ Legal Disclaimer -## Stopping -To stop the containers, run `make stop`. +**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. -## Setup -This setup may be different from what you've seen before. +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. -### 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. - -### Nginx -Nginx runs in the `nginx` container and proxies requests to Uvicorn thanks to a mounted and shared directory. No TCP required. - -### Pre-start steps -There's a few commands running before start to ensure Django works correctly. - -#### Migration -The `migration` container step runs the migrations so you don't need to remember to do it. - -#### 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. +GIA is a tool that must be used responsibly. **Do not deploy it where it violates privacy laws, cybersecurity regulations, or ethical guidelines.**