Rust implementation of NextGraph, a Decentralized and local-first web 3.0 ecosystem
				https://nextgraph.org
			
			
		
		byzantine-fault-tolerancecrdtsdappsdecentralizede2eeeventual-consistencyjson-ldlocal-firstmarkdownocapoffline-firstp2pp2p-networkprivacy-protectionrdfrich-text-editorself-hostedsemantic-websparqlweb3collaboration
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							2.1 KiB
						
					
					
				| # Use ubuntu 22.04 as base image
 | |
| FROM ubuntu:22.04
 | |
| 
 | |
| SHELL ["/bin/bash", "-c"]
 | |
| 
 | |
| # Set the environment variable to ensure cargo is available in the PATH
 | |
| ENV PATH="/root/.cargo/bin:${PATH}"
 | |
| 
 | |
| # Install the required packages and Rust
 | |
| RUN apt update && \
 | |
|     apt upgrade -y && \
 | |
|     apt install -y git llvm-dev libclang-dev clang libssl-dev perl libappindicator3-dev libwebkit2gtk-4.0-dev librsvg2-dev curl wget pkg-config libudev-dev build-essential && \
 | |
|     rm -rf /var/cache/apt && \
 | |
|     # Rust
 | |
|     curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \
 | |
|     # Node.js
 | |
|     curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \
 | |
|     export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" && \
 | |
|     nvm install 22 && \
 | |
|     npm install -g pnpm && \
 | |
|     # Install Rust and Node.js tools
 | |
|     cargo install cargo-watch && \
 | |
|     cargo install wasm-pack --git https://github.com/rustwasm/wasm-pack.git --rev c2b663f25abe50631a236d57a8c6d7fd806413b2 && \
 | |
|     cargo install tauri-cli --version "2.0.0-alpha.11" --locked && \
 | |
|     npm install -g pnpm && \
 | |
|     # Clone the nextgraph-rs repository (TODO: It might be better to put this into a seperate RUN command to avoid rebuilding the image if the repository changes)
 | |
|     git clone https://git.nextgraph.org/NextGraph/nextgraph-rs.git && \
 | |
|     # Build sdk and ng-app web version
 | |
|     cd /nextgraph-rs/ng-sdk-js && wasm-pack build --target bundler && npm install --no-save pkg && \
 | |
|     cd /nextgraph-rs/ng-app && \
 | |
|     pnpm install && pnpm webfilebuild
 | |
| 
 | |
| # Build the nextgraph-rs project and its subprojects
 | |
| WORKDIR /nextgraph-rs
 | |
| RUN cargo build -r && \
 | |
|     cargo build -r -p ngd && \
 | |
|     cargo build -r -p ngcli
 | |
| 
 | |
| 
 | |
| # TODO: Build the platform-specific ng-app versions
 | |
| # WORKDIR /nextgraph-rs/ng-app
 | |
| # RUN cargo tauri build --target x86_64-unknown-linux-gnu
 | |
| 
 | |
| # TODO: To remove the image size, remove ~/.cargo, ~/.rustup, and the build dependencies
 | |
| 
 | |
| # To build the image, run:
 | |
| # docker build -t nextgraph-rs:ubuntu -f docker/Dockerfile.ubuntu .
 | |
| 
 |