# Solana deploy cheatsheet
This doc lets you go from zero to deployed on testnet in <15 minutes.
## Install requirements (MacOS and WSL2)
### System dependencies
Install system dependencies (Linux & WSL2)
```
sudo apt-get update && sudo apt-get upgrade && sudo apt-get install -y pkg-config build-essential libudev-dev
```
### Rust
**Install Rust**
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
**Check for updates** (if you have an older install)
```
rustup check
```
**Install updates**
```
rustup update
```
### Solana CLI
Install the CLI
```
# Can replace "stable" with "beta", "edge" or exact version (ex "v1.10.31")
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
```
Check version
```
solana --version
```
### Anchor
Install Anchor Version Manager
```
cargo install --git https://github.com/project-serum/anchor avm --locked --force
```
Install anchor
```
avm install latest
avm use latest
```
Check Anchor version
```
anchor --version
```
### Issues and debugging
If the version of anchor-cli doesn't show as the latest after `avm use latest`, you might have an older version installed with NPM, you can find it with
```
npm -g ls
```
If you see `@project-srum/anchor-cli` in the list, you can remove it with:
```
npm -g uninstall @project-serum/anchor-cli
npm -g uninstall @project-serum/anchor
```
Set up Anchor with AVM using:
```
avm use latest
```
Update your terminal with
```
# If using bash
source ~/.bashrc
# If using zsh (Zshell)
source ~/.zshrc
```
## Set up environment
### Set up Solana keypair
Generate a new keypair
```
solana-keygen new
```
Passphrase not necessary but highly recommended for mainnet deployments. Check file system wallet commands [here](https://docs.solana.com/wallet-guide/file-system-wallet).
Set network to devnet
```
solana config set --url devnet
```
Options for url flag: `mainnet-beta, testnet, devnet, localhost` or `m, t, d, l`
Get testnet SOL
```
solana airdrop 2
```
Check balance
```
solana balance
```
Print address
```
solana address
```
View Solana config
```
Solana config get
```
### Create Anchor project
Create a new anchor project (remove the js flag if u want ts)
```
anchor init PROJECT_NAME_HERE --javascript
```
Test that everything is working with
```
# navigate into project folder
cd glass-generator
# Run the built in test
anchor test
```
This may take a while, as long as it says "1 passing" near the bottom, you're ready to proceed.
### Chew glass
After adding contract code to `src/lib.rs` in the `programs` folder, fetch address with
```
anchor build
anchor keys list
```
Finall, you can deploy with
```
anchor deploy
```
## Issues and debugging
TBA
Call ur mom
Go to sleep
Run the same command again without any changes