Well, this is basically a simple web app that adds copyright watermarks to your images. You know how you need to protect your photos? This does that for you.
You'll need Python 3.12 and the uv package manager. That's it.
cd copyright-app
uv sync
For development (debugging mode):
# Copy the example environment file
cp env.example .env
# Start the app
uv run python main.py
For production:
# Set up your environment file
echo "ENV=production" > .env
echo "SECRET_KEY=your-super-secret-key-here" >> .env
echo "DEBUG=false" >> .env
# Run it
uv run python main.py
Then just go to http://localhost:8080
in your browser.
That's literally it.
The app uses a .env
file for configuration. Copy env.example
to .env
and change what you need:
ENV=development # or production
SECRET_KEY=your-key-here
HOST=0.0.0.0
PORT=8080
DEBUG=true # false for production
The app puts your copyright text in the bottom-right corner of your images. It adds a semi-transparent background so you can actually read the text. The original image quality stays good.
Your processed images get "copyright_" added to the front of the filename.
This thing runs on basically any Linux server. It automatically finds fonts that work on different systems. If you're running it in production:
ENV=production
in your .env
fileSECRET_KEY
to something randomDEBUG=false
Common deployment commands:
# For systemd service
sudo cp your-service-file.service /etc/systemd/system/
sudo systemctl enable your-service-file
sudo systemctl start your-service-file
# Or just run it directly
nohup uv run python main.py &
copyright-app/ ├── app.py # Main Flask app ├── main.py # Entry point ├── config.py # Configuration handler ├── templates/ │ └── index.html # The web interface ├── env.example # Environment file template ├── pyproject.toml # Dependencies └── LICENSE # MIT License
You can move where the copyright appears by editing the add_copyright_to_image()
function in app.py
:
# Change these numbers to move it around
padding = 20
x = img.width - text_width - padding # right side
y = img.height - text_height - padding # bottom
All the styling is in templates/index.html
. It uses Apple's system fonts and has that clean, modern vibe.
MIT License. Do whatever you want with it.
That's really all there is to it. Simple tool for a simple job.