Skip to content

πŸ—ƒοΈ WebVault is a Flask-based web application that allows users to archive websites, manage versions, and generate PDFs of stored pages. It features user authentication, version control, and a responsive interface using Bootstrap, making it ideal for archivists and digital preservationists.

License

Notifications You must be signed in to change notification settings

tilltmk/webvault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WebVault App πŸ—ƒοΈ

Download Websites locally and version them

WebVault is a Flask-based web application for archiving websites. Users can save websites, manage versions, and generate websites as PDFs.


Features πŸ”

  • πŸ” User login and registration.
  • 🌐 Adding and saving URLs.
  • πŸ“ Downloading and saving websites.
  • πŸ”„ Website versioning.
  • πŸ“Š Overview page with all archived URLs.
  • πŸ–₯️ Browsing archived websites.
  • πŸ“„ Saving websites as PDFs.

Structure πŸ“‚

WebVault/
β”‚
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ static/
β”‚   β”‚   └── script.js
β”‚   β”œβ”€β”€ templates/
β”‚   β”‚   β”œβ”€β”€ base.html
β”‚   β”‚   β”œβ”€β”€ index.html
β”‚   β”‚   β”œβ”€β”€ login.html
β”‚   β”‚   β”œβ”€β”€ register.html
β”‚   β”‚   β”œβ”€β”€ dashboard.html
β”‚   β”‚   └── website_view.html
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ models.py
β”‚   β”œβ”€β”€ routes.py
β”‚   └── utils.py
β”œβ”€β”€ archived_websites/
β”œβ”€β”€ config.py
β”œβ”€β”€ requirements.txt
└── run.py

Key Files πŸ“‘

  • app/__init__.py: Initializes the Flask app and configures the database.
  • app/models.py: Defines the database models.
  • app/routes.py: Defines the routes and views.
  • app/utils.py: Helper functions for downloading and saving websites.
  • app/templates/: HTML templates for the user interface.

Design 🎨

  • Responsive layout using Bootstrap 5.3.
  • Adjustments for mobile screens.
  • Color scheme: Matte green with dark background.

Prerequisites πŸ› οΈ

  • Flask
  • Flask-SQLAlchemy
  • Flask-Login
  • requests
  • beautifulsoup4
  • WeasyPrint

Installation on Windows πŸ–₯️

  1. Install MSYS2 from the MSYS2 website.
  2. Execute the following commands in the MSYS2 console:
    pacman -Syu
    pacman -S mingw-w64-x86_64-gtk3
    
  3. Add C:\msys64\mingw64\bin to your PATH.
  4. Install the required Python libraries:
    pip install -r requirements.txt
    

Installation on Linux 🐧

Follow these steps to set up WebVault on a Linux system:

  1. Install Dependencies:

    • First, ensure that you have Python and pip installed. You can install them using your package manager. For Ubuntu, you might use:
      sudo apt update
      sudo apt install python3 python3-pip
      
    • Install GTK for WeasyPrint:
      sudo apt install libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-3.0
      
  2. Clone the Repository:

    • Clone the WebVault repository from GitHub:
      git clone https://github.com/tilltmk/webvault
      cd webvault
      
  3. Setup a Python Virtual Environment (recommended):

    • Create and activate a virtual environment:
      python3 -m venv venv
      source venv/bin/activate
      
  4. Install Python Dependencies:

    • Install the required Python packages using pip:
      pip install -r requirements.txt
      
  5. Configure Environment Variables:

    • Set up necessary environment variables, such as FLASK_APP and FLASK_ENV, and any other configurations specific to your setup.
  6. Initialize the Database:

    • Run the initialization script provided in the repository to set up your database schemas:
      python run.py init_db
      
  7. Run the Application:

    • Start the Flask application:
      flask run
      

Visit http://localhost:5000 in your web browser to start using WebVault.

About

πŸ—ƒοΈ WebVault is a Flask-based web application that allows users to archive websites, manage versions, and generate PDFs of stored pages. It features user authentication, version control, and a responsive interface using Bootstrap, making it ideal for archivists and digital preservationists.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published