FreePad/README.md

118 lines
4.4 KiB
Markdown
Raw Permalink Normal View History

2022-05-18 22:55:22 +03:00
![Gopher](static/img/twitter_header_photo_2.png)
2022-05-17 23:27:20 +03:00
Quickly create "pads" and share with others
2022-05-18 01:36:10 +03:00
[![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)](https://hub.docker.com/r/justkato/freepad)
[![Ko-Fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/justkato)
![Go](https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge&logo=go&logoColor=white)
2022-05-21 17:45:34 +03:00
2022-05-18 04:23:08 +03:00
[![demo](https://img.shields.io/badge/Demo-Check%20out%20the%20functionality-orange)](https://pad.justkato.me/)
2022-05-18 01:36:10 +03:00
2022-05-20 02:23:17 +03:00
# **FreePad**
![Gopher](static/img/demo.gif)
2022-05-18 22:55:22 +03:00
**FreePad** is a simple `Go` project to help you juggle temporary notes that you might wanna pass from one device to another, or from a person to another with memorable and easy to communicate online "Pads".
The project is absolutely free to use, you can extend the code and even contribute, I am more than happy to be corrected in my horrible beginner code.
The current maintainer and creator is `Kato Twofold`
2022-06-14 23:59:34 +03:00
# 🛑 About reverse proxying 🛑
If you are looking to reverse proxy this program, please keep in mind that the websockets have specific settings regarding reverse proxying, I have tried using `Apache2` but to no luck, if someone could give a suggestion as to how to set up my own program on `Apache2` it'd be amazing.
On `Nginx` it's rather simple, here is my reverse proxy for the demo at [pad.justkato.me](https://pad.justkato.me/)
```nginx
server {
# Define the basic information such as server name and log location
server_name pad.justkato.me
access_log logs/pad.justkato.me.access.log main;
# setup the reverse proxy
location / {
proxy_pass http://127.0.0.1:1626;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket support !! Important !!
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
```
2022-05-20 02:23:17 +03:00
2022-05-18 22:55:22 +03:00
![Gopher](static/img/banner_prerequisites.png)
Before getting started there are a couple things you should configure before proceeding, such as the database storage type and a couple limits, now if you really want to you can skip these but it's better to know what you're running as to not wake up with a not-so-nice surprise.
2022-05-18 22:55:22 +03:00
![Gopher](static/img/banner_environment.png)
The `.env` file contains all of the available options and you should use it to change those said variables, these are really important to customizing and self hosting this experience for yourself.
If you need any help with any setting you can always open an issue over on github and get help from me.
If you are barely getting started with hosting your own services, or even Sys admin stuff in general or writing code my suggestion is to just copy `.env` and leave it as is until you get it running with the defaults running fine, afterwards you can play with it a little and who knows, maybe even get to learn something!
![Gopher](static/img/banner_how_to_run.png)
## Docker `(Recommended)`
```bash
# Get into a directory to run this
mkdir ~/freepad && cd freepad
# Copy the latest .env and docker-compose.example.yaml files
wget -O docker-compose.yaml https://raw.githubusercontent.com/JustKato/FreePad/master/docker-compose.example.yaml
wget -O .env https://raw.githubusercontent.com/JustKato/FreePad/master/.env.example
# Edit your docker-compose.yaml and change the DOMAIN_BASE environment variable
vim docker-compose.yaml
# Edit your .env file and change the variables to your liking
vim .env
# Run the container
docker-compose up
# Run the container in the background
docker-compose up -d
```
## Distribution
[Downloads here](https://github.com/JustKato/FreePad/releases)
```bash
# Get into a directory to run this
mkdir ~/freepad && cd freepad
# Get the latest distribution from https://github.com/JustKato/FreePad/releases
wget -O release.zip https://github.com/JustKato/FreePad/releases/download/main/...
# Unzip the release
unzip release.zip
# Edit the .env file
vim ./.env
# Run the program
./freepad
```
## Building
```bash
# Clone th erepo
git clone https://github.com/JustKato/FreePad.git ~/freepad
# Get into the directory
cd ~/freepad
# Build using the script
./build.sh
# Copy the environment variable
cp .env dist/
# Go into the program's directory
cd dist
# Run the program
./freepad
```