Get Ashfolio running and explore its features in 10 minutes!
Before starting, ensure you have:
- Elixir 1.14+ and Erlang/OTP 25+
- macOS (currently optimized for Apple Silicon)
brew install just
Need to install these? See the Installation Guide
-
git clone https://github.com/mdstaff/ashfolio.git cd ashfolio -
just dev
This installs dependencies, sets up the database, and starts the Phoenix server
-
- Open http://localhost:4000
- You'll see a pre-populated portfolio with sample data!
- Total worth of all holdings
- Gains/losses with color coding (green = gains, red = losses)
- Complete view of all positions with current prices
- Navigate to "Accounts" to see investment accounts (Schwab, Fidelity, etc.)
- Click "New Account" to add your own
- Include/exclude accounts from portfolio calculations
- Navigate to "Transactions" to see all investment activity
- Click "New Transaction" to record buys, sells, dividends
- BUY, SELL, DIVIDEND, FEE, INTEREST, LIABILITY
- Use the refresh button on the dashboard
- Prices are fetched from Yahoo Finance API
- Prices are cached for performance
# Essential development commands
just dev # Start everything (most common)
just server # Start server only (if already set up)
just test # Run test suite
just test-fast # Quick tests for development
just format # Format code
just check # Format + compile + testThe pre-seeded database includes:
- Default local user
- Schwab Brokerage, Fidelity 401k, Crypto Wallet
- AAPL, MSFT, GOOGL, SPY, VTI, BTC-USD, TSLA, NVDA
- Mix of buys, sells, and dividends for realistic portfolio
Now that Ashfolio is running:
- Click through all the pages and features
- Read the Architecture Overview
- Follow the First Contribution Guide
- Try
just test-fastto see the testing framework
# Kill existing Phoenix server
pkill -f "phx.server"
# Or use a different port
PORT=4001 just server# Reset database
just reset
# Or backup and restore
just backup
just restore# Run database health check
just test-health-check
# Reset test database if needed
just test-db-emergency-resetHaving issues? Check the Troubleshooting Guide Ready to contribute? See First Contribution Guide