Git Product home page Git Product logo

delemangi / synthra Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 465 KB

Имплементација на системи со слободен и отворен код - проект | Implementation of free and open source systems - project | 2023/2024

License: MIT License

Dockerfile 2.46% HTML 0.98% TypeScript 6.17% Svelte 33.29% JavaScript 0.65% Python 56.00% Batchfile 0.14% Shell 0.16% CSS 0.15%
fcse finki insssiok isok

synthra's Introduction

Synthra

Synthra is a file hosting application built using FastAPI (with Python 3.11) and SvelteKit, with PostgreSQL.

This repository contains both the frontend and the backend of the project in their respective folders.

Features

  • File hosting
  • User registration & login
  • Webhooks support

Installation

For running the application in production mode, it's highly recommended to use Docker. Otherwise, the manual setup is also available for those who wish to test the application in a development environment.

Quick Deployment

For most users, just these few steps should be sufficient, provided that you are comfortable with using Docker for deploying applications.

  1. Grab the docker-compose.prod.yaml file from the repository
  2. Rename it to docker-compose.yaml
  3. Run docker compose up -d

Development

To setup your environment and the project for development:

  1. Run poetry install (while inside the backend folder)
  2. Run pre-commit install

Installation (Docker Setup)

The project contains two Docker Compose configurations. docker-compose.yaml is for the development environment, and docker-compose.prod.yaml is for the production environment.

  1. Run git clone [email protected]:Delemangi/synthra.git (or git clone https://github.com/Delemangi/synthra.git)
  2. Run docker compose build
    • If you need the Docker image built for a machine running ARM architecture, then use the PLATFORM build argument as such: docker compose build --build-arg PLATFORM=linux/arm64

Installation (Manual Setup)

The manual setup requires that you have the following requirements installed:

Once you have all these dependencies installed, then:

  1. Run git clone [email protected]:Delemangi/synthra.git (or git clone https://github.com/Delemangi/synthra.git)
  2. Next, you have to install each module separately.

Backend

  1. Navigate to the backend folder: cd backend
  2. Run poetry install

Frontend

  1. Navigate to the frontend folder: cd frontend
  2. Run npm i
  3. Run npm run build

Running

Running (Docker Setup)

  1. Copy or rename the .env.sample file to .env, and edit it to your liking, or leave it as is
  2. Run docker compose up

Running (Manual Setup)

  1. Start the PostgreSQL service
  2. Start the backend service
    1. Open the project in your terminal
    2. Run cd backend
    3. Run poetry run uvicorn app.main:app --host 0.0.0.0 --port 80 [--reload] - the last parameter is optional, in case you want hot reloading
  3. Start the frontend service
    1. Open the project in your terminal
    2. Run cd frontend
    3. If you would like to start the application in a development environment with hot reloading, then run npm run dev, otherwise npm run preview, provided that you have run npm run build previously

License

This project is licensed under the MIT license.

synthra's People

Contributors

alekjarmov avatar amatanasovska avatar dani2221 avatar delemangi avatar dependabot[bot] avatar pre-commit-ci[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.