Giter VIP home page Giter VIP logo

offset's Introduction

Download

The following 3 tools are currently implemented

Block level backup

- Requires elevation. Please run as admin.
- Creates volume level images using either VSS snapshots or from live volume.
- Creates volume level images of already existing persistent VSS snapshots on the system.
- Ability to exclude files (only for VSS backups) by deleting them from the source snapshot.
- Support for MBR and GPT partitions. Volumes > 2TB are by default saved as VHDX with GPT partitioning.
- Supported virtual disk formats :
- Dynamic vhd (d-vhd)
- Fixed vhd (f-vhd)
- Dynamic vhdx (d-vhdx)
- Raw volume image (raw)
- Volume images can either be generated locally or streamed to an FTP server.
- URI format for streaming to FTP:
- ftps://username:password@hostname:port/a/b/c

FTP(S) client

- Supports plain and secure FTPS (using openssl async bio).
- Ability to browse while transfers are in progress.
- Directory listing support for Linux, Windows and MLSD.
- FTPS supports TLS1.3

Camera

- Face detection, Motion detection, Face recognition.
- Uses default opencv built-in models and DNN based detectors.
- Detection configurability on a per camera basis.
- Ability to save detection results on a per camera basis.
- The release has default(non-CUDA) opencv build for CPUs.
- For NVIDIA GPU it is recommended to do a custom opencv CUDA/CUDNN variant build via vcpkg.
- The code either ways supports both CUDA/CPU backend and target for DNN inference; in order.
- Set CVL_MODELS_ROOT env variable to the local MODELS folder from repo for detections to work.
- Currently the model trains itself off a set of around 10 trump and 10 obama images.
- The system can be tested by defining a "Window capture" source in OBS studio against youtube running inside the browser.
- Then expose the webbrowser feed over RTSP(using OBS RSTP server plugin). This can then be captured via a cam configuration in offset using the obs rtsp url for running detections.

vcpkg dependencies

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
bootstrap-vcpkg.bat

vcpkg.exe install openssl:x64-windows crc32c:x64-windows rapidjson:x64-windows zlib:x64-windows opencv4[contrib,core,default-features,dnn,ffmpeg]:x64-windows --recurse

sudo apt-get install build-essential zip curl vim bison meson pkg-config

./vcpkg install tinyxml2 libzip openssl:x64-linux crc32c:x64-linux rapidjson:x64-linux zlib:x64-linux opencv4[contrib,core,default-features,dnn,ffmpeg]:x64-linux --recurse

vcpkg.exe integrate install

use the resulting toolchain file in cmake configure step as highlited under the build section

qt-6.5.3 source build

make sure ninja and python3.9 are under PATH

C:\>set PATH=D:\Python39;%PATH%

C:\>where python
D:\Python39\python.exe
C:\Users\nmam\AppData\Local\Microsoft\WindowsApps\python.exe

C:\>where ninja
C:\Windows\System32\ninja.exe
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe

\qt-everywhere-src-6.5.3\configure.bat -prefix D:\qt-6.5.3\install -skip qtconnectivity -nomake examples -nomake tests -skip speech -skip scxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtdoc -skip qtandroidextras -release

Qt is now configured for building. Just run 'cmake --build . --parallel'
Once everything is built, you must run 'cmake --install .'
Qt will be installed into 'D:/qt-6.5.3/install'

Build

git clone https://github.com/n-mam/offset.git
cd offset && mkdir build && cd build
SET Qt6_DIR=C:\Qt-6.5.3\install\lib\cmake\Qt6
cmake -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake ..
cmake -DCMAKE_TOOLCHAIN_FILE=~/vcpkg/scripts/buildsystems/vcpkg.cmake ..
cmake --build . --config Release

Run as admin (needed for FXC):
SET PATH=%PATH%;C:\Qt-6.5.3\install\bin
qml\Release\offset.exe

Deploy:

windeployqt --qmldir D:\offset\app\qml D:\offset\build\app\Release\offset.exe

vc redist is bundled with package zip; in case your system does not have that installed already

Contact:

Telegram: https://t.me/neelabhm

offset's People

Contributors

n-mam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

offset's Issues

Streaming to stdout

Hello,
I want to create/build a "poor-man" backup solution with deduplication capabilities. I thought about connecting Offset with something that can directly accept input stream i.e Restic, Backy2, and can do deduplication on-the-fly. Additional features would be encryption and plenty of remote destinations.

Would it be possible to implement "stdout" output and some kind of CLI, so unattended backups would be possible?

BR!

Incr / diff backup

Hello,
I have a few questions:
What kind of backup is performed during the process? Block-based or file-based?
Is it possible to take an incr or diff backup type?

BR

Timestamp in output file name

Hello,
Would it be possible to add a timestamp (as an option) to the name of disk image file? I as a user want to store few images of the same volume in the specified folder. Currently, the output overwrites images created before.

BR

Milestones & feature

Hello,
I see that some cam/recorder-related features are being implemented. Can you shed some light on the new part or any other plans for the future?

BR!

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.