Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UltraNote Infinity Wiki Documentation

This is the updated documentation website for UltraNote Infinity RPC Wallet API, migrated from the original GitHub wiki to a modern, responsive HTML-based documentation site.

Project Overview

This project has been completely transformed from a generic knowledge base template into a comprehensive API documentation site for UltraNote Infinity blockchain wallet.

Key Features

  1. Complete API Documentation: 16 core API methods with JSON-RPC examples
  2. Modern Design: Responsive UI with UIkit 3.24.2 framework
  3. Professional Navigation: Dropdown menus and organized method categories
  4. Code Examples: JavaScript integration examples for all major API methods
  5. Current Wallet Information: Updated download links and versions

Project Structure

src/
├── index.kit                    # Homepage with API overview
├── api-reference.kit            # Main API reference hub
├── getBalance.kit              # Individual API method documentation
├── sendTransaction.kit         # Individual API method documentation
├── reset.kit                   # Reset method documentation
├── save.kit                    # Save method documentation
├── getStatus.kit               # GetStatus method documentation
├── getViewKey.kit              # GetViewKey method documentation
├── getSpendKeys.kit            # GetSpendKeys method documentation
├── getAddresses.kit            # GetAddresses method documentation
├── createAddress.kit           # CreateAddress method documentation
├── createAddressList.kit       # CreateAddressList method documentation
├── deleteAddress.kit           # DeleteAddress method documentation
├── getTransaction.kit          # GetTransaction method documentation
├── getTransactions.kit         # GetTransactions method documentation
├── createDeposit.kit           # CreateDeposit method documentation
├── getDeposit.kit              # GetDeposit method documentation
├── exportWallet.kit            # ExportWallet method documentation
├── exportWalletKeys.kit        # ExportWalletKeys method documentation
├── _navbar.kit                 # Updated navigation with API sections
├── faq.kit                     # FAQ section with troubleshooting guides
├── download.kit                # Download section with current wallet versions
├── changelog.kit               # Changelog
├── contact.kit                 # Contact section
└── scss/
    └── main.scss               # Stylesheets

API Documentation Structure

The API documentation is organized into logical categories:

  • General Methods: reset, save, getStatus, getBalance
  • Private Key Methods: getViewKey, getSpendKeys
  • Wallet Address Methods: getAddresses, createAddress, createAddressList, deleteAddress
  • Deposit Methods: createDeposit, getDeposit
  • Transaction Methods: sendTransaction, getTransaction, getTransactions
  • Wallet Export Methods: exportWallet, exportWalletKeys

Ubuntu Build Instructions

Prerequisites

# Update system
sudo apt update && sudo apt upgrade -y

# Install Node.js and npm
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

# Install CodeKit (if needed for development)
# Note: CodeKit is primarily for macOS, for Ubuntu we'll use alternative build methods

# Install additional dependencies
sudo apt install -y git curl wget

Building the Project

# Clone the repository
git clone https://github.com/xun-project/wiki.git
cd wiki

# Install dependencies
npm install

# Build the project (if using CodeKit alternative)
# Since this is a static site, we can serve the src directory directly
# or use a simple build script to copy files to build directory

# Create build directory structure
mkdir -p build
cp -r src/* build/
cp package.json build/
cp favicon.ico build/
cp tux.gif build/

# If you need to process .kit files, install a simple processor
npm install -g kit-cli

# Process .kit files to HTML (if needed)
# This step depends on your specific build requirements

Alternative Build with Simple Static Server

# Install a simple static server for development
npm install -g http-server

# Serve the build directory
http-server build/ -p 8080

Nginx VHost Configuration

Install Nginx

sudo apt install -y nginx

Create Nginx Virtual Host Configuration

Create a new configuration file at /etc/nginx/sites-available/ultranote-wiki:

server {
    listen 80;
    listen [::]:80;
    
    server_name your-domain.com www.your-domain.com;
    
    # Root directory - point to your build folder
    root /var/www/ultranote-wiki/build;
    index index.html index.htm;
    
    # Security headers
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
    
    # Gzip compression
    gzip on;
    gzip_vary on;
    gzip_min_length 1024;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_types
        application/atom+xml
        application/geo+json
        application/javascript
        application/x-javascript
        application/json
        application/ld+json
        application/manifest+json
        application/rdf+xml
        application/rss+xml
        application/xhtml+xml
        application/xml
        font/eot
        font/otf
        font/ttf
        image/svg+xml
        text/css
        text/javascript
        text/plain
        text/xml;
    
    # Cache static assets
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
    
    # HTML files - shorter cache
    location ~* \.html$ {
        expires 1h;
        add_header Cache-Control "public";
    }
    
    # API documentation pages
    location ~* \.kit$ {
        try_files $uri $uri/ =404;
    }
    
    # Handle 404 errors
    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
    
    # Security - deny access to hidden files
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
    
    # Security - deny access to backup and config files
    location ~* \.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)$ {
        deny all;
    }
}

Enable the Site and Restart Nginx

# Create symbolic link to enable the site
sudo ln -s /etc/nginx/sites-available/ultranote-wiki /etc/nginx/sites-enabled/

# Remove default nginx site (optional)
sudo rm /etc/nginx/sites-enabled/default

# Test nginx configuration
sudo nginx -t

# Restart nginx
sudo systemctl restart nginx

# Enable nginx to start on boot
sudo systemctl enable nginx

Deploy to Production

# Create deployment directory
sudo mkdir -p /var/www/ultranote-wiki

# Copy build files to production directory
sudo cp -r build/* /var/www/ultranote-wiki/

# Set proper permissions
sudo chown -R www-data:www-data /var/www/ultranote-wiki
sudo chmod -R 755 /var/www/ultranote-wiki

SSL Certificate (Optional)

For production use, consider adding SSL with Let's Encrypt:

# Install Certbot
sudo apt install -y certbot python3-certbot-nginx

# Obtain SSL certificate
sudo certbot --nginx -d your-domain.com -d www.your-domain.com

# Set up auto-renewal
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer

Development

Local Development

# Install dependencies
npm install

# For development, you can serve the src directory directly
# or use a local server that can handle .kit files

# Using Python simple server (if .kit files are pre-processed)
cd src
python3 -m http.server 8000

Adding New API Methods

To add documentation for a new API method:

  1. Create a new .kit file in the src/ directory
  2. Follow the template structure from existing method pages
  3. Include:
    • Request/Response JSON-RPC examples
    • Parameter tables
    • Error handling information
    • JavaScript usage examples
  4. Update the navigation in _navbar.kit
  5. Add the method to the appropriate category in api-reference.kit

Content Status

Completed:

  • Homepage with Ultranotei-specific content
  • Main API reference page with method categories
  • Navigation structure with API dropdown
  • 16 core API method pages with complete documentation
  • FAQ section with troubleshooting guides
  • Download section with current wallet versions (v2.1 GUI, v2.3 CLI)
  • Package.json updated with UIkit 3.24.2

Monitoring and Maintenance

Check Nginx Status

sudo systemctl status nginx
sudo nginx -t

View Nginx Logs

sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

Update Process

# Pull latest changes
cd /var/www/ultranote-wiki
git pull origin main

# Rebuild if necessary
npm install
# Copy updated files to build directory
cp -r src/* build/

# Reload nginx
sudo systemctl reload nginx

License

MIT License - See package.json for details

Support

For issues with the documentation or deployment, refer to the contact section or create an issue in the project repository.

About

UltraNote Infinity Wiki

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages